This repository has been archived on 2023-11-26. You can view files and clone it, but cannot push or open issues or pull requests.
RelicCraft/src/main/java/com/thebrokenrail/reliccraft/mixin/MixinLevelProperties.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;
}
}