From 2defaacc9a7269914a05821ceebd88056152034d Mon Sep 17 00:00:00 2001 From: Atsuishio <842960157@qq.com> Date: Thu, 10 Apr 2025 03:18:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=9B=B7=E8=BE=BE=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E6=97=8B=E8=BD=AC=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../block/entity/FuMO25BlockEntity.java | 12 +++++++-- .../client/model/block/FuMO25Model.java | 2 +- .../block/FuMO25BlockEntityRenderer.java | 14 ----------- .../animations/fumo_25.animation.json | 25 +++++++++++++++++++ 4 files changed, 36 insertions(+), 17 deletions(-) create mode 100644 src/main/resources/assets/superbwarfare/animations/fumo_25.animation.json diff --git a/src/main/java/com/atsuishio/superbwarfare/block/entity/FuMO25BlockEntity.java b/src/main/java/com/atsuishio/superbwarfare/block/entity/FuMO25BlockEntity.java index 0cd88bb02..88c82da09 100644 --- a/src/main/java/com/atsuishio/superbwarfare/block/entity/FuMO25BlockEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/block/entity/FuMO25BlockEntity.java @@ -32,7 +32,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import software.bernie.geckolib.animatable.GeoBlockEntity; import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; -import software.bernie.geckolib.animation.AnimatableManager; +import software.bernie.geckolib.animation.*; import software.bernie.geckolib.util.GeckoLibUtil; import javax.annotation.ParametersAreNonnullByDefault; @@ -218,8 +218,16 @@ public class FuMO25BlockEntity extends BlockEntity implements MenuProvider, GeoB return ClientboundBlockEntityDataPacket.create(this); } + private PlayState predicate(AnimationState event) { + if (this.getBlockState().getValue(FuMO25Block.POWERED)) { + return event.setAndContinue(RawAnimation.begin().thenLoop("animation.fumo_25.rot")); + } + return PlayState.STOP; + } + @Override - public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + public void registerControllers(AnimatableManager.ControllerRegistrar data) { + data.add(new AnimationController<>(this, "controller", 0, this::predicate)); } @Override diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/block/FuMO25Model.java b/src/main/java/com/atsuishio/superbwarfare/client/model/block/FuMO25Model.java index c17cf4c83..14e4e8100 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/block/FuMO25Model.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/block/FuMO25Model.java @@ -8,7 +8,7 @@ import software.bernie.geckolib.model.GeoModel; public class FuMO25Model extends GeoModel { @Override public ResourceLocation getAnimationResource(FuMO25BlockEntity animatable) { - return null; + return Mod.loc("animations/fumo_25.animation.json"); } @Override diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/block/FuMO25BlockEntityRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/block/FuMO25BlockEntityRenderer.java index 090d1792f..f8d8a3f3e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/block/FuMO25BlockEntityRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/block/FuMO25BlockEntityRenderer.java @@ -1,15 +1,11 @@ package com.atsuishio.superbwarfare.client.renderer.block; -import com.atsuishio.superbwarfare.block.FuMO25Block; import com.atsuishio.superbwarfare.block.entity.FuMO25BlockEntity; import com.atsuishio.superbwarfare.client.model.block.FuMO25Model; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.resources.ResourceLocation; import org.jetbrains.annotations.NotNull; -import software.bernie.geckolib.cache.object.GeoBone; import software.bernie.geckolib.renderer.GeoBlockRenderer; @@ -32,14 +28,4 @@ public class FuMO25BlockEntityRenderer extends GeoBlockRenderer