From 10106715d34397be9bd86eed8208a8eccf935c87 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Wed, 18 Apr 2018 15:07:28 +0100 Subject: [PATCH] Right click the fusion control computer with coils to autoplace them. --- .../blocks/BlockFusionControlComputer.java | 23 +++++++++++++++++++ .../TileFusionControlComputer.java | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main/java/techreborn/blocks/BlockFusionControlComputer.java b/src/main/java/techreborn/blocks/BlockFusionControlComputer.java index e88211942..d31400951 100644 --- a/src/main/java/techreborn/blocks/BlockFusionControlComputer.java +++ b/src/main/java/techreborn/blocks/BlockFusionControlComputer.java @@ -27,6 +27,7 @@ package techreborn.blocks; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; @@ -36,12 +37,16 @@ import prospector.shootingstar.ShootingStar; import prospector.shootingstar.model.ModelCompound; import reborncore.api.tile.IMachineGuiHandler; import reborncore.common.blocks.BlockMachineBase; +import reborncore.common.util.Torus; import techreborn.client.EGui; import techreborn.client.TechRebornCreativeTab; +import techreborn.init.ModBlocks; import techreborn.lib.ModInfo; import techreborn.tiles.fusionReactor.TileFusionControlComputer; import techreborn.utils.damageSources.FusionDamageSource; +import java.util.List; + public class BlockFusionControlComputer extends BlockMachineBase { public BlockFusionControlComputer() { @@ -55,6 +60,24 @@ public class BlockFusionControlComputer extends BlockMachineBase { final EntityPlayer player, final EnumHand hand, final EnumFacing side, final float hitX, final float hitY, final float hitZ) { final TileFusionControlComputer tileFusionControlComputer = (TileFusionControlComputer) world.getTileEntity(pos); + if(!player.getHeldItem(hand).isEmpty() && player.getHeldItem(hand).getItem() == Item.getItemFromBlock(ModBlocks.FUSION_COIL)){ + List coils = Torus.generate(tileFusionControlComputer.getPos(), tileFusionControlComputer.size); + boolean placed = false; + for(BlockPos coil : coils){ + if(player.getHeldItem(hand).isEmpty()){ + return true; + } + if(world.isAirBlock(coil) && !tileFusionControlComputer.isCoil(coil)){ + world.setBlockState(coil, ModBlocks.FUSION_COIL.getDefaultState()); + player.getHeldItem(hand).shrink(1); + placed = true; + } + } + if(placed){ + return true; + } + + } tileFusionControlComputer.checkCoils(); return super.onBlockActivated(world, pos, state, player, hand, side, hitX, hitY, hitZ); } diff --git a/src/main/java/techreborn/tiles/fusionReactor/TileFusionControlComputer.java b/src/main/java/techreborn/tiles/fusionReactor/TileFusionControlComputer.java index f46fc708f..b51884f99 100644 --- a/src/main/java/techreborn/tiles/fusionReactor/TileFusionControlComputer.java +++ b/src/main/java/techreborn/tiles/fusionReactor/TileFusionControlComputer.java @@ -99,7 +99,7 @@ public class TileFusionControlComputer extends TilePowerAcceptor * @param pos coordinate for block * @return boolean Returns true if block is fusion coil */ - private boolean isCoil(final BlockPos pos) { + public boolean isCoil(final BlockPos pos) { return this.world.getBlockState(pos).getBlock() == ModBlocks.FUSION_COIL; }