55import net .minecraft .core .HolderLookup ;
66import net .minecraft .nbt .CompoundTag ;
77import net .minecraft .server .level .ServerLevel ;
8+ import net .minecraft .util .Mth ;
89import net .minecraft .world .entity .player .Inventory ;
910import net .minecraft .world .entity .player .Player ;
1011import net .minecraft .world .inventory .ContainerData ;
2324import top .ctnstudio .futurefood .api .adapter .ModItemStackHandler ;
2425import top .ctnstudio .futurefood .api .block .IUnlimitedEntityReceive ;
2526import top .ctnstudio .futurefood .api .recipe .ParticleColliderRecipe ;
26- import top .ctnstudio .futurefood .core .ParticleColliderRecipeManager ;
2727import top .ctnstudio .futurefood .common .block .ParticleColliderEntityBlock ;
2828import top .ctnstudio .futurefood .common .menu .ParticleColliderMenu ;
29+ import top .ctnstudio .futurefood .core .ParticleColliderRecipeManager ;
2930import top .ctnstudio .futurefood .core .init .ModTileEntity ;
3031
3132import java .util .Optional ;
@@ -168,7 +169,12 @@ private void processRecipe() {
168169
169170 setBlockState ();
170171
171- energyStorage .extractEnergy (energyPerTick , false );
172+ final var energy = Mth .clamp (energyStorage .getEnergyStored () - energyPerTick ,
173+ 0 ,
174+ energyStorage .getMaxEnergyStored ());
175+
176+ energyStorage .setEnergy (energy );
177+
172178 progressTick ++;
173179 if (this .progressTick >= this .maxWorkTick ) {
174180 craftItem (currentRecipe );
@@ -181,11 +187,12 @@ private void setBlockState() {
181187 if (!(level instanceof ServerLevel )) {
182188 return ;
183189 }
184- BlockState blockState = getBlockState ();
185- BlockState newBlockState = getBlockState ();
186- newBlockState = newBlockState .setValue (ParticleColliderEntityBlock .ACTIVATE , progressTick > 0 );
187- if (!blockState .equals (newBlockState )) {
188- level .setBlockAndUpdate (getBlockPos (), newBlockState );
190+
191+ final BlockState state = getBlockState ();
192+ final boolean flag = progressTick > 0 ;
193+ if (state .getValue (ParticleColliderEntityBlock .ACTIVATE ) != flag ) {
194+ level .setBlockAndUpdate (getBlockPos (),
195+ state .setValue (ParticleColliderEntityBlock .ACTIVATE , flag ));
189196 }
190197 }
191198
0 commit comments