42 lines
1.6 KiB
Java
42 lines
1.6 KiB
Java
package com.thebrokenrail.reliccraft.mixin;
|
|
|
|
import com.mojang.datafixers.DataFixer;
|
|
import com.thebrokenrail.reliccraft.item.TimeDilaterItem;
|
|
import net.minecraft.nbt.CompoundTag;
|
|
import net.minecraft.world.level.LevelProperties;
|
|
import org.spongepowered.asm.mixin.Mixin;
|
|
import org.spongepowered.asm.mixin.Unique;
|
|
import org.spongepowered.asm.mixin.injection.At;
|
|
import org.spongepowered.asm.mixin.injection.Inject;
|
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
|
|
|
@SuppressWarnings("unused")
|
|
@Mixin(LevelProperties.class)
|
|
public class MixinLevelProperties implements TimeDilaterItem.DilatedWorld {
|
|
@Unique
|
|
private TimeDilaterItem.TimeSpeed timeSpeed = TimeDilaterItem.TimeSpeed.NORMAL;
|
|
|
|
@Inject(at = @At("RETURN"), method = "<init>(Lnet/minecraft/nbt/CompoundTag;Lcom/mojang/datafixers/DataFixer;ILnet/minecraft/nbt/CompoundTag;)V")
|
|
public void init(CompoundTag compoundTag, DataFixer dataFixer, int i, CompoundTag compoundTag2, CallbackInfo info) {
|
|
try {
|
|
timeSpeed = TimeDilaterItem.TimeSpeed.valueOf(compoundTag.getString("RelicCraftTimeSpeed"));
|
|
} catch (IllegalArgumentException ignored) {
|
|
}
|
|
}
|
|
|
|
@Inject(at = @At("RETURN"), method = "updateProperties")
|
|
public void updateProperties(CompoundTag levelTag, CompoundTag playerTag, CallbackInfo ci) {
|
|
levelTag.putString("RelicCraftTimeSpeed", timeSpeed.name());
|
|
}
|
|
|
|
@Override
|
|
public TimeDilaterItem.TimeSpeed getTimeSpeed() {
|
|
return timeSpeed;
|
|
}
|
|
|
|
@Override
|
|
public void setTimeSpeed(TimeDilaterItem.TimeSpeed timeSpeed) {
|
|
this.timeSpeed = timeSpeed;
|
|
}
|
|
}
|