From 1aad7ee531a58d00c3bdd99e0c48744c99dcf8ef Mon Sep 17 00:00:00 2001 From: Nicholas Ignoffo Date: Tue, 18 Oct 2016 16:38:56 -0700 Subject: [PATCH] Cleanup enum container implementation --- .../bloodmagic/block/BlockInversionPillar.java | 10 +++++++--- .../java/WayofTime/bloodmagic/block/BlockMimic.java | 8 ++++++-- .../bloodmagic/block/BlockRitualController.java | 10 +++++++--- .../bloodmagic/block/base/BlockEnumContainer.java | 11 +++++++---- .../bloodmagic/block/enums/EnumSubWillType.java | 5 +++++ 5 files changed, 32 insertions(+), 12 deletions(-) diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockInversionPillar.java b/src/main/java/WayofTime/bloodmagic/block/BlockInversionPillar.java index 02d061ab..5cd1c7b8 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockInversionPillar.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockInversionPillar.java @@ -98,9 +98,13 @@ public class BlockInversionPillar extends BlockEnumContainer im } @Override - public TileEntity createNewTileEntity(World worldIn, int meta) - { - return new TileInversionPillar(EnumDemonWillType.values()[meta % 5]); + public boolean hasTileEntity(IBlockState state) { + return true; + } + + @Override + public TileEntity createTileEntity(World world, IBlockState state) { + return new TileInversionPillar(state.getValue(getProperty()).getType()); } protected BlockStateContainer createStateContainer() diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockMimic.java b/src/main/java/WayofTime/bloodmagic/block/BlockMimic.java index 51c951b6..9ca83bc2 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockMimic.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockMimic.java @@ -237,8 +237,12 @@ public class BlockMimic extends BlockEnumContainer implements IVarian } @Override - public TileEntity createNewTileEntity(World worldIn, int meta) - { + public boolean hasTileEntity(IBlockState state) { + return true; + } + + @Override + public TileEntity createTileEntity(World world, IBlockState state) { return new TileMimic(); } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockRitualController.java b/src/main/java/WayofTime/bloodmagic/block/BlockRitualController.java index 16311d69..86509cd7 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockRitualController.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockRitualController.java @@ -109,9 +109,13 @@ public class BlockRitualController extends BlockEnumContainer & IStringSerializable> extends BlockEnum implements ITileEntityProvider +public abstract class BlockEnumContainer & IStringSerializable> extends BlockEnum { public BlockEnumContainer(Material material, Class enumClass, String propName) { super(material, enumClass, propName); - - this.isBlockContainer = true; } public BlockEnumContainer(Material material, Class enumClass) @@ -22,6 +19,12 @@ public abstract class BlockEnumContainer & IStringSerializable this(material, enumClass, "type"); } + @Override + public abstract boolean hasTileEntity(IBlockState state); + + @Override + public abstract TileEntity createTileEntity(World world, IBlockState state); + @Override public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { diff --git a/src/main/java/WayofTime/bloodmagic/block/enums/EnumSubWillType.java b/src/main/java/WayofTime/bloodmagic/block/enums/EnumSubWillType.java index 73ebe3a4..f61e5366 100644 --- a/src/main/java/WayofTime/bloodmagic/block/enums/EnumSubWillType.java +++ b/src/main/java/WayofTime/bloodmagic/block/enums/EnumSubWillType.java @@ -2,6 +2,7 @@ package WayofTime.bloodmagic.block.enums; import java.util.Locale; +import WayofTime.bloodmagic.api.soul.EnumDemonWillType; import net.minecraft.util.IStringSerializable; public enum EnumSubWillType implements IStringSerializable @@ -23,4 +24,8 @@ public enum EnumSubWillType implements IStringSerializable { return this.toString(); } + + public EnumDemonWillType getType() { + return EnumDemonWillType.valueOf(name()); + } }