- 586
- 32
- 136
Привет всем, есть код, который заряжает предмет в сундуке, который сверху от генератора, код:
Мой говно-код работает отлично. Но я задаюсь вопросом, как его лучше всего использовать, как оптимизировать код?
Java:
@SubscribeEvent(priority = EventPriority.HIGHEST)
public void deGenerator(TickEvent.WorldTickEvent e){
if(e.side.isClient())return;
List<TileEntity> tileEntities = e.world.loadedTileEntityList;
for(TileEntity tileEntity : tileEntities) {
if (e.world.getBlockState(tileEntity.getPos().add(0, 1, 0)).getBlock() != Blocks.CHEST) return;
if (!(tileEntity instanceof TileDEGenerator)) return;
if (!(e.world.getTileEntity(tileEntity.getPos().add(0, 1, 0)) instanceof TileEntityChest)) return;
TileEntityChest chest = (TileEntityChest) e.world.getTileEntity(tileEntity.getPos().add(0, 1, 0));
TileDEGenerator generator = (TileDEGenerator) tileEntity;
for (int i = 0; i < chest.getSizeInventory(); i++) {
ItemStack stack = chest.getStackInSlot(i);
if (!stack.hasTagCompound() || !stack.getTagCompound().hasKey("DE")) continue;
if (stack.getTagCompound().getInteger("DE") >= 50000) {
stack.getTagCompound().setInteger("DE", 50000);
continue;
}
if (generator.getDE() <= 50) continue;
stack.getTagCompound().setInteger("DE", stack.getTagCompound().getInteger("DE") + 50);
generator.setDE(generator.getDE() - 50);
}
}
}