Cleanup enum container implementation

This commit is contained in:
Nicholas Ignoffo 2016-10-18 16:38:56 -07:00
parent 6a4c56293b
commit 1aad7ee531
5 changed files with 32 additions and 12 deletions

View file

@ -98,9 +98,13 @@ public class BlockInversionPillar extends BlockEnumContainer<EnumSubWillType> 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()

View file

@ -237,8 +237,12 @@ public class BlockMimic extends BlockEnumContainer<EnumMimic> 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();
}

View file

@ -109,9 +109,13 @@ public class BlockRitualController extends BlockEnumContainer<EnumRitualControll
}
@Override
public TileEntity createNewTileEntity(World world, int meta)
{
return meta == 0 ? (new TileMasterRitualStone()) : (new TileImperfectRitualStone());
public boolean hasTileEntity(IBlockState state) {
return true;
}
@Override
public TileEntity createTileEntity(World world, IBlockState state) {
return state.getValue(getProperty()) == EnumRitualController.MASTER ? new TileMasterRitualStone() : new TileImperfectRitualStone();
}
// IVariantProvider

View file

@ -1,6 +1,5 @@
package WayofTime.bloodmagic.block.base;
import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.tileentity.TileEntity;
@ -8,13 +7,11 @@ import net.minecraft.util.IStringSerializable;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
public abstract class BlockEnumContainer<E extends Enum<E> & IStringSerializable> extends BlockEnum<E> implements ITileEntityProvider
public abstract class BlockEnumContainer<E extends Enum<E> & IStringSerializable> extends BlockEnum<E>
{
public BlockEnumContainer(Material material, Class<E> enumClass, String propName)
{
super(material, enumClass, propName);
this.isBlockContainer = true;
}
public BlockEnumContainer(Material material, Class<E> enumClass)
@ -22,6 +19,12 @@ public abstract class BlockEnumContainer<E extends Enum<E> & 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)
{

View file

@ -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());
}
}