diff --git a/src/main/java/com/atsuishio/superbwarfare/Mod.java b/src/main/java/com/atsuishio/superbwarfare/Mod.java index 74b3bd711..28f5a300f 100644 --- a/src/main/java/com/atsuishio/superbwarfare/Mod.java +++ b/src/main/java/com/atsuishio/superbwarfare/Mod.java @@ -71,8 +71,6 @@ public class Mod { bus.addListener(NetworkRegistry::register); - MolangVariable.register(); - if (FMLEnvironment.dist == Dist.CLIENT) { CompatHolder.hasMod(CompatHolder.CLOTH_CONFIG, ClothConfigHelper::registerScreen); } @@ -123,6 +121,7 @@ public class Mod { public void onClientSetup(final FMLClientSetupEvent event) { MouseMovementHandler.init(); + MolangVariable.register(); } } diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/InsidiousItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/InsidiousItemModel.java index 81e00392b..65816d3b9 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/InsidiousItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/InsidiousItemModel.java @@ -3,6 +3,7 @@ package com.atsuishio.superbwarfare.client.model.item; import com.atsuishio.superbwarfare.Mod; import com.atsuishio.superbwarfare.client.AnimationHelper; import com.atsuishio.superbwarfare.client.overlay.CrossHairOverlay; +import com.atsuishio.superbwarfare.client.renderer.molang.MolangVariable; import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.item.gun.rifle.InsidiousItem; @@ -13,6 +14,7 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import software.bernie.geckolib.animation.AnimationState; import software.bernie.geckolib.cache.object.GeoBone; +import software.bernie.geckolib.loading.math.MathParser; import software.bernie.geckolib.model.GeoModel; public class InsidiousItemModel extends GeoModel { @@ -89,4 +91,10 @@ public class InsidiousItemModel extends GeoModel { AnimationHelper.handleReloadShakeAnimation(stack, main, camera, numR, numP); ClientEventHandler.handleReloadShake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); } + + @Override + public void applyMolangQueries(AnimationState animationState, double animTime) { + super.applyMolangQueries(animationState, animTime); + MathParser.setVariable(MolangVariable.SBW_SYSTEM_TIME, System::currentTimeMillis); + } } diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/molang/MolangVariable.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/molang/MolangVariable.java index 15de8f8a8..e65af74d3 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/molang/MolangVariable.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/molang/MolangVariable.java @@ -6,8 +6,11 @@ import software.bernie.geckolib.loading.math.value.Variable; import java.util.function.DoubleSupplier; public class MolangVariable { + + public static final String SBW_SYSTEM_TIME = "sbw.system_time"; + public static void register() { - register("sbw.system_time", System::currentTimeMillis); + register(SBW_SYSTEM_TIME, () -> 0); } private static void register(String name, DoubleSupplier supplier) {