From 314cc0e6e2c7eb8e82ca027e35463e2b3aeac842 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Thu, 26 Dec 2024 01:49:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=9B=B7=E8=BE=BE=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E6=97=8B=E8=BD=AC=EF=BC=8C=E8=B0=83=E6=95=B4server=20?= =?UTF-8?q?tick=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../block/entity/FuMO25BlockEntity.java | 36 ++++++++++--------- .../client/model/block/FuMO25Model.java | 6 +++- .../block/FuMO25BlockEntityRenderer.java | 4 ++- 3 files changed, 28 insertions(+), 18 deletions(-) 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 4625b2fbe..aad8581ad 100644 --- a/src/main/java/com/atsuishio/superbwarfare/block/entity/FuMO25BlockEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/block/entity/FuMO25BlockEntity.java @@ -35,6 +35,8 @@ public class FuMO25BlockEntity extends BlockEntity implements MenuProvider { public static final int DEFAULT_ENERGY_COST = 256; public static final int MAX_ENERGY_COST = 1024; + public static final int DEFAULT_MIN_ENERGY = 64000; + public static final int MAX_DATA_COUNT = 3; private LazyOptional energyHandler; @@ -78,7 +80,15 @@ public class FuMO25BlockEntity extends BlockEntity implements MenuProvider { public static void serverTick(Level pLevel, BlockPos pPos, BlockState pState, FuMO25BlockEntity blockEntity) { int energy = blockEntity.energyHandler.map(EnergyStorage::getEnergyStored).orElse(0); - if (energy <= 0) { + FuncType funcType = blockEntity.type; + int energyCost; + if (funcType == FuncType.WIDER) { + energyCost = MAX_ENERGY_COST; + } else { + energyCost = DEFAULT_ENERGY_COST; + } + + if (energy < energyCost) { if (pState.getValue(FuMO25Block.POWERED)) { pLevel.setBlockAndUpdate(pPos, pState.setValue(FuMO25Block.POWERED, false)); setChanged(pLevel, pPos, pState); @@ -89,22 +99,16 @@ public class FuMO25BlockEntity extends BlockEntity implements MenuProvider { } } else { if (!pState.getValue(FuMO25Block.POWERED)) { - pLevel.setBlockAndUpdate(pPos, pState.setValue(FuMO25Block.POWERED, true)); - setChanged(pLevel, pPos, pState); - } - - FuncType funcType = blockEntity.type; - int energyCost; - if (funcType == FuncType.WIDER) { - energyCost = MAX_ENERGY_COST; + if (energy >= DEFAULT_MIN_ENERGY) { + pLevel.setBlockAndUpdate(pPos, pState.setValue(FuMO25Block.POWERED, true)); + setChanged(pLevel, pPos, pState); + } } else { - energyCost = DEFAULT_ENERGY_COST; - } - blockEntity.energyHandler.ifPresent(handler -> handler.extractEnergy(energyCost, false)); - - if (blockEntity.time > 0) { - blockEntity.time--; - blockEntity.setChanged(); + blockEntity.energyHandler.ifPresent(handler -> handler.extractEnergy(energyCost, false)); + if (blockEntity.time > 0) { + blockEntity.time--; + blockEntity.setChanged(); + } } } 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 abc6530a2..d7df5b199 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 @@ -633,8 +633,12 @@ public class FuMO25Model extends EntityModel { poseStack.popPose(); } - // TODO 添加旋转 public void render(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha, boolean roll) { + if (roll) { + this.yundongjian.yRot = (System.currentTimeMillis() % 36000000) / 1200f; + } else { + this.yundongjian.yRot = 0; + } renderToBuffer(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); } } \ No newline at end of file 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 e2f99ef2a..c11b0198a 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,6 +1,7 @@ package com.atsuishio.superbwarfare.client.renderer.block; import com.atsuishio.superbwarfare.ModUtils; +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; @@ -32,7 +33,8 @@ public class FuMO25BlockEntityRenderer implements BlockEntityRenderer