MOre work on blocks. Less then 1200 errors left
This commit is contained in:
parent
93cf0a97d5
commit
0b0435a1a2
7 changed files with 77 additions and 217 deletions
|
@ -25,27 +25,23 @@
|
||||||
package techreborn.blocks;
|
package techreborn.blocks;
|
||||||
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.SoundType;
|
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.state.BooleanProperty;
|
import net.minecraft.state.BooleanProperty;
|
||||||
import net.minecraft.state.DirectionProperty;
|
import net.minecraft.state.DirectionProperty;
|
||||||
import net.minecraft.block.state.BlockStateContainer;
|
import net.minecraft.state.StateContainer;
|
||||||
import net.minecraft.block.state.IBlockState;
|
import net.minecraft.block.state.IBlockState;
|
||||||
import net.minecraft.client.resources.I18n;
|
|
||||||
import net.minecraft.client.util.ITooltipFlag;
|
import net.minecraft.client.util.ITooltipFlag;
|
||||||
import net.minecraft.entity.EntityLivingBase;
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.EnumBlockRenderType;
|
import net.minecraft.util.EnumBlockRenderType;
|
||||||
import net.minecraft.util.EnumFacing;
|
import net.minecraft.util.EnumFacing;
|
||||||
import net.minecraft.util.EnumHand;
|
import net.minecraft.util.EnumHand;
|
||||||
import net.minecraft.util.math.AxisAlignedBB;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.shapes.VoxelShape;
|
||||||
import net.minecraft.util.text.ITextComponent;
|
import net.minecraft.util.text.ITextComponent;
|
||||||
import net.minecraft.util.text.TextComponentTranslation;
|
import net.minecraft.util.text.TextComponentTranslation;
|
||||||
import net.minecraft.util.text.TextFormatting;
|
import net.minecraft.util.text.TextFormatting;
|
||||||
import net.minecraft.world.IBlockAccess;
|
|
||||||
import net.minecraft.world.IBlockReader;
|
import net.minecraft.world.IBlockReader;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import reborncore.api.ToolManager;
|
import reborncore.api.ToolManager;
|
||||||
|
@ -62,34 +58,34 @@ import java.util.List;
|
||||||
public class BlockAlarm extends BaseTileBlock {
|
public class BlockAlarm extends BaseTileBlock {
|
||||||
public static DirectionProperty FACING;
|
public static DirectionProperty FACING;
|
||||||
public static BooleanProperty ACTIVE;
|
public static BooleanProperty ACTIVE;
|
||||||
private AxisAlignedBB[] bbs;
|
protected final VoxelShape[] shape;
|
||||||
|
|
||||||
public BlockAlarm() {
|
public BlockAlarm() {
|
||||||
super(Block.Properties.create(Material.ROCK));
|
super(Block.Properties.create(Material.ROCK));
|
||||||
this.setDefaultState(this.blockState.getBaseState().with(FACING, EnumFacing.NORTH).with(ACTIVE, false));
|
this.setDefaultState(this.stateContainer.getBaseState().with(FACING, EnumFacing.NORTH).with(ACTIVE, false));
|
||||||
this.bbs = GenBoundingBoxes(0.19, 0.81);
|
this.shape = GenCuboidShapes(0.19, 0.81);
|
||||||
RebornModelRegistry.registerModel(new ModelCompound(TechReborn.MOD_ID, this, "machines/lighting"));
|
RebornModelRegistry.registerModel(new ModelCompound(TechReborn.MOD_ID, this, "machines/lighting"));
|
||||||
BlockWrenchEventHandler.wrenableBlocks.add(this);
|
BlockWrenchEventHandler.wrenableBlocks.add(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static AxisAlignedBB[] GenBoundingBoxes(double depth, double width) {
|
private VoxelShape[] GenCuboidShapes(double depth, double width) {
|
||||||
AxisAlignedBB[] dimm = {
|
VoxelShape[] shapes = {
|
||||||
new AxisAlignedBB(width, 1.0 - depth, width, 1.0 - width, 1.0D, 1.0 - width),
|
Block.makeCuboidShape(width, 1.0 - depth, width, 1.0 - width, 1.0D, 1.0 - width),
|
||||||
new AxisAlignedBB(width, 0.0D, width, 1.0 - width, depth, 1.0 - width),
|
Block.makeCuboidShape(width, 0.0D, width, 1.0 - width, depth, 1.0 - width),
|
||||||
new AxisAlignedBB(width, width, 1.0 - depth, 1.0 - width, 1.0 - width, 1.0D),
|
Block.makeCuboidShape(width, width, 1.0 - depth, 1.0 - width, 1.0 - width, 1.0D),
|
||||||
new AxisAlignedBB(width, width, 0.0D, 1.0 - width, 1.0 - width, depth),
|
Block.makeCuboidShape(width, width, 0.0D, 1.0 - width, 1.0 - width, depth),
|
||||||
new AxisAlignedBB(1.0 - depth, width, width, 1.0D, 1.0 - width, 1.0 - width),
|
Block.makeCuboidShape(1.0 - depth, width, width, 1.0D, 1.0 - width, 1.0 - width),
|
||||||
new AxisAlignedBB(0.0D, width, width, depth, 1.0 - width, 1.0 - width),
|
Block.makeCuboidShape(0.0D, width, width, depth, 1.0 - width, 1.0 - width),
|
||||||
};
|
};
|
||||||
return dimm;
|
return shapes;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isActive(IBlockState state) {
|
public static boolean isActive(IBlockState state) {
|
||||||
return state.getValue(ACTIVE);
|
return state.get(ACTIVE);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static EnumFacing getFacing(IBlockState state) {
|
public static EnumFacing getFacing(IBlockState state) {
|
||||||
return (EnumFacing) state.getValue(FACING);
|
return (EnumFacing) state.get(FACING);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setFacing(EnumFacing facing, World world, BlockPos pos) {
|
public static void setFacing(EnumFacing facing, World world, BlockPos pos) {
|
||||||
|
@ -97,18 +93,20 @@ public class BlockAlarm extends BaseTileBlock {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setActive(boolean active, World world, BlockPos pos) {
|
public static void setActive(boolean active, World world, BlockPos pos) {
|
||||||
EnumFacing facing = world.getBlockState(pos).getValue(FACING);
|
EnumFacing facing = world.getBlockState(pos).get(FACING);
|
||||||
IBlockState state = world.getBlockState(pos).with(ACTIVE, active).with(FACING, facing);
|
IBlockState state = world.getBlockState(pos).with(ACTIVE, active).with(FACING, facing);
|
||||||
world.setBlockState(pos, state, 3);
|
world.setBlockState(pos, state, 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Block
|
||||||
@Override
|
@Override
|
||||||
protected BlockStateContainer createBlockState() {
|
protected void fillStateContainer(StateContainer.Builder<Block, IBlockState> builder) {
|
||||||
FACING = DirectionProperty.create("facing");
|
FACING = DirectionProperty.create("facing", EnumFacing.Plane.HORIZONTAL);
|
||||||
ACTIVE = BooleanProperty.create("active");
|
ACTIVE = BooleanProperty.create("active");
|
||||||
return new BlockStateContainer(this, FACING, ACTIVE);
|
builder.add(FACING, ACTIVE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
@Override
|
@Override
|
||||||
public boolean onBlockActivated(IBlockState state, World worldIn, BlockPos pos, EntityPlayer playerIn, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) {
|
public boolean onBlockActivated(IBlockState state, World worldIn, BlockPos pos, EntityPlayer playerIn, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) {
|
||||||
ItemStack stack = playerIn.getHeldItem(EnumHand.MAIN_HAND);
|
ItemStack stack = playerIn.getHeldItem(EnumHand.MAIN_HAND);
|
||||||
|
@ -140,40 +138,23 @@ public class BlockAlarm extends BaseTileBlock {
|
||||||
return new TileAlarm();
|
return new TileAlarm();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY,
|
|
||||||
float hitZ, int meta, EntityLivingBase placer, EnumHand hand) {
|
|
||||||
return this.getDefaultState().with(FACING, facing);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public EnumBlockRenderType getRenderType(IBlockState state) {
|
public EnumBlockRenderType getRenderType(IBlockState state) {
|
||||||
return EnumBlockRenderType.MODEL;
|
return EnumBlockRenderType.MODEL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isOpaqueCube(IBlockState state) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isFullBlock(IBlockState state) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isFullCube(IBlockState state) {
|
public boolean isFullCube(IBlockState state) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) {
|
|
||||||
return this.bbs[getFacing(state).getIndex()];
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addInformation(ItemStack stack, @Nullable IBlockReader worldIn, List<ITextComponent> tooltip, ITooltipFlag flagIn) {
|
public void addInformation(ItemStack stack, @Nullable IBlockReader worldIn, List<ITextComponent> tooltip, ITooltipFlag flagIn) {
|
||||||
tooltip.add(new TextComponentTranslation("techreborn.tooltip.alarm").applyTextStyle(TextFormatting.GRAY));
|
tooltip.add(new TextComponentTranslation("techreborn.tooltip.alarm").applyTextStyle(TextFormatting.GRAY));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VoxelShape getShape(IBlockState state, IBlockReader worldIn, BlockPos pos) {
|
||||||
|
return shape[getFacing(state).getIndex()];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,6 +30,7 @@ import net.minecraft.init.Blocks;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.EnumFacing;
|
import net.minecraft.util.EnumFacing;
|
||||||
import net.minecraft.util.EnumHand;
|
import net.minecraft.util.EnumHand;
|
||||||
|
import net.minecraft.util.Rotation;
|
||||||
import net.minecraft.util.SoundCategory;
|
import net.minecraft.util.SoundCategory;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
@ -71,7 +72,7 @@ public class BlockComputerCube extends BlockMachineBase {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
rotateBlock(worldIn, pos, side);
|
rotate(worldIn.getBlockState(pos), worldIn, pos, Rotation.CLOCKWISE_90);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,26 +82,11 @@ public class BlockFlare extends BlockContainer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public IBlockState getStateFromMeta(int meta) {
|
|
||||||
return this.getDefaultState().with(COLOR, EnumDyeColor.byMetadata(meta));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getMetaFromState(IBlockState state) {
|
|
||||||
return (state.getValue(COLOR)).getMetadata();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected BlockStateContainer createBlockState() {
|
protected BlockStateContainer createBlockState() {
|
||||||
return new BlockStateContainer(this, COLOR);
|
return new BlockStateContainer(this, COLOR);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isOpaqueCube(IBlockState state) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@OnlyIn(Dist.CLIENT)
|
@OnlyIn(Dist.CLIENT)
|
||||||
public BlockRenderLayer getRenderLayer() {
|
public BlockRenderLayer getRenderLayer() {
|
||||||
|
|
|
@ -27,15 +27,13 @@ package techreborn.blocks;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.state.BooleanProperty;
|
import net.minecraft.state.BooleanProperty;
|
||||||
import net.minecraft.block.state.BlockStateContainer;
|
import net.minecraft.state.StateContainer;
|
||||||
import net.minecraft.block.state.IBlockState;
|
import net.minecraft.block.state.IBlockState;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.EntityLivingBase;
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.entity.projectile.EntityArrow;
|
import net.minecraft.entity.projectile.EntityArrow;
|
||||||
import net.minecraft.init.SoundEvents;
|
import net.minecraft.init.SoundEvents;
|
||||||
import net.minecraft.util.EnumFacing;
|
|
||||||
import net.minecraft.util.EnumHand;
|
|
||||||
import net.minecraft.util.SoundCategory;
|
import net.minecraft.util.SoundCategory;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.Explosion;
|
import net.minecraft.world.Explosion;
|
||||||
|
@ -50,11 +48,11 @@ import techreborn.entities.EntityNukePrimed;
|
||||||
* Created by Mark on 13/03/2016.
|
* Created by Mark on 13/03/2016.
|
||||||
*/
|
*/
|
||||||
public class BlockNuke extends BaseBlock {
|
public class BlockNuke extends BaseBlock {
|
||||||
public static final BooleanProperty OVERLAY = BooleanProperty.create("overlay");
|
public static BooleanProperty OVERLAY = BooleanProperty.create("overlay");
|
||||||
|
|
||||||
public BlockNuke() {
|
public BlockNuke() {
|
||||||
super(Material.TNT);
|
super(Block.Properties.create(Material.TNT));
|
||||||
this.setDefaultState(this.blockState.getBaseState().with(OVERLAY, false));
|
this.setDefaultState(this.stateContainer.getBaseState().with(OVERLAY, false));
|
||||||
RebornModelRegistry.registerModel(new ModelCompound(TechReborn.MOD_ID, this));
|
RebornModelRegistry.registerModel(new ModelCompound(TechReborn.MOD_ID, this));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,6 +91,7 @@ public class BlockNuke extends BaseBlock {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
@Override
|
@Override
|
||||||
public void onBlockAdded(IBlockState state, World worldIn, BlockPos pos, IBlockState oldState) {
|
public void onBlockAdded(IBlockState state, World worldIn, BlockPos pos, IBlockState oldState) {
|
||||||
super.onBlockAdded(state, worldIn, pos, oldState);
|
super.onBlockAdded(state, worldIn, pos, oldState);
|
||||||
|
@ -109,20 +108,10 @@ public class BlockNuke extends BaseBlock {
|
||||||
worldIn.removeBlock(pos);
|
worldIn.removeBlock(pos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMetaFromState(IBlockState state) {
|
protected void fillStateContainer(StateContainer.Builder<Block, IBlockState> builder) {
|
||||||
return state.getValue(OVERLAY) ? 1 : 0;
|
OVERLAY = BooleanProperty.create("overlay");
|
||||||
|
builder.add(OVERLAY);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public IBlockState getStateFromMeta(int meta) {
|
|
||||||
return this.getDefaultState().with(OVERLAY, (meta & 1) > 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected BlockStateContainer createBlockState() {
|
|
||||||
return new BlockStateContainer(this, OVERLAY);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,16 +24,15 @@
|
||||||
|
|
||||||
package techreborn.blocks;
|
package techreborn.blocks;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.BlockFence;
|
import net.minecraft.block.BlockFence;
|
||||||
import net.minecraft.block.BlockPlanks;
|
import net.minecraft.block.SoundType;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.block.material.MaterialColor;
|
||||||
|
|
||||||
public class BlockRefinedIronFence extends BlockFence {
|
public class BlockRefinedIronFence extends BlockFence {
|
||||||
|
|
||||||
public BlockRefinedIronFence() {
|
public BlockRefinedIronFence() {
|
||||||
super(Material.IRON, BlockPlanks.EnumType.OAK.getMapColor());
|
super(Block.Properties.create(Material.IRON, MaterialColor.WOOD).hardnessAndResistance(2.0F, 3.0F).sound(SoundType.METAL));
|
||||||
setHardness(2.0F);
|
|
||||||
setHarvestLevel("pickaxe", 2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,11 +24,12 @@
|
||||||
|
|
||||||
package techreborn.blocks.lighting;
|
package techreborn.blocks.lighting;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.state.BooleanProperty;
|
import net.minecraft.state.BooleanProperty;
|
||||||
import net.minecraft.state.DirectionProperty;
|
import net.minecraft.state.DirectionProperty;
|
||||||
|
import net.minecraft.state.StateContainer;
|
||||||
import net.minecraft.block.state.BlockFaceShape;
|
import net.minecraft.block.state.BlockFaceShape;
|
||||||
import net.minecraft.block.state.BlockStateContainer;
|
|
||||||
import net.minecraft.block.state.IBlockState;
|
import net.minecraft.block.state.IBlockState;
|
||||||
import net.minecraft.entity.EntityLivingBase;
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
@ -39,7 +40,6 @@ import net.minecraft.util.EnumFacing;
|
||||||
import net.minecraft.util.EnumHand;
|
import net.minecraft.util.EnumHand;
|
||||||
import net.minecraft.util.math.AxisAlignedBB;
|
import net.minecraft.util.math.AxisAlignedBB;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.IBlockAccess;
|
|
||||||
import net.minecraft.world.IBlockReader;
|
import net.minecraft.world.IBlockReader;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import reborncore.api.ToolManager;
|
import reborncore.api.ToolManager;
|
||||||
|
@ -61,8 +61,8 @@ public class BlockLamp extends BaseTileBlock {
|
||||||
private int brightness;
|
private int brightness;
|
||||||
|
|
||||||
public BlockLamp(int brightness, int cost, double depth, double width) {
|
public BlockLamp(int brightness, int cost, double depth, double width) {
|
||||||
super(Material.REDSTONE_LIGHT);
|
super(Block.Properties.create(Material.REDSTONE_LIGHT));
|
||||||
this.setDefaultState(this.blockState.getBaseState().with(FACING, EnumFacing.NORTH).with(ACTIVE, false));
|
this.setDefaultState(this.stateContainer.getBaseState().with(FACING, EnumFacing.NORTH).with(ACTIVE, false));
|
||||||
this.bbs = GenBoundingBoxes(depth, width);
|
this.bbs = GenBoundingBoxes(depth, width);
|
||||||
this.cost = cost;
|
this.cost = cost;
|
||||||
this.brightness = brightness;
|
this.brightness = brightness;
|
||||||
|
@ -83,14 +83,11 @@ public class BlockLamp extends BaseTileBlock {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isActive(IBlockState state) {
|
public static boolean isActive(IBlockState state) {
|
||||||
return state.getValue(ACTIVE);
|
return state.get(ACTIVE);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static EnumFacing getFacing(IBlockState state) {
|
public static EnumFacing getFacing(IBlockState state) {
|
||||||
if(!state.getProperties().containsKey(FACING)){
|
return state.get(FACING);
|
||||||
return EnumFacing.NORTH;
|
|
||||||
}
|
|
||||||
return state.getValue(FACING);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setFacing(EnumFacing facing, World world, BlockPos pos) {
|
public static void setFacing(EnumFacing facing, World world, BlockPos pos) {
|
||||||
|
@ -98,7 +95,7 @@ public class BlockLamp extends BaseTileBlock {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setActive(Boolean active, World world, BlockPos pos) {
|
public static void setActive(Boolean active, World world, BlockPos pos) {
|
||||||
EnumFacing facing = (EnumFacing)world.getBlockState(pos).getValue(FACING);
|
EnumFacing facing = (EnumFacing)world.getBlockState(pos).get(FACING);
|
||||||
IBlockState state = world.getBlockState(pos).with(ACTIVE, active).with(FACING, facing);
|
IBlockState state = world.getBlockState(pos).with(ACTIVE, active).with(FACING, facing);
|
||||||
world.setBlockState(pos, state, 3);
|
world.setBlockState(pos, state, 3);
|
||||||
}
|
}
|
||||||
|
@ -115,21 +112,21 @@ public class BlockLamp extends BaseTileBlock {
|
||||||
|
|
||||||
// Block
|
// Block
|
||||||
@Override
|
@Override
|
||||||
protected BlockStateContainer createBlockState() {
|
protected void fillStateContainer(StateContainer.Builder<Block, IBlockState> builder) {
|
||||||
FACING = DirectionProperty.create("facing");
|
FACING = DirectionProperty.create("facing", EnumFacing.Plane.HORIZONTAL);
|
||||||
ACTIVE = BooleanProperty.create("active");
|
ACTIVE = BooleanProperty.create("active");
|
||||||
return new BlockStateContainer(this, FACING, ACTIVE);
|
builder.add(FACING, ACTIVE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY,
|
public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) {
|
||||||
float hitZ, int meta, EntityLivingBase placer, EnumHand hand) {
|
super.onBlockPlacedBy(worldIn, pos, state, placer, stack);
|
||||||
return this.getDefaultState().with(FACING, facing);
|
setFacing(placer.getHorizontalFacing().getOpposite(), worldIn, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getLightValue(IBlockState state, IBlockAccess world, BlockPos pos) {
|
public int getLightValue(IBlockState state) {
|
||||||
return state.getValue(ACTIVE) ? brightness : 0;
|
return state.get(ACTIVE) ? brightness : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -143,7 +140,7 @@ public class BlockLamp extends BaseTileBlock {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlockFaceShape getBlockFaceShape(IBlockAccess access, IBlockState state, BlockPos pos, EnumFacing facing) {
|
public BlockFaceShape getBlockFaceShape(IBlockReader worldIn, IBlockState state, BlockPos pos, EnumFacing facing) {
|
||||||
// This makes only the back face of lamps connect to fences.
|
// This makes only the back face of lamps connect to fences.
|
||||||
if (getFacing(state).getOpposite() == facing)
|
if (getFacing(state).getOpposite() == facing)
|
||||||
return BlockFaceShape.SOLID;
|
return BlockFaceShape.SOLID;
|
||||||
|
@ -152,10 +149,11 @@ public class BlockLamp extends BaseTileBlock {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) {
|
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockReader worldIn, BlockPos pos) {
|
||||||
return this.bbs[getFacing(state).getIndex()];
|
return this.bbs[getFacing(state).getIndex()];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
@Override
|
@Override
|
||||||
public boolean onBlockActivated(IBlockState state, World worldIn, BlockPos pos, EntityPlayer playerIn, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) {
|
public boolean onBlockActivated(IBlockState state, World worldIn, BlockPos pos, EntityPlayer playerIn, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) {
|
||||||
ItemStack stack = playerIn.getHeldItem(EnumHand.MAIN_HAND);
|
ItemStack stack = playerIn.getHeldItem(EnumHand.MAIN_HAND);
|
||||||
|
@ -174,18 +172,4 @@ public class BlockLamp extends BaseTileBlock {
|
||||||
|
|
||||||
return super.onBlockActivated(state, worldIn, pos, playerIn, hand, side, hitX, hitY, hitZ);
|
return super.onBlockActivated(state, worldIn, pos, playerIn, hand, side, hitX, hitY, hitZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getMetaFromState(IBlockState state) {
|
|
||||||
int facingInt = state.getValue(FACING).getIndex();
|
|
||||||
int activeInt = state.getValue(ACTIVE) ? 8 : 0;
|
|
||||||
return facingInt + activeInt;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IBlockState getStateFromMeta(int meta) {
|
|
||||||
Boolean active = (meta&8)==8;
|
|
||||||
EnumFacing facing = EnumFacing.byIndex(meta&7);
|
|
||||||
return this.getDefaultState().with(FACING, facing).with(ACTIVE, active);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,10 +27,9 @@ package techreborn.blocks.transformers;
|
||||||
import com.google.common.base.Predicate;
|
import com.google.common.base.Predicate;
|
||||||
import com.google.common.collect.Iterators;
|
import com.google.common.collect.Iterators;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.SoundType;
|
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.state.DirectionProperty;
|
import net.minecraft.state.DirectionProperty;
|
||||||
import net.minecraft.block.state.BlockStateContainer;
|
import net.minecraft.state.StateContainer;
|
||||||
import net.minecraft.block.state.IBlockState;
|
import net.minecraft.block.state.IBlockState;
|
||||||
import net.minecraft.entity.EntityLivingBase;
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
@ -59,7 +58,7 @@ public abstract class BlockTransformer extends BaseTileBlock {
|
||||||
|
|
||||||
public BlockTransformer(String name) {
|
public BlockTransformer(String name) {
|
||||||
super(Block.Properties.create(Material.IRON).hardnessAndResistance(2f));
|
super(Block.Properties.create(Material.IRON).hardnessAndResistance(2f));
|
||||||
this.setDefaultState(this.blockState.getBaseState().with(FACING, EnumFacing.NORTH));
|
this.setDefaultState(this.stateContainer.getBaseState().with(FACING, EnumFacing.NORTH));
|
||||||
this.name = name;
|
this.name = name;
|
||||||
RebornModelRegistry.registerModel(new ModelCompound(TechReborn.MOD_ID, this, "machines/energy"));
|
RebornModelRegistry.registerModel(new ModelCompound(TechReborn.MOD_ID, this, "machines/energy"));
|
||||||
BlockWrenchEventHandler.wrenableBlocks.add(this);
|
BlockWrenchEventHandler.wrenableBlocks.add(this);
|
||||||
|
@ -70,81 +69,13 @@ public abstract class BlockTransformer extends BaseTileBlock {
|
||||||
}
|
}
|
||||||
|
|
||||||
public EnumFacing getFacing(IBlockState state) {
|
public EnumFacing getFacing(IBlockState state) {
|
||||||
return state.getValue(FACING);
|
return state.get(FACING);
|
||||||
}
|
|
||||||
|
|
||||||
public EnumFacing getSideFromint(int i) {
|
|
||||||
if (i == 0) {
|
|
||||||
return EnumFacing.NORTH;
|
|
||||||
} else if (i == 1) {
|
|
||||||
return EnumFacing.SOUTH;
|
|
||||||
} else if (i == 2) {
|
|
||||||
return EnumFacing.EAST;
|
|
||||||
} else if (i == 3) {
|
|
||||||
return EnumFacing.WEST;
|
|
||||||
} else if (i == 4) {
|
|
||||||
return EnumFacing.UP;
|
|
||||||
} else if (i == 5) {
|
|
||||||
return EnumFacing.DOWN;
|
|
||||||
}
|
|
||||||
return EnumFacing.NORTH;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getSideFromEnum(EnumFacing facing) {
|
|
||||||
if (facing == EnumFacing.NORTH) {
|
|
||||||
return 0;
|
|
||||||
} else if (facing == EnumFacing.SOUTH) {
|
|
||||||
return 1;
|
|
||||||
} else if (facing == EnumFacing.EAST) {
|
|
||||||
return 2;
|
|
||||||
} else if (facing == EnumFacing.WEST) {
|
|
||||||
return 3;
|
|
||||||
} else if (facing == EnumFacing.UP) {
|
|
||||||
return 4;
|
|
||||||
} else if (facing == EnumFacing.DOWN) {
|
|
||||||
return 5;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setDefaultFacing(World worldIn, BlockPos pos, IBlockState state) {
|
|
||||||
if (!worldIn.isRemote) {
|
|
||||||
IBlockState state0 = worldIn.getBlockState(pos.north());
|
|
||||||
IBlockState state1 = worldIn.getBlockState(pos.south());
|
|
||||||
IBlockState state2 = worldIn.getBlockState(pos.west());
|
|
||||||
IBlockState state3 = worldIn.getBlockState(pos.east());
|
|
||||||
EnumFacing enumfacing = (EnumFacing) state.getValue(FACING);
|
|
||||||
|
|
||||||
if (enumfacing == EnumFacing.NORTH && state0.isFullBlock() && !state1.isFullBlock()) {
|
|
||||||
enumfacing = EnumFacing.SOUTH;
|
|
||||||
} else if (enumfacing == EnumFacing.SOUTH && state1.isFullBlock() && !state0.isFullBlock()) {
|
|
||||||
enumfacing = EnumFacing.NORTH;
|
|
||||||
} else if (enumfacing == EnumFacing.WEST && state2.isFullBlock() && !state3.isFullBlock()) {
|
|
||||||
enumfacing = EnumFacing.EAST;
|
|
||||||
} else if (enumfacing == EnumFacing.EAST && state3.isFullBlock() && !state2.isFullBlock()) {
|
|
||||||
enumfacing = EnumFacing.WEST;
|
|
||||||
}
|
|
||||||
|
|
||||||
worldIn.setBlockState(pos, state.with(FACING, enumfacing), 2);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Block
|
// BaseTileBlock
|
||||||
@Override
|
|
||||||
protected BlockStateContainer createBlockState() {
|
|
||||||
FACING = DirectionProperty.create("facing", Facings.ALL);
|
|
||||||
return new BlockStateContainer(this, FACING);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) {
|
|
||||||
super.onBlockAdded(worldIn, pos, state);
|
|
||||||
this.setDefaultFacing(worldIn, pos, state);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer,
|
public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer,
|
||||||
ItemStack stack) {
|
ItemStack stack) {
|
||||||
super.onBlockPlacedBy(worldIn, pos, state, placer, stack);
|
super.onBlockPlacedBy(worldIn, pos, state, placer, stack);
|
||||||
EnumFacing facing = placer.getHorizontalFacing().getOpposite();
|
EnumFacing facing = placer.getHorizontalFacing().getOpposite();
|
||||||
if (placer.rotationPitch < -50) {
|
if (placer.rotationPitch < -50) {
|
||||||
|
@ -154,7 +85,15 @@ public abstract class BlockTransformer extends BaseTileBlock {
|
||||||
}
|
}
|
||||||
setFacing(facing, worldIn, pos);
|
setFacing(facing, worldIn, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Block
|
||||||
|
@Override
|
||||||
|
protected void fillStateContainer(StateContainer.Builder<Block, IBlockState> builder) {
|
||||||
|
FACING = DirectionProperty.create("facing", EnumFacing.Plane.HORIZONTAL);
|
||||||
|
builder.add(FACING);
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
@Override
|
@Override
|
||||||
public boolean onBlockActivated(IBlockState state, World worldIn, BlockPos pos, EntityPlayer playerIn, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) {
|
public boolean onBlockActivated(IBlockState state, World worldIn, BlockPos pos, EntityPlayer playerIn, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) {
|
||||||
ItemStack stack = playerIn.getHeldItem(EnumHand.MAIN_HAND);
|
ItemStack stack = playerIn.getHeldItem(EnumHand.MAIN_HAND);
|
||||||
|
@ -174,24 +113,6 @@ public abstract class BlockTransformer extends BaseTileBlock {
|
||||||
return super.onBlockActivated(state, worldIn, pos, playerIn, hand, side, hitX, hitY, hitZ);
|
return super.onBlockActivated(state, worldIn, pos, playerIn, hand, side, hitX, hitY, hitZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean rotateBlock(World world, BlockPos pos, EnumFacing side) {
|
|
||||||
IBlockState state = world.getBlockState(pos);
|
|
||||||
Block block = state.getBlock();
|
|
||||||
if (block instanceof BlockTransformer) {
|
|
||||||
EnumFacing facing = state.getValue(BlockTransformer.FACING);
|
|
||||||
if (facing.getOpposite() == side) {
|
|
||||||
facing = side;
|
|
||||||
} else {
|
|
||||||
facing = side.getOpposite();
|
|
||||||
}
|
|
||||||
world.setBlockState(pos, state.with(BlockTransformer.FACING, facing));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum Facings implements Predicate<EnumFacing>, Iterable<EnumFacing> {
|
public enum Facings implements Predicate<EnumFacing>, Iterable<EnumFacing> {
|
||||||
ALL;
|
ALL;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue