diff --git a/src/main/java/com/ticticboooom/mods/mm/block/MachinePortBlock.java b/src/main/java/com/ticticboooom/mods/mm/block/MachinePortBlock.java index 288bade..132337f 100644 --- a/src/main/java/com/ticticboooom/mods/mm/block/MachinePortBlock.java +++ b/src/main/java/com/ticticboooom/mods/mm/block/MachinePortBlock.java @@ -1,5 +1,6 @@ package com.ticticboooom.mods.mm.block; +import com.ticticboooom.mods.mm.block.tile.IMachinePortTile; import com.ticticboooom.mods.mm.block.tile.MachinePortBlockEntity; import com.ticticboooom.mods.mm.inventory.ItemStackInventory; import lombok.Getter; @@ -62,8 +63,8 @@ public class MachinePortBlock extends Block { public ActionResultType onBlockActivated(BlockState state, World level, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult traceResult) { if (!level.isRemote()) { TileEntity blockEntity = level.getTileEntity(pos); - if (blockEntity instanceof MachinePortBlockEntity) { - NetworkHooks.openGui(((ServerPlayerEntity) player), (MachinePortBlockEntity)blockEntity, pos); + if (blockEntity instanceof IMachinePortTile) { + NetworkHooks.openGui(((ServerPlayerEntity) player), (IMachinePortTile)blockEntity, pos); } } @@ -93,8 +94,8 @@ public class MachinePortBlock extends Block { public void neighborChanged(BlockState p_220069_1_, World world, BlockPos pos, Block p_220069_4_, BlockPos changedPos, boolean p_220069_6_) { super.neighborChanged(p_220069_1_, world, pos, p_220069_4_, changedPos, p_220069_6_); TileEntity tile = world.getTileEntity(pos); - if (tile instanceof MachinePortBlockEntity){ - ((MachinePortBlockEntity) tile).getStorage().neighborChanged(); + if (tile instanceof IMachinePortTile){ + ((IMachinePortTile) tile).getStorage().neighborChanged(); } } } diff --git a/src/main/java/com/ticticboooom/mods/mm/block/RotationMachinePortBlock.java b/src/main/java/com/ticticboooom/mods/mm/block/RotationMachinePortBlock.java new file mode 100644 index 0000000..69c2120 --- /dev/null +++ b/src/main/java/com/ticticboooom/mods/mm/block/RotationMachinePortBlock.java @@ -0,0 +1,35 @@ +package com.ticticboooom.mods.mm.block; + +import com.simibubi.create.content.contraptions.base.IRotate; +import com.ticticboooom.mods.mm.block.tile.MachinePortBlockEntity; +import com.ticticboooom.mods.mm.ports.storage.PortStorage; +import com.ticticboooom.mods.mm.ports.storage.StarlightPortStorage; +import hellfirepvp.astralsorcery.common.block.base.BlockStarlightRecipient; +import hellfirepvp.astralsorcery.common.constellation.IWeakConstellation; +import net.minecraft.block.BlockState; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.tileentity.TileEntityType; +import net.minecraft.util.Direction; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IWorldReader; +import net.minecraft.world.World; +import net.minecraftforge.fml.RegistryObject; + +import java.util.Random; + +public class RotationMachinePortBlock extends MachinePortBlock implements IRotate { + public RotationMachinePortBlock(RegistryObject> type, String name, String controllerId, String textureOverride, ResourceLocation overlay) { + super(type, name, controllerId, textureOverride, overlay); + } + + @Override + public boolean hasShaftTowards(IWorldReader iWorldReader, BlockPos blockPos, BlockState blockState, Direction direction) { + return true; + } + + @Override + public Direction.Axis getRotationAxis(BlockState blockState) { + return Direction.Axis.X; + } +} diff --git a/src/main/java/com/ticticboooom/mods/mm/block/container/PortBlockContainer.java b/src/main/java/com/ticticboooom/mods/mm/block/container/PortBlockContainer.java index 4e2fee3..43d7d1d 100644 --- a/src/main/java/com/ticticboooom/mods/mm/block/container/PortBlockContainer.java +++ b/src/main/java/com/ticticboooom/mods/mm/block/container/PortBlockContainer.java @@ -1,7 +1,6 @@ package com.ticticboooom.mods.mm.block.container; -import com.ticticboooom.mods.mm.block.tile.ControllerBlockEntity; -import com.ticticboooom.mods.mm.block.tile.MachinePortBlockEntity; +import com.ticticboooom.mods.mm.block.tile.IMachinePortTile; import lombok.Getter; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; @@ -18,9 +17,9 @@ public class PortBlockContainer extends Container { private final PlayerInventory inv; @Getter - private MachinePortBlockEntity tile; + private IMachinePortTile tile; - public PortBlockContainer(@Nullable ContainerType p_i50105_1_, int windowId, PlayerInventory inv, MachinePortBlockEntity tile) { + public PortBlockContainer(@Nullable ContainerType p_i50105_1_, int windowId, PlayerInventory inv, IMachinePortTile tile) { super(p_i50105_1_, windowId); this.inv = inv; tile.getStorage().setupContainer(this, inv, tile); @@ -28,7 +27,7 @@ public class PortBlockContainer extends Container { } public PortBlockContainer(ContainerType container, int windowId, PlayerInventory player, PacketBuffer buf) { - this(container, windowId, player, (MachinePortBlockEntity) player.player.world.getTileEntity(buf.readBlockPos())); + this(container, windowId, player, (IMachinePortTile) player.player.world.getTileEntity(buf.readBlockPos())); } @Override diff --git a/src/main/java/com/ticticboooom/mods/mm/block/tile/ControllerBlockEntity.java b/src/main/java/com/ticticboooom/mods/mm/block/tile/ControllerBlockEntity.java index 16c7d1d..3758c10 100644 --- a/src/main/java/com/ticticboooom/mods/mm/block/tile/ControllerBlockEntity.java +++ b/src/main/java/com/ticticboooom/mods/mm/block/tile/ControllerBlockEntity.java @@ -69,8 +69,8 @@ public class ControllerBlockEntity extends UpdatableTile implements ITickableTil List outputPorts = new ArrayList<>(); for (BlockPos port : ports) { TileEntity blockEntity = world.getTileEntity(port); - if (blockEntity instanceof MachinePortBlockEntity) { - MachinePortBlockEntity portBE = (MachinePortBlockEntity) blockEntity; + if (blockEntity instanceof IMachinePortTile) { + IMachinePortTile portBE = (IMachinePortTile) blockEntity; if (portBE.isInput()) { inputPorts.add(portBE.getStorage()); diff --git a/src/main/java/com/ticticboooom/mods/mm/block/tile/IMachinePortTile.java b/src/main/java/com/ticticboooom/mods/mm/block/tile/IMachinePortTile.java new file mode 100644 index 0000000..ca12fa4 --- /dev/null +++ b/src/main/java/com/ticticboooom/mods/mm/block/tile/IMachinePortTile.java @@ -0,0 +1,9 @@ +package com.ticticboooom.mods.mm.block.tile; + +import com.ticticboooom.mods.mm.ports.storage.PortStorage; +import net.minecraft.inventory.container.INamedContainerProvider; + +public interface IMachinePortTile extends INamedContainerProvider { + PortStorage getStorage(); + boolean isInput(); +} diff --git a/src/main/java/com/ticticboooom/mods/mm/block/tile/MachinePortBlockEntity.java b/src/main/java/com/ticticboooom/mods/mm/block/tile/MachinePortBlockEntity.java index bc91203..f1c14ad 100644 --- a/src/main/java/com/ticticboooom/mods/mm/block/tile/MachinePortBlockEntity.java +++ b/src/main/java/com/ticticboooom/mods/mm/block/tile/MachinePortBlockEntity.java @@ -25,7 +25,7 @@ import vazkii.botania.api.mana.IManaReceiver; import javax.annotation.Nonnull; import javax.annotation.Nullable; -public class MachinePortBlockEntity extends UpdatableTile implements ITickableTileEntity, INamedContainerProvider { +public class MachinePortBlockEntity extends UpdatableTile implements ITickableTileEntity, IMachinePortTile { protected ContainerType container; @Getter diff --git a/src/main/java/com/ticticboooom/mods/mm/block/tile/RotationGenMachinePortBlockEntity.java b/src/main/java/com/ticticboooom/mods/mm/block/tile/RotationGenMachinePortBlockEntity.java new file mode 100644 index 0000000..8395f28 --- /dev/null +++ b/src/main/java/com/ticticboooom/mods/mm/block/tile/RotationGenMachinePortBlockEntity.java @@ -0,0 +1,103 @@ +package com.ticticboooom.mods.mm.block.tile; + +import com.simibubi.create.content.contraptions.KineticNetwork; +import com.simibubi.create.content.contraptions.base.GeneratingKineticTileEntity; +import com.simibubi.create.content.contraptions.base.KineticTileEntity; +import com.ticticboooom.mods.mm.block.container.PortBlockContainer; +import com.ticticboooom.mods.mm.network.PacketHandler; +import com.ticticboooom.mods.mm.network.packets.TileClientUpdatePacket; +import com.ticticboooom.mods.mm.ports.storage.PortStorage; +import com.ticticboooom.mods.mm.ports.storage.RotationPortStorage; +import lombok.Getter; +import net.minecraft.block.BlockState; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.player.PlayerInventory; +import net.minecraft.inventory.container.Container; +import net.minecraft.inventory.container.ContainerType; +import net.minecraft.nbt.CompoundNBT; +import net.minecraft.tileentity.ITickableTileEntity; +import net.minecraft.tileentity.TileEntityType; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.TranslationTextComponent; +import net.minecraftforge.fml.network.PacketDistributor; + +import javax.annotation.Nullable; + +public class RotationGenMachinePortBlockEntity extends GeneratingKineticTileEntity implements IMachinePortTile, ITickableTileEntity { + private final ContainerType container; + @Getter + private final PortStorage storage; + @Getter + private boolean input; + + public RotationGenMachinePortBlockEntity(TileEntityType typeIn, ContainerType container, PortStorage storage, boolean input) { + super(typeIn); + this.container = container; + this.storage = storage; + this.input = input; + if (input) { + this.stress = ((RotationPortStorage) storage).getStress(); + } + + } + + @Override + public ITextComponent getDisplayName() { + return new TranslationTextComponent("container.masterfulmachinery.create_rotation"); + } + + @Nullable + @Override + public Container createMenu(int p_createMenu_1_, PlayerInventory p_createMenu_2_, PlayerEntity p_createMenu_3_) { + return new PortBlockContainer(container, p_createMenu_1_, p_createMenu_2_, this); + } + + @Override + public void tick() { + super.tick(); + if (storage instanceof RotationPortStorage) { + RotationPortStorage stor = (RotationPortStorage) this.storage; + float speed = stor.getSpeed(); + if (speed != this.speed) { + if (!hasSource()) { + effects.queueRotationIndicators(); + } + applyNewSpeed(this.speed, speed); + } + if (hasNetwork() && speed != 0) { + KineticNetwork network = getOrCreateNetwork(); + notifyStressCapacityChange(calculateAddedStressCapacity()); + getOrCreateNetwork().updateCapacityFor(this, calculateStressApplied()); + network.updateStress(); + } + + onSpeedChanged(this.speed); + sendData(); + } + + if (!world.isRemote()) { + PacketHandler.INSTANCE.send(PacketDistributor.ALL.noArg(), new TileClientUpdatePacket.Data(pos, write(new CompoundNBT()))); + } + } + + @Override + protected void fromTag(BlockState state, CompoundNBT compound, boolean clientPacket) { + this.storage.load(compound.getCompound("inv")); + } + + @Override + protected void write(CompoundNBT compound, boolean clientPacket) { + compound.put("inv", this.storage.save(new CompoundNBT())); + super.write(compound, clientPacket); + } + + + @Override + public float getGeneratedSpeed() { + if (storage instanceof RotationPortStorage) { + RotationPortStorage stor = (RotationPortStorage) this.storage; + return stor.getSpeed(); + } + return 0; + } +} diff --git a/src/main/java/com/ticticboooom/mods/mm/block/tile/RotationMachinePortBlockEntity.java b/src/main/java/com/ticticboooom/mods/mm/block/tile/RotationMachinePortBlockEntity.java new file mode 100644 index 0000000..530d6e2 --- /dev/null +++ b/src/main/java/com/ticticboooom/mods/mm/block/tile/RotationMachinePortBlockEntity.java @@ -0,0 +1,83 @@ +package com.ticticboooom.mods.mm.block.tile; + +import com.simibubi.create.Create; +import com.simibubi.create.content.contraptions.KineticNetwork; +import com.simibubi.create.content.contraptions.base.KineticTileEntity; +import com.ticticboooom.mods.mm.block.container.PortBlockContainer; +import com.ticticboooom.mods.mm.network.PacketHandler; +import com.ticticboooom.mods.mm.network.packets.TileClientUpdatePacket; +import com.ticticboooom.mods.mm.ports.storage.PortStorage; +import com.ticticboooom.mods.mm.ports.storage.RotationPortStorage; +import lombok.Getter; +import net.minecraft.block.BlockState; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.player.PlayerInventory; +import net.minecraft.inventory.container.Container; +import net.minecraft.inventory.container.ContainerType; +import net.minecraft.nbt.CompoundNBT; +import net.minecraft.tileentity.ITickableTileEntity; +import net.minecraft.tileentity.TileEntityType; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.TranslationTextComponent; +import net.minecraftforge.fml.network.PacketDistributor; + +import javax.annotation.Nullable; + +public class RotationMachinePortBlockEntity extends KineticTileEntity implements IMachinePortTile, ITickableTileEntity { + private final ContainerType container; + @Getter + private final PortStorage storage; + @Getter + private boolean input; + + public RotationMachinePortBlockEntity(TileEntityType typeIn, ContainerType container, PortStorage storage, boolean input) { + super(typeIn); + this.container = container; + this.storage = storage; + this.input = input; + if (input) { + this.stress = ((RotationPortStorage) storage).getStress(); + } + + } + + @Override + public ITextComponent getDisplayName() { + return new TranslationTextComponent("container.masterfulmachinery.create_rotation"); + } + + @Nullable + @Override + public Container createMenu(int p_createMenu_1_, PlayerInventory p_createMenu_2_, PlayerEntity p_createMenu_3_) { + return new PortBlockContainer(container, p_createMenu_1_, p_createMenu_2_, this); + } + + @Override + public void tick() { + super.tick(); + + if (this.world.isRemote) { + return; + } + if (storage instanceof RotationPortStorage) { + RotationPortStorage storage = (RotationPortStorage) this.storage; + if (input) { + storage.setSpeed(getSpeed()); + } + } + if (!world.isRemote()) { + PacketHandler.INSTANCE.send(PacketDistributor.ALL.noArg(), new TileClientUpdatePacket.Data(pos, write(new CompoundNBT()))); + } + } + + @Override + protected void fromTag(BlockState state, CompoundNBT compound, boolean clientPacket) { + this.storage.load(compound.getCompound("inv")); + } + + @Override + protected void write(CompoundNBT compound, boolean clientPacket) { + compound.put("inv", this.storage.save(new CompoundNBT())); + super.write(compound, clientPacket); + } +} diff --git a/src/main/java/com/ticticboooom/mods/mm/inventory/PortEnergyInventory.java b/src/main/java/com/ticticboooom/mods/mm/inventory/PortEnergyInventory.java index 13f7b2d..3578888 100644 --- a/src/main/java/com/ticticboooom/mods/mm/inventory/PortEnergyInventory.java +++ b/src/main/java/com/ticticboooom/mods/mm/inventory/PortEnergyInventory.java @@ -17,13 +17,13 @@ public class PortEnergyInventory implements IEnergyStorage { public int receiveEnergy(int maxReceive, boolean simulate) { if (simulate) { if ((long)maxReceive + stored > capacity) { - return maxReceive - (stored + maxReceive - capacity); + return (stored + maxReceive - capacity); } else { return maxReceive; } } if ((long)maxReceive + stored > capacity) { - int result = maxReceive - (stored + maxReceive - capacity); + int result = (stored + maxReceive - capacity); stored = capacity; return result; } else { diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/parser/RotationPortParser.java b/src/main/java/com/ticticboooom/mods/mm/ports/parser/RotationPortParser.java index ff27258..8878edf 100644 --- a/src/main/java/com/ticticboooom/mods/mm/ports/parser/RotationPortParser.java +++ b/src/main/java/com/ticticboooom/mods/mm/ports/parser/RotationPortParser.java @@ -6,14 +6,25 @@ import com.mojang.datafixers.util.Pair; import com.mojang.serialization.DataResult; import com.mojang.serialization.JsonOps; import com.ticticboooom.mods.mm.MM; +import com.ticticboooom.mods.mm.block.AstralMachinePortBlock; +import com.ticticboooom.mods.mm.block.MachinePortBlock; +import com.ticticboooom.mods.mm.block.RotationMachinePortBlock; +import com.ticticboooom.mods.mm.block.tile.RotationGenMachinePortBlockEntity; +import com.ticticboooom.mods.mm.block.tile.RotationMachinePortBlockEntity; import com.ticticboooom.mods.mm.ports.state.PortState; import com.ticticboooom.mods.mm.ports.state.RotationPortState; import com.ticticboooom.mods.mm.ports.storage.PortStorage; import com.ticticboooom.mods.mm.ports.storage.RotationPortStorage; +import com.ticticboooom.mods.mm.registration.Registerable; import lombok.SneakyThrows; import mezz.jei.api.ingredients.IIngredients; +import net.minecraft.block.Block; +import net.minecraft.inventory.container.ContainerType; import net.minecraft.network.PacketBuffer; +import net.minecraft.tileentity.TileEntityType; import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.RegistryObject; +import net.minecraftforge.registries.DeferredRegister; import java.util.List; import java.util.function.Supplier; @@ -22,8 +33,12 @@ public class RotationPortParser extends PortFactory { @Override public Supplier createStorage(JsonObject obj) { - return RotationPortStorage::new; + return () -> { + DataResult> apply = JsonOps.INSTANCE.withDecoder(RotationPortStorage.CODEC).apply(obj); + return apply.result().get().getFirst(); + }; } + @SneakyThrows @Override public void write(PacketBuffer buf, PortState state) { @@ -55,4 +70,18 @@ public class RotationPortParser extends PortFactory { public PortState createState(PacketBuffer buf) { return buf.func_240628_a_(RotationPortState.CODEC); } + + @Override + public RegistryObject> registerTileEntity(String id, DeferredRegister> reg, Registerable>> tile, Registerable> block, Registerable>> containerType, Supplier portStorage, boolean isInput) { + if (isInput) { + return reg.register(id, () -> TileEntityType.Builder.create(() -> new RotationMachinePortBlockEntity(tile.get().get(), containerType.get().get(), portStorage.get(), isInput), block.get().get()).build(null)); + } else { + return reg.register(id, () -> TileEntityType.Builder.create(() -> new RotationGenMachinePortBlockEntity(tile.get().get(), containerType.get().get(), portStorage.get(), isInput), block.get().get()).build(null)); + } + } + + @Override + public RegistryObject registerBlock(String id, DeferredRegister reg, Registerable>> type, String name, String controllerId, String textureOverride, ResourceLocation overlay) { + return reg.register(id, () -> new RotationMachinePortBlock(type.get(), name, controllerId, textureOverride, overlay)); + } } diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/storage/ItemPortStorage.java b/src/main/java/com/ticticboooom/mods/mm/ports/storage/ItemPortStorage.java index 553c0e9..a3da28c 100644 --- a/src/main/java/com/ticticboooom/mods/mm/ports/storage/ItemPortStorage.java +++ b/src/main/java/com/ticticboooom/mods/mm/ports/storage/ItemPortStorage.java @@ -5,6 +5,7 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; import com.ticticboooom.mods.mm.MM; import com.ticticboooom.mods.mm.block.container.PortBlockContainer; +import com.ticticboooom.mods.mm.block.tile.IMachinePortTile; import com.ticticboooom.mods.mm.block.tile.MachinePortBlockEntity; import com.ticticboooom.mods.mm.helper.InvHelper; import com.ticticboooom.mods.mm.inventory.ItemStackInventory; @@ -79,7 +80,7 @@ public class ItemPortStorage extends PortStorage { } @Override - public void setupContainer(PortBlockContainer container, PlayerInventory inv, MachinePortBlockEntity tile) { + public void setupContainer(PortBlockContainer container, PlayerInventory inv, IMachinePortTile tile) { int offsetX = ((162 - (columns * 18)) / 2) + 8; int offsetY = ((108 - (rows * 18)) / 2) + 8; ItemStackInventory items = InvHelper.getItems(this.inv); diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/storage/PortStorage.java b/src/main/java/com/ticticboooom/mods/mm/ports/storage/PortStorage.java index fda2386..0830082 100644 --- a/src/main/java/com/ticticboooom/mods/mm/ports/storage/PortStorage.java +++ b/src/main/java/com/ticticboooom/mods/mm/ports/storage/PortStorage.java @@ -2,6 +2,7 @@ package com.ticticboooom.mods.mm.ports.storage; import com.mojang.blaze3d.matrix.MatrixStack; import com.ticticboooom.mods.mm.block.container.PortBlockContainer; +import com.ticticboooom.mods.mm.block.tile.IMachinePortTile; import com.ticticboooom.mods.mm.block.tile.MachinePortBlockEntity; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.inventory.ContainerScreen; @@ -18,7 +19,7 @@ public abstract class PortStorage { public abstract CompoundNBT save(CompoundNBT nbt); public abstract void load(CompoundNBT nbt); public abstract void render(MatrixStack stack, int mouseX, int mouseY, int left, int top, Screen screen); - public void setupContainer(PortBlockContainer container, PlayerInventory inv, MachinePortBlockEntity tile){ + public void setupContainer(PortBlockContainer container, PlayerInventory inv, IMachinePortTile tile){ int playerOffsetX = 8; int playerOffsetY = 141; for (int j = 0; j < 3; j++) { diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/storage/RotationPortStorage.java b/src/main/java/com/ticticboooom/mods/mm/ports/storage/RotationPortStorage.java index f95b15d..1a9b8bb 100644 --- a/src/main/java/com/ticticboooom/mods/mm/ports/storage/RotationPortStorage.java +++ b/src/main/java/com/ticticboooom/mods/mm/ports/storage/RotationPortStorage.java @@ -34,14 +34,23 @@ import java.util.List; import java.util.Map; public class RotationPortStorage extends PortStorage { - + public static final Codec CODEC = RecordCodecBuilder.create(x -> x.group( + Codec.INT.fieldOf("stress").forGetter(z -> z.stress) + ).apply(x, RotationPortStorage::new)); @Getter @Setter private float speed; + @Getter + private int stress; + + public RotationPortStorage(int stress) { + + this.stress = stress; + } + private HashMap kinetics = new HashMap<>(); public RotationPortStorage() { - neighborChanged(); } @Override @@ -74,42 +83,5 @@ public class RotationPortStorage extends PortStorage { @Override public void tick(MachinePortBlockEntity tile) { - BlockPos blockPos = tile.getPos(); - World level = tile.getWorld(); - HashMap tiles = new HashMap<>(); - tiles.put(Direction.EAST, level.getTileEntity(blockPos.add(1, 0, 0))); - tiles.put(Direction.WEST, level.getTileEntity(blockPos.add(-1, 0, 0))); - tiles.put(Direction.UP, level.getTileEntity(blockPos.add(0, 1, 0))); - tiles.put(Direction.DOWN, level.getTileEntity(blockPos.add(0, -1, 0))); - tiles.put(Direction.NORTH, level.getTileEntity(blockPos.add(0, 0, 1))); - tiles.put(Direction.SOUTH, level.getTileEntity(blockPos.add(0, 0, -1))); - speed = 0; - if (tile.isInput()) { - for (Map.Entry tileEntity : tiles.entrySet()) { - if (tileEntity.getValue() instanceof KineticTileEntity) { - KineticTileEntity te = (KineticTileEntity) tileEntity.getValue(); - if (Math.abs(te.getSpeed()) > speed){ - speed = Math.abs(te.getSpeed()); - } - } - } - } else { - for (Map.Entry tileEntity : tiles.entrySet()) { - if (tileEntity.getValue() instanceof KineticTileEntity) { - - KineticTileEntity te = (KineticTileEntity) tileEntity.getValue(); - if (speed == 0){ - te.detachKinetics(); - te.setSpeed(0); - te.setNetwork(null); - } else { - te.setSpeed(speed); - te.setNetwork(te.getPos().toLong()); - te.attachKinetics(); - } - te.notifyUpdate(); - } - } - } } } diff --git a/version.properties b/version.properties index f85d114..a3532de 100644 --- a/version.properties +++ b/version.properties @@ -1,2 +1,2 @@ -#Mon May 24 20:28:48 BST 2021 -VERSION_CODE=86 +#Tue May 25 00:48:05 BST 2021 +VERSION_CODE=154