diff --git a/changelog.txt b/changelog.txt index dbed1671..4eb15b4d 100644 --- a/changelog.txt +++ b/changelog.txt @@ -11,6 +11,7 @@ Version 2.1.0-66 - Added the framework for a ritual that grants downgrades (instead of the potion method). - Fixed the recipes for some of the Demon Will blocks - Added the Sigil of Elasticity, the Sigil of the Claw, and the Sigil of Winter's Breath. +- Changed most of the BlockString blocks to a BlockEnum in order to solve a loading issue with schematics. ------------------------------------------------------ Version 2.1.0-65 diff --git a/src/main/java/WayofTime/bloodmagic/api/soul/EnumDemonWillType.java b/src/main/java/WayofTime/bloodmagic/api/soul/EnumDemonWillType.java index 8009d725..752b70bb 100644 --- a/src/main/java/WayofTime/bloodmagic/api/soul/EnumDemonWillType.java +++ b/src/main/java/WayofTime/bloodmagic/api/soul/EnumDemonWillType.java @@ -1,5 +1,7 @@ package WayofTime.bloodmagic.api.soul; +import java.util.Locale; + import lombok.Getter; import net.minecraft.util.IStringSerializable; @@ -18,4 +20,16 @@ public enum EnumDemonWillType implements IStringSerializable { this.name = name; } + + @Override + public String toString() + { + return name().toLowerCase(Locale.ENGLISH); + } + + @Override + public String getName() + { + return this.toString(); + } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockBloodRune.java b/src/main/java/WayofTime/bloodmagic/block/BlockBloodRune.java index ea9dd5e4..aaffd0ed 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockBloodRune.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockBloodRune.java @@ -1,28 +1,28 @@ package WayofTime.bloodmagic.block; -import WayofTime.bloodmagic.BloodMagic; -import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.block.base.BlockString; -import WayofTime.bloodmagic.client.IVariantProvider; -import WayofTime.bloodmagic.util.helper.TextHelper; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import org.apache.commons.lang3.tuple.ImmutablePair; -import org.apache.commons.lang3.tuple.Pair; - import java.util.ArrayList; import java.util.List; -public class BlockBloodRune extends BlockString implements IVariantProvider -{ - public static final String[] names = { "blank", "speed", "efficiency", "sacrifice", "selfsacrifice", "displacement", "capacity", "augcapacity", "orb", "acceleration", "charging" }; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import org.apache.commons.lang3.tuple.ImmutablePair; +import org.apache.commons.lang3.tuple.Pair; + +import WayofTime.bloodmagic.BloodMagic; +import WayofTime.bloodmagic.api.Constants; +import WayofTime.bloodmagic.block.base.BlockEnum; +import WayofTime.bloodmagic.block.enums.EnumBloodRune; +import WayofTime.bloodmagic.client.IVariantProvider; +import WayofTime.bloodmagic.util.helper.TextHelper; + +public class BlockBloodRune extends BlockEnum implements IVariantProvider +{ public BlockBloodRune() { - super(Material.ROCK, names); + super(Material.ROCK, EnumBloodRune.class); setUnlocalizedName(Constants.Mod.MODID + ".rune."); setCreativeTab(BloodMagic.tabBloodMagic); @@ -48,8 +48,8 @@ public class BlockBloodRune extends BlockString implements IVariantProvider public List> getVariants() { List> ret = new ArrayList>(); - for (int i = 0; i < names.length; i++) - ret.add(new ImmutablePair(i, "type=" + names[i])); + for (int i = 0; i < this.getTypes().length; i++) + ret.add(new ImmutablePair(i, "type=" + this.getTypes()[i])); return ret; } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockBloodStoneBrick.java b/src/main/java/WayofTime/bloodmagic/block/BlockBloodStoneBrick.java index 281850a9..2dfd0095 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockBloodStoneBrick.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockBloodStoneBrick.java @@ -1,25 +1,25 @@ package WayofTime.bloodmagic.block; -import WayofTime.bloodmagic.BloodMagic; -import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.block.base.BlockString; -import WayofTime.bloodmagic.client.IVariantProvider; +import java.util.ArrayList; +import java.util.List; + import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; -import java.util.ArrayList; -import java.util.List; +import WayofTime.bloodmagic.BloodMagic; +import WayofTime.bloodmagic.api.Constants; +import WayofTime.bloodmagic.block.base.BlockEnum; +import WayofTime.bloodmagic.block.enums.EnumBrickSize; +import WayofTime.bloodmagic.client.IVariantProvider; -public class BlockBloodStoneBrick extends BlockString implements IVariantProvider +public class BlockBloodStoneBrick extends BlockEnum implements IVariantProvider { - public static final String[] names = { "large", "brick" }; - public BlockBloodStoneBrick() { - super(Material.ROCK, names); + super(Material.ROCK, EnumBrickSize.class); setUnlocalizedName(Constants.Mod.MODID + ".bloodstonebrick."); setCreativeTab(BloodMagic.tabBloodMagic); @@ -33,8 +33,8 @@ public class BlockBloodStoneBrick extends BlockString implements IVariantProvide public List> getVariants() { List> ret = new ArrayList>(); - for (int i = 0; i < names.length; i++) - ret.add(new ImmutablePair(i, "type=" + names[i])); + for (int i = 0; i < this.getTypes().length; i++) + ret.add(new ImmutablePair(i, "type=" + this.getTypes()[i])); return ret; } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockCrystal.java b/src/main/java/WayofTime/bloodmagic/block/BlockCrystal.java index 047295db..0ee11fa4 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockCrystal.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockCrystal.java @@ -1,25 +1,25 @@ package WayofTime.bloodmagic.block; -import WayofTime.bloodmagic.BloodMagic; -import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.block.base.BlockString; -import WayofTime.bloodmagic.client.IVariantProvider; +import java.util.ArrayList; +import java.util.List; + import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; -import java.util.ArrayList; -import java.util.List; +import WayofTime.bloodmagic.BloodMagic; +import WayofTime.bloodmagic.api.Constants; +import WayofTime.bloodmagic.block.base.BlockEnum; +import WayofTime.bloodmagic.block.enums.EnumBrickSize; +import WayofTime.bloodmagic.client.IVariantProvider; -public class BlockCrystal extends BlockString implements IVariantProvider +public class BlockCrystal extends BlockEnum implements IVariantProvider { - public static final String[] names = { "large", "brick" }; - public BlockCrystal() { - super(Material.ROCK, names); + super(Material.ROCK, EnumBrickSize.class); setUnlocalizedName(Constants.Mod.MODID + ".crystal."); setCreativeTab(BloodMagic.tabBloodMagic); @@ -33,8 +33,8 @@ public class BlockCrystal extends BlockString implements IVariantProvider public List> getVariants() { List> ret = new ArrayList>(); - for (int i = 0; i < names.length; i++) - ret.add(new ImmutablePair(i, "type=" + names[i])); + for (int i = 0; i < this.getTypes().length; i++) + ret.add(new ImmutablePair(i, "type=" + this.getTypes()[i])); return ret; } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockDemonBase.java b/src/main/java/WayofTime/bloodmagic/block/BlockDemonBase.java index a3ca7696..ab665f5b 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockDemonBase.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockDemonBase.java @@ -5,23 +5,21 @@ import java.util.List; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; +import net.minecraft.util.IStringSerializable; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.block.base.BlockString; +import WayofTime.bloodmagic.block.base.BlockEnum; import WayofTime.bloodmagic.client.IVariantProvider; -public class BlockDemonBase extends BlockString implements IVariantProvider +public class BlockDemonBase & IStringSerializable> extends BlockEnum implements IVariantProvider { - public final String[] names; - - public BlockDemonBase(String baseName, String[] names) + public BlockDemonBase(String baseName, Class enumClass) { - super(Material.ROCK, names); - this.names = names; + super(Material.ROCK, enumClass); setUnlocalizedName(Constants.Mod.MODID + "." + baseName + "."); setCreativeTab(BloodMagic.tabBloodMagic); @@ -35,8 +33,8 @@ public class BlockDemonBase extends BlockString implements IVariantProvider public List> getVariants() { List> ret = new ArrayList>(); - for (int i = 0; i < names.length; i++) - ret.add(new ImmutablePair(i, "type=" + names[i])); + for (int i = 0; i < this.getTypes().length; i++) + ret.add(new ImmutablePair(i, "type=" + this.getTypes()[i])); return ret; } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockDemonLight.java b/src/main/java/WayofTime/bloodmagic/block/BlockDemonLight.java index 83ec5fa9..71bc8c46 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockDemonLight.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockDemonLight.java @@ -1,25 +1,25 @@ package WayofTime.bloodmagic.block; -import WayofTime.bloodmagic.BloodMagic; -import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.block.base.BlockString; -import WayofTime.bloodmagic.client.IVariantProvider; +import java.util.ArrayList; +import java.util.List; + import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; -import java.util.ArrayList; -import java.util.List; +import WayofTime.bloodmagic.BloodMagic; +import WayofTime.bloodmagic.api.Constants; +import WayofTime.bloodmagic.block.base.BlockEnum; +import WayofTime.bloodmagic.block.enums.EnumSubWillType; +import WayofTime.bloodmagic.client.IVariantProvider; -public class BlockDemonLight extends BlockString implements IVariantProvider +public class BlockDemonLight extends BlockEnum implements IVariantProvider { - public static final String[] names = { "raw", "corrosive", "destructive", "vengeful", "steadfast" }; - public BlockDemonLight() { - super(Material.ROCK, names); + super(Material.ROCK, EnumSubWillType.class); setUnlocalizedName(Constants.Mod.MODID + ".demonlight."); setCreativeTab(BloodMagic.tabBloodMagic); @@ -34,8 +34,8 @@ public class BlockDemonLight extends BlockString implements IVariantProvider public List> getVariants() { List> ret = new ArrayList>(); - for (int i = 0; i < names.length; i++) - ret.add(new ImmutablePair(i, "type=" + names[i])); + for (int i = 0; i < this.getTypes().length; i++) + ret.add(new ImmutablePair(i, "type=" + this.getTypes()[i])); return ret; } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockDemonPillarBase.java b/src/main/java/WayofTime/bloodmagic/block/BlockDemonPillarBase.java index c87a2244..8fd5c2a0 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockDemonPillarBase.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockDemonPillarBase.java @@ -6,23 +6,21 @@ import java.util.List; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.util.EnumFacing; +import net.minecraft.util.IStringSerializable; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.block.base.BlockStringPillar; +import WayofTime.bloodmagic.block.base.BlockEnumPillar; import WayofTime.bloodmagic.client.IVariantProvider; -public class BlockDemonPillarBase extends BlockStringPillar implements IVariantProvider +public class BlockDemonPillarBase & IStringSerializable> extends BlockEnumPillar implements IVariantProvider { - public final String[] names; - - public BlockDemonPillarBase(String baseName, Material materialIn, String[] names) + public BlockDemonPillarBase(String baseName, Material materialIn, Class enumClass) { - super(materialIn, names); - this.names = names; + super(materialIn, enumClass); setUnlocalizedName(Constants.Mod.MODID + "." + baseName + "."); setCreativeTab(BloodMagic.tabBloodMagic); @@ -42,9 +40,9 @@ public class BlockDemonPillarBase extends BlockStringPillar implements IVariantP for (int i = 0; i < 3; i++) { - for (int j = 0; j < names.length; j++) + for (int j = 0; j < this.getTypes().length; j++) { - ret.add(new ImmutablePair(i * 5 + j, "axis=" + axis[i] + ",type=" + names[j])); + ret.add(new ImmutablePair(i * 5 + j, "axis=" + axis[i] + ",type=" + this.getTypes()[j])); } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockDemonPillarCapBase.java b/src/main/java/WayofTime/bloodmagic/block/BlockDemonPillarCapBase.java index 40f579c0..b2729cfa 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockDemonPillarCapBase.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockDemonPillarCapBase.java @@ -6,23 +6,21 @@ import java.util.List; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.util.EnumFacing; +import net.minecraft.util.IStringSerializable; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.block.base.BlockStringPillarCap; +import WayofTime.bloodmagic.block.base.BlockEnumPillarCap; import WayofTime.bloodmagic.client.IVariantProvider; -public class BlockDemonPillarCapBase extends BlockStringPillarCap implements IVariantProvider +public class BlockDemonPillarCapBase & IStringSerializable> extends BlockEnumPillarCap implements IVariantProvider { - public final String[] names; - - public BlockDemonPillarCapBase(String baseName, Material materialIn, String[] names) + public BlockDemonPillarCapBase(String baseName, Material materialIn, Class enumClass) { - super(materialIn, names); - this.names = names; + super(materialIn, enumClass); setUnlocalizedName(Constants.Mod.MODID + "." + baseName + "."); setCreativeTab(BloodMagic.tabBloodMagic); @@ -41,9 +39,9 @@ public class BlockDemonPillarCapBase extends BlockStringPillarCap implements IVa for (int i = 0; i < EnumFacing.values().length; i++) { - for (int j = 0; j < names.length; j++) + for (int j = 0; j < this.getTypes().length; j++) { - ret.add(new ImmutablePair(i * 2 + j, "facing=" + EnumFacing.values()[i] + ",type=" + names[j])); + ret.add(new ImmutablePair(i * 2 + j, "facing=" + EnumFacing.values()[i] + ",type=" + this.getTypes()[j])); } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockDemonStairsBase.java b/src/main/java/WayofTime/bloodmagic/block/BlockDemonStairsBase.java index e1d78380..084c90ed 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockDemonStairsBase.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockDemonStairsBase.java @@ -5,23 +5,21 @@ import java.util.List; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; +import net.minecraft.util.IStringSerializable; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.block.base.BlockStringStairs; +import WayofTime.bloodmagic.block.base.BlockEnumStairs; import WayofTime.bloodmagic.client.IVariantProvider; -public class BlockDemonStairsBase extends BlockStringStairs implements IVariantProvider +public class BlockDemonStairsBase & IStringSerializable> extends BlockEnumStairs implements IVariantProvider { - public final String[] names; - - public BlockDemonStairsBase(String baseName, Material materialIn, String[] names) + public BlockDemonStairsBase(String baseName, Material materialIn, Class enumClass) { - super(materialIn, names); - this.names = names; + super(materialIn, enumClass); setUnlocalizedName(Constants.Mod.MODID + "." + baseName + "."); setCreativeTab(BloodMagic.tabBloodMagic); @@ -36,9 +34,9 @@ public class BlockDemonStairsBase extends BlockStringStairs implements IVariantP { List> ret = new ArrayList>(); - for (int i = 0; i < names.length; i++) + for (int i = 0; i < this.getTypes().length; i++) { - ret.add(new ImmutablePair(i, "facing=south,half=bottom,shape=straight,type=" + names[i])); + ret.add(new ImmutablePair(i, "facing=south,half=bottom,shape=straight,type=" + this.getTypes()[i])); } return ret; diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockDemonWallBase.java b/src/main/java/WayofTime/bloodmagic/block/BlockDemonWallBase.java index 96a95a20..08fd0e72 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockDemonWallBase.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockDemonWallBase.java @@ -5,22 +5,20 @@ import java.util.List; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; +import net.minecraft.util.IStringSerializable; import org.apache.commons.lang3.tuple.Pair; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.block.base.BlockStringWall; +import WayofTime.bloodmagic.block.base.BlockEnumWall; import WayofTime.bloodmagic.client.IVariantProvider; -public class BlockDemonWallBase extends BlockStringWall implements IVariantProvider +public class BlockDemonWallBase & IStringSerializable> extends BlockEnumWall implements IVariantProvider { - public final String[] names; - - public BlockDemonWallBase(String baseName, Material materialIn, String[] names) + public BlockDemonWallBase(String baseName, Material materialIn, Class enumClass) { - super(materialIn, names); - this.names = names; + super(materialIn, enumClass); setUnlocalizedName(Constants.Mod.MODID + "." + baseName + "."); setCreativeTab(BloodMagic.tabBloodMagic); @@ -35,8 +33,8 @@ public class BlockDemonWallBase extends BlockStringWall implements IVariantProvi { List> ret = new ArrayList>(); - for (int i = 0; i < names.length; i++) - ret.add(Pair.of(i, "east=true,north=false,south=false,type=" + names[i] + ",up=true,west=true")); + for (int i = 0; i < this.getTypes().length; i++) + ret.add(Pair.of(i, "east=true,north=false,south=false,type=" + this.getTypes()[i] + ",up=true,west=true")); return ret; } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockInversionPillar.java b/src/main/java/WayofTime/bloodmagic/block/BlockInversionPillar.java index e0c5c807..02d061ab 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockInversionPillar.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockInversionPillar.java @@ -5,7 +5,6 @@ import java.util.List; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.tileentity.TileEntity; @@ -13,8 +12,6 @@ import net.minecraft.util.EnumBlockRenderType; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.common.property.ExtendedBlockState; -import net.minecraftforge.common.property.IUnlistedProperty; import net.minecraftforge.common.property.Properties; import org.apache.commons.lang3.tuple.ImmutablePair; @@ -23,17 +20,16 @@ import org.apache.commons.lang3.tuple.Pair; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.soul.EnumDemonWillType; -import WayofTime.bloodmagic.block.base.BlockStringContainer; +import WayofTime.bloodmagic.block.base.BlockEnumContainer; +import WayofTime.bloodmagic.block.enums.EnumSubWillType; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.tile.TileInversionPillar; -public class BlockInversionPillar extends BlockStringContainer implements IVariantProvider +public class BlockInversionPillar extends BlockEnumContainer implements IVariantProvider { - public static final String[] names = { "raw", "corrosive", "destructive", "vengeful", "steadfast" }; - public BlockInversionPillar() { - super(Material.ROCK, names); + super(Material.ROCK, EnumSubWillType.class); setUnlocalizedName(Constants.Mod.MODID + ".inversionpillar."); setCreativeTab(BloodMagic.tabBloodMagic); @@ -96,8 +92,8 @@ public class BlockInversionPillar extends BlockStringContainer implements IVaria public List> getVariants() { List> ret = new ArrayList>(); - for (int i = 0; i < names.length; i++) - ret.add(new ImmutablePair(i, "static=false,type=" + names[i])); + for (int i = 0; i < this.getTypes().length; i++) + ret.add(new ImmutablePair(i, "type=" + this.getTypes()[i])); return ret; } @@ -107,7 +103,8 @@ public class BlockInversionPillar extends BlockStringContainer implements IVaria return new TileInversionPillar(EnumDemonWillType.values()[meta % 5]); } - protected BlockStateContainer createStateContainer() { + protected BlockStateContainer createStateContainer() + { return new BlockStateContainer.Builder(this).add(getProperty(), Properties.StaticProperty).add(Properties.AnimationProperty).build(); } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockInversionPillarEnd.java b/src/main/java/WayofTime/bloodmagic/block/BlockInversionPillarEnd.java index b91723f6..5df6bfc9 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockInversionPillarEnd.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockInversionPillarEnd.java @@ -15,16 +15,15 @@ import org.apache.commons.lang3.tuple.Pair; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.block.base.BlockString; +import WayofTime.bloodmagic.block.base.BlockEnum; +import WayofTime.bloodmagic.block.enums.EnumInversionCap; import WayofTime.bloodmagic.client.IVariantProvider; -public class BlockInversionPillarEnd extends BlockString implements IVariantProvider +public class BlockInversionPillarEnd extends BlockEnum implements IVariantProvider { - public static final String[] names = { "raw_bottom", "raw_top", "corrosive_bottom", "corrosive_top", "destructive_bottom", "destructive_top", "vengeful_bottom", "vengeful_top", "steadfast_bottom", "steadfast_top" }; - public BlockInversionPillarEnd() { - super(Material.ROCK, names); + super(Material.ROCK, EnumInversionCap.class); setUnlocalizedName(Constants.Mod.MODID + ".inversionpillarend."); setCreativeTab(BloodMagic.tabBloodMagic); @@ -68,8 +67,8 @@ public class BlockInversionPillarEnd extends BlockString implements IVariantProv public List> getVariants() { List> ret = new ArrayList>(); - for (int i = 0; i < names.length; i++) - ret.add(new ImmutablePair(i, "type=" + names[i])); + for (int i = 0; i < this.getTypes().length; i++) + ret.add(new ImmutablePair(i, "type=" + this.getTypes()[i])); return ret; } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockMimic.java b/src/main/java/WayofTime/bloodmagic/block/BlockMimic.java index 49895d7a..51c951b6 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockMimic.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockMimic.java @@ -5,9 +5,6 @@ import java.util.List; import javax.annotation.Nullable; -import WayofTime.bloodmagic.api.altar.EnumAltarComponent; -import WayofTime.bloodmagic.api.altar.IAltarComponent; -import WayofTime.bloodmagic.util.Utils; import net.minecraft.block.Block; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; @@ -32,19 +29,22 @@ import org.apache.commons.lang3.tuple.Pair; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.block.base.BlockStringContainer; +import WayofTime.bloodmagic.api.altar.EnumAltarComponent; +import WayofTime.bloodmagic.api.altar.IAltarComponent; +import WayofTime.bloodmagic.block.base.BlockEnumContainer; +import WayofTime.bloodmagic.block.enums.EnumMimic; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.registry.ModBlocks; import WayofTime.bloodmagic.tile.TileMimic; +import WayofTime.bloodmagic.util.Utils; -public class BlockMimic extends BlockStringContainer implements IVariantProvider, IAltarComponent +public class BlockMimic extends BlockEnumContainer implements IVariantProvider, IAltarComponent { public static final int sentientMimicMeta = 4; - public static final String[] names = { "nohitbox", "solidopaque", "solidclear", "solidlight", "sentient" }; public BlockMimic() { - super(Material.ROCK, names); + super(Material.ROCK, EnumMimic.class); setUnlocalizedName(Constants.Mod.MODID + ".mimic."); setCreativeTab(BloodMagic.tabBloodMagic); @@ -231,8 +231,8 @@ public class BlockMimic extends BlockStringContainer implements IVariantProvider public List> getVariants() { List> ret = new ArrayList>(); - for (int i = 0; i < names.length; i++) - ret.add(new ImmutablePair(i, "type=" + names[i])); + for (int i = 0; i < this.getTypes().length; i++) + ret.add(new ImmutablePair(i, "type=" + this.getTypes()[i])); return ret; } @@ -246,7 +246,8 @@ public class BlockMimic extends BlockStringContainer implements IVariantProvider @Nullable @Override - public EnumAltarComponent getType(World world, IBlockState state, BlockPos pos) { + public EnumAltarComponent getType(World world, IBlockState state, BlockPos pos) + { TileEntity tile = world.getTileEntity(pos); if (tile instanceof TileMimic) { @@ -258,10 +259,11 @@ public class BlockMimic extends BlockStringContainer implements IVariantProvider if (block instanceof IAltarComponent) { return ((IAltarComponent) block).getType(world, block.getStateFromMeta(mimic.metaOfReplacedBlock), pos); - } else { + } else + { for (EnumAltarComponent altarComponent : EnumAltarComponent.values()) - if (block == Utils.getBlockForComponent(altarComponent)) - return altarComponent; + if (block == Utils.getBlockForComponent(altarComponent)) + return altarComponent; } } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockPath.java b/src/main/java/WayofTime/bloodmagic/block/BlockPath.java index 6a7ff346..1bfaaa76 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockPath.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockPath.java @@ -3,7 +3,6 @@ package WayofTime.bloodmagic.block; import java.util.ArrayList; import java.util.List; -import WayofTime.bloodmagic.util.helper.TextHelper; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -18,16 +17,17 @@ import org.apache.commons.lang3.tuple.Pair; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.incense.IIncensePath; -import WayofTime.bloodmagic.block.base.BlockString; +import WayofTime.bloodmagic.block.base.BlockEnum; +import WayofTime.bloodmagic.block.enums.EnumPath; import WayofTime.bloodmagic.client.IVariantProvider; +import WayofTime.bloodmagic.util.helper.TextHelper; -public class BlockPath extends BlockString implements IIncensePath, IVariantProvider +public class BlockPath extends BlockEnum implements IIncensePath, IVariantProvider { - public static final String[] names = { "wood", "woodtile", "stone", "stonetile", "wornstone", "wornstonetile", "obsidian", "obsidiantile" }; public BlockPath() { - super(Material.ROCK, names); + super(Material.ROCK, EnumPath.class); setUnlocalizedName(Constants.Mod.MODID + ".path."); setCreativeTab(BloodMagic.tabBloodMagic); @@ -78,8 +78,8 @@ public class BlockPath extends BlockString implements IIncensePath, IVariantProv public List> getVariants() { List> ret = new ArrayList>(); - for (int i = 0; i < names.length; i++) - ret.add(new ImmutablePair(i, "type=" + names[i])); + for (int i = 0; i < this.getTypes().length; i++) + ret.add(new ImmutablePair(i, "type=" + this.getTypes()[i])); return ret; } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockRitualController.java b/src/main/java/WayofTime/bloodmagic/block/BlockRitualController.java index dc0b9f6a..16311d69 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockRitualController.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockRitualController.java @@ -3,8 +3,8 @@ package WayofTime.bloodmagic.block; import java.util.ArrayList; import java.util.List; -import WayofTime.bloodmagic.api.ritual.imperfect.ImperfectRitual; -import amerifrance.guideapi.api.IGuideLinked; +import javax.annotation.Nullable; + import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -28,24 +28,23 @@ import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.registry.ImperfectRitualRegistry; import WayofTime.bloodmagic.api.registry.RitualRegistry; import WayofTime.bloodmagic.api.ritual.Ritual; +import WayofTime.bloodmagic.api.ritual.imperfect.ImperfectRitual; import WayofTime.bloodmagic.api.util.helper.RitualHelper; -import WayofTime.bloodmagic.block.base.BlockStringContainer; +import WayofTime.bloodmagic.block.base.BlockEnumContainer; +import WayofTime.bloodmagic.block.enums.EnumRitualController; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.registry.ModItems; import WayofTime.bloodmagic.tile.TileImperfectRitualStone; import WayofTime.bloodmagic.tile.TileMasterRitualStone; import WayofTime.bloodmagic.util.ChatUtil; - -import javax.annotation.Nullable; +import amerifrance.guideapi.api.IGuideLinked; @Optional.Interface(modid = "guideapi", iface = "amerifrance.guideapi.api.IGuideLinked") -public class BlockRitualController extends BlockStringContainer implements IVariantProvider, IGuideLinked +public class BlockRitualController extends BlockEnumContainer implements IVariantProvider, IGuideLinked { - public static final String[] names = { "master", "imperfect" }; - public BlockRitualController() { - super(Material.ROCK, names); + super(Material.ROCK, EnumRitualController.class); setUnlocalizedName(Constants.Mod.MODID + ".stone.ritual."); setCreativeTab(BloodMagic.tabBloodMagic); @@ -121,8 +120,8 @@ public class BlockRitualController extends BlockStringContainer implements IVari public List> getVariants() { List> ret = new ArrayList>(); - for (int i = 0; i < names.length; i++) - ret.add(new ImmutablePair(i, "type=" + names[i])); + for (int i = 0; i < this.getTypes().length; i++) + ret.add(new ImmutablePair(i, "type=" + this.getTypes()[i])); return ret; } @@ -133,14 +132,14 @@ public class BlockRitualController extends BlockStringContainer implements IVari public ResourceLocation getLinkedEntry(World world, BlockPos pos, EntityPlayer player, ItemStack stack) { IBlockState state = world.getBlockState(pos); - if (state.getValue(getProperty()).equals(names[0])) + if (state.getValue(getProperty()).equals(EnumRitualController.MASTER)) { TileMasterRitualStone mrs = (TileMasterRitualStone) world.getTileEntity(pos); if (mrs == null || mrs.getCurrentRitual() == null) return null; else return new ResourceLocation("bloodmagic", "ritual_" + mrs.getCurrentRitual().getName()); - } else if (state.getValue(getProperty()).equals(names[1])) + } else if (state.getValue(getProperty()).equals(EnumRitualController.IMPERFECT)) { ImperfectRitual imperfectRitual = ImperfectRitualRegistry.getRitualForBlock(BlockStack.getStackFromPos(world, pos.up())); if (imperfectRitual != null) diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockRitualStone.java b/src/main/java/WayofTime/bloodmagic/block/BlockRitualStone.java index 07326995..8afa09ef 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockRitualStone.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockRitualStone.java @@ -3,7 +3,6 @@ package WayofTime.bloodmagic.block; import java.util.ArrayList; import java.util.List; -import WayofTime.bloodmagic.util.helper.TextHelper; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -19,17 +18,16 @@ import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.ritual.EnumRuneType; import WayofTime.bloodmagic.api.ritual.IRitualStone; -import WayofTime.bloodmagic.block.base.BlockString; +import WayofTime.bloodmagic.block.base.BlockEnum; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.registry.ModBlocks; +import WayofTime.bloodmagic.util.helper.TextHelper; -public class BlockRitualStone extends BlockString implements IRitualStone, IVariantProvider +public class BlockRitualStone extends BlockEnum implements IRitualStone, IVariantProvider { - public static final String[] names = { "blank", "water", "fire", "earth", "air", "dusk", "dawn" }; - public BlockRitualStone() { - super(Material.IRON, names); + super(Material.IRON, EnumRuneType.class); setUnlocalizedName(Constants.Mod.MODID + ".ritualStone."); setCreativeTab(BloodMagic.tabBloodMagic); @@ -61,7 +59,7 @@ public class BlockRitualStone extends BlockString implements IRitualStone, IVari @Override public boolean isRuneType(World world, BlockPos pos, EnumRuneType runeType) { - return runeType.toString().equals(names[getMetaFromState(world.getBlockState(pos))]); + return runeType == this.getTypes()[getMetaFromState(world.getBlockState(pos))]; } @Override @@ -76,8 +74,8 @@ public class BlockRitualStone extends BlockString implements IRitualStone, IVari public List> getVariants() { List> ret = new ArrayList>(); - for (int i = 0; i < names.length; i++) - ret.add(new ImmutablePair(i, "type=" + names[i])); + for (int i = 0; i < this.getTypes().length; i++) + ret.add(new ImmutablePair(i, "type=" + this.getTypes()[i])); return ret; } } diff --git a/src/main/java/WayofTime/bloodmagic/block/base/BlockEnum.java b/src/main/java/WayofTime/bloodmagic/block/base/BlockEnum.java index 182f6f4f..ce7f0e65 100644 --- a/src/main/java/WayofTime/bloodmagic/block/base/BlockEnum.java +++ b/src/main/java/WayofTime/bloodmagic/block/base/BlockEnum.java @@ -16,13 +16,14 @@ import net.minecraftforge.fml.relauncher.SideOnly; import java.util.List; @Getter -public class BlockEnum & IStringSerializable> extends Block { - +public class BlockEnum & IStringSerializable> extends Block +{ private final E[] types; private final PropertyEnum property; private final BlockStateContainer realStateContainer; - public BlockEnum(Material material, Class enumClass, String propName) { + public BlockEnum(Material material, Class enumClass, String propName) + { super(material); this.types = enumClass.getEnumConstants(); @@ -31,43 +32,51 @@ public class BlockEnum & IStringSerializable> extends Block { setDefaultState(getBlockState().getBaseState()); } - public BlockEnum(Material material, Class enumClass) { + public BlockEnum(Material material, Class enumClass) + { this(material, enumClass, "type"); } @Override - protected final BlockStateContainer createBlockState() { + protected final BlockStateContainer createBlockState() + { return new BlockStateContainer.Builder(this).build(); // Blank to avoid crashes } @Override - public final BlockStateContainer getBlockState() { + public final BlockStateContainer getBlockState() + { return realStateContainer; } @Override - public IBlockState getStateFromMeta(int meta) { + public IBlockState getStateFromMeta(int meta) + { return getDefaultState().withProperty(property, types[meta]); } @Override - public int getMetaFromState(IBlockState state) { + public int getMetaFromState(IBlockState state) + { return state.getValue(property).ordinal(); } @Override - public int damageDropped(IBlockState state) { + public int damageDropped(IBlockState state) + { return getMetaFromState(state); } @SideOnly(Side.CLIENT) @Override - public void getSubBlocks(Item item, CreativeTabs tab, List subBlocks) { + public void getSubBlocks(Item item, CreativeTabs tab, List subBlocks) + { for (E type : types) subBlocks.add(new ItemStack(item, 1, type.ordinal())); } - protected BlockStateContainer createStateContainer() { + protected BlockStateContainer createStateContainer() + { return new BlockStateContainer.Builder(this).add(property).build(); } } diff --git a/src/main/java/WayofTime/bloodmagic/block/base/BlockEnumContainer.java b/src/main/java/WayofTime/bloodmagic/block/base/BlockEnumContainer.java new file mode 100644 index 00000000..05489e8d --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/block/base/BlockEnumContainer.java @@ -0,0 +1,39 @@ +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; +import net.minecraft.util.IStringSerializable; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +public abstract class BlockEnumContainer & IStringSerializable> extends BlockEnum implements ITileEntityProvider +{ + public BlockEnumContainer(Material material, Class enumClass, String propName) + { + super(material, enumClass, propName); + + this.isBlockContainer = true; + } + + public BlockEnumContainer(Material material, Class enumClass) + { + this(material, enumClass, "type"); + } + + @Override + public void breakBlock(World worldIn, BlockPos pos, IBlockState state) + { + super.breakBlock(worldIn, pos, state); + worldIn.removeTileEntity(pos); + } + + @Override + public boolean eventReceived(IBlockState state, World worldIn, BlockPos pos, int eventID, int eventParam) + { + super.eventReceived(state, worldIn, pos, eventID, eventParam); + TileEntity tileentity = worldIn.getTileEntity(pos); + return tileentity != null && tileentity.receiveClientEvent(eventID, eventParam); + } +} diff --git a/src/main/java/WayofTime/bloodmagic/block/base/BlockStringPillar.java b/src/main/java/WayofTime/bloodmagic/block/base/BlockEnumPillar.java similarity index 89% rename from src/main/java/WayofTime/bloodmagic/block/base/BlockStringPillar.java rename to src/main/java/WayofTime/bloodmagic/block/base/BlockEnumPillar.java index 396a8b40..70772f8a 100644 --- a/src/main/java/WayofTime/bloodmagic/block/base/BlockStringPillar.java +++ b/src/main/java/WayofTime/bloodmagic/block/base/BlockEnumPillar.java @@ -9,26 +9,29 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumFacing; +import net.minecraft.util.IStringSerializable; import net.minecraft.util.Rotation; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.RayTraceResult; import net.minecraft.world.World; + import org.apache.commons.lang3.ArrayUtils; -public class BlockStringPillar extends BlockString +public class BlockEnumPillar & IStringSerializable> extends BlockEnum { - public BlockStringPillar(Material material, String[] values, String propName) + public BlockEnumPillar(Material material, Class enumClass, String propName) { - super(material, values, propName); + super(material, enumClass, propName); } - public BlockStringPillar(Material material, String[] values) + public BlockEnumPillar(Material material, Class enumClass) { - this(material, values, "type"); + this(material, enumClass, "type"); } @Override - protected BlockStateContainer createStateContainer() { + protected BlockStateContainer createStateContainer() + { return new BlockStateContainer.Builder(this).add(getProperty(), BlockRotatedPillar.AXIS).build(); } diff --git a/src/main/java/WayofTime/bloodmagic/block/base/BlockStringPillarCap.java b/src/main/java/WayofTime/bloodmagic/block/base/BlockEnumPillarCap.java similarity index 84% rename from src/main/java/WayofTime/bloodmagic/block/base/BlockStringPillarCap.java rename to src/main/java/WayofTime/bloodmagic/block/base/BlockEnumPillarCap.java index 4c96a000..e4f3df8d 100644 --- a/src/main/java/WayofTime/bloodmagic/block/base/BlockStringPillarCap.java +++ b/src/main/java/WayofTime/bloodmagic/block/base/BlockEnumPillarCap.java @@ -8,29 +8,32 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumFacing; +import net.minecraft.util.IStringSerializable; import net.minecraft.util.Mirror; import net.minecraft.util.Rotation; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.RayTraceResult; import net.minecraft.world.World; + import org.apache.commons.lang3.ArrayUtils; -public class BlockStringPillarCap extends BlockString +public class BlockEnumPillarCap & IStringSerializable> extends BlockEnum { public static final PropertyDirection FACING = PropertyDirection.create("facing"); - public BlockStringPillarCap(Material material, String[] values, String propName) + public BlockEnumPillarCap(Material material, Class enumClass, String propName) { - super(material, values, propName); + super(material, enumClass, propName); } - public BlockStringPillarCap(Material material, String[] values) + public BlockEnumPillarCap(Material material, Class enumClass) { - this(material, values, "type"); + this(material, enumClass, "type"); } @Override - protected BlockStateContainer createStateContainer() { + protected BlockStateContainer createStateContainer() + { return new BlockStateContainer.Builder(this).add(getProperty(), FACING).build(); } diff --git a/src/main/java/WayofTime/bloodmagic/block/base/BlockStringStairs.java b/src/main/java/WayofTime/bloodmagic/block/base/BlockEnumStairs.java similarity index 96% rename from src/main/java/WayofTime/bloodmagic/block/base/BlockStringStairs.java rename to src/main/java/WayofTime/bloodmagic/block/base/BlockEnumStairs.java index 5cf8687e..a1d62f6a 100644 --- a/src/main/java/WayofTime/bloodmagic/block/base/BlockStringStairs.java +++ b/src/main/java/WayofTime/bloodmagic/block/base/BlockEnumStairs.java @@ -4,7 +4,6 @@ import java.util.List; import javax.annotation.Nullable; -import WayofTime.bloodmagic.BloodMagic; import net.minecraft.block.BlockHorizontal; import net.minecraft.block.BlockStairs; import net.minecraft.block.BlockStairs.EnumHalf; @@ -18,6 +17,7 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumFacing; +import net.minecraft.util.IStringSerializable; import net.minecraft.util.Mirror; import net.minecraft.util.Rotation; import net.minecraft.util.math.AxisAlignedBB; @@ -27,10 +27,13 @@ import net.minecraft.util.math.Vec3d; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import com.google.common.collect.Lists; import org.apache.commons.lang3.ArrayUtils; -public class BlockStringStairs extends BlockString +import WayofTime.bloodmagic.BloodMagic; + +import com.google.common.collect.Lists; + +public class BlockEnumStairs & IStringSerializable> extends BlockEnum { public static final PropertyDirection FACING = BlockHorizontal.FACING; @@ -53,18 +56,19 @@ public class BlockStringStairs extends BlockString protected static final AxisAlignedBB AABB_OCT_BOT_SW = new AxisAlignedBB(0.0D, 0.0D, 0.5D, 0.5D, 0.5D, 1.0D); protected static final AxisAlignedBB AABB_OCT_BOT_SE = new AxisAlignedBB(0.5D, 0.0D, 0.5D, 1.0D, 0.5D, 1.0D); - public BlockStringStairs(Material material, String[] values, String propName) + public BlockEnumStairs(Material material, Class enumClass, String propName) { - super(material, values, propName); + super(material, enumClass, propName); } - public BlockStringStairs(Material material, String[] values) + public BlockEnumStairs(Material material, Class enumClass) { - this(material, values, "type"); + this(material, enumClass, "type"); } @Override - protected BlockStateContainer createStateContainer() { + protected BlockStateContainer createStateContainer() + { return new BlockStateContainer.Builder(this).add(getProperty(), FACING, BlockStairs.HALF, BlockStairs.SHAPE).build(); } @@ -282,7 +286,7 @@ public class BlockStringStairs extends BlockString public static boolean isBlockStairs(IBlockState state) { - return state.getBlock() instanceof BlockStairs || state.getBlock() instanceof BlockStringStairs; + return state.getBlock() instanceof BlockStairs || state.getBlock() instanceof BlockEnumStairs; } @Override diff --git a/src/main/java/WayofTime/bloodmagic/block/base/BlockStringWall.java b/src/main/java/WayofTime/bloodmagic/block/base/BlockEnumWall.java similarity index 92% rename from src/main/java/WayofTime/bloodmagic/block/base/BlockStringWall.java rename to src/main/java/WayofTime/bloodmagic/block/base/BlockEnumWall.java index aa798d5e..a4a06261 100644 --- a/src/main/java/WayofTime/bloodmagic/block/base/BlockStringWall.java +++ b/src/main/java/WayofTime/bloodmagic/block/base/BlockEnumWall.java @@ -3,23 +3,21 @@ package WayofTime.bloodmagic.block.base; import net.minecraft.block.Block; import net.minecraft.block.BlockFenceGate; import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumFacing; +import net.minecraft.util.IStringSerializable; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.common.property.ExtendedBlockState; -import net.minecraftforge.common.property.IUnlistedProperty; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -public class BlockStringWall extends BlockString +public class BlockEnumWall & IStringSerializable> extends BlockEnum { public static final PropertyBool UP = PropertyBool.create("up"); public static final PropertyBool NORTH = PropertyBool.create("north"); @@ -32,18 +30,19 @@ public class BlockStringWall extends BlockString AABB_BY_INDEX[15].setMaxY(1.5D) }; // Most of this is copied from BlockWall - if there is an issue when porting, look there first. - public BlockStringWall(Material material, String[] values, String propName) + public BlockEnumWall(Material material, Class enumClass, String propName) { - super(material, values, propName); + super(material, enumClass, propName); } - public BlockStringWall(Material material, String[] values) + public BlockEnumWall(Material material, Class enumClass) { - this(material, values, "type"); + this(material, enumClass, "type"); } @Override - protected BlockStateContainer createStateContainer() { + protected BlockStateContainer createStateContainer() + { return new BlockStateContainer.Builder(this).add(getProperty(), UP, NORTH, EAST, SOUTH, WEST).build(); } diff --git a/src/main/java/WayofTime/bloodmagic/block/base/BlockString.java b/src/main/java/WayofTime/bloodmagic/block/base/BlockString.java index d2b9b65c..ff41d2b1 100644 --- a/src/main/java/WayofTime/bloodmagic/block/base/BlockString.java +++ b/src/main/java/WayofTime/bloodmagic/block/base/BlockString.java @@ -48,38 +48,48 @@ public class BlockString extends Block } @Override - protected final BlockStateContainer createBlockState() { + protected final BlockStateContainer createBlockState() + { return new BlockStateContainer.Builder(this).build(); // Blank to avoid crashes } @Override - public final BlockStateContainer getBlockState() { + public final BlockStateContainer getBlockState() + { return realStateContainer; } @Override - public IBlockState getStateFromMeta(int meta) { + public IBlockState getStateFromMeta(int meta) + { return getDefaultState().withProperty(property, types[meta]); } @Override - public int getMetaFromState(IBlockState state) { + public int getMetaFromState(IBlockState state) + { return ArrayUtils.indexOf(types, state.getValue(property)); } @Override - public int damageDropped(IBlockState state) { + public int damageDropped(IBlockState state) + { return getMetaFromState(state); } @SideOnly(Side.CLIENT) @Override - public void getSubBlocks(Item item, CreativeTabs tab, List subBlocks) { + public void getSubBlocks(Item item, CreativeTabs tab, List subBlocks) + { for (int i = 0; i < maxMeta; i++) subBlocks.add(new ItemStack(item, 1, i)); } - protected BlockStateContainer createStateContainer() { - return new BlockStateContainer.Builder(this).add(property).build(); + protected BlockStateContainer createStateContainer() + { + System.out.println(""); + BlockStateContainer ctn = new BlockStateContainer.Builder(this).add(property).build(); + System.out.println("Number of states: " + ctn.getValidStates().size()); + return ctn; } } diff --git a/src/main/java/WayofTime/bloodmagic/block/enums/EnumBloodRune.java b/src/main/java/WayofTime/bloodmagic/block/enums/EnumBloodRune.java new file mode 100644 index 00000000..41221936 --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/block/enums/EnumBloodRune.java @@ -0,0 +1,32 @@ +package WayofTime.bloodmagic.block.enums; + +import java.util.Locale; + +import net.minecraft.util.IStringSerializable; + +public enum EnumBloodRune implements IStringSerializable +{ + BLANK, + SPEED, + EFFICIENCY, + SACRIFICE, + SELFSACRIFICE, + DISPLACEMENT, + CAPACITY, + AUGCAPACITY, + ORB, + ACCELERATION, + CHARGING; + + @Override + public String toString() + { + return name().toLowerCase(Locale.ENGLISH); + } + + @Override + public String getName() + { + return this.toString(); + } +} diff --git a/src/main/java/WayofTime/bloodmagic/block/enums/EnumBrickSize.java b/src/main/java/WayofTime/bloodmagic/block/enums/EnumBrickSize.java new file mode 100644 index 00000000..b76396e1 --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/block/enums/EnumBrickSize.java @@ -0,0 +1,23 @@ +package WayofTime.bloodmagic.block.enums; + +import java.util.Locale; + +import net.minecraft.util.IStringSerializable; + +public enum EnumBrickSize implements IStringSerializable +{ + LARGE, + BRICK; + + @Override + public String toString() + { + return name().toLowerCase(Locale.ENGLISH); + } + + @Override + public String getName() + { + return this.toString(); + } +} diff --git a/src/main/java/WayofTime/bloodmagic/block/enums/EnumDemonBlock1.java b/src/main/java/WayofTime/bloodmagic/block/enums/EnumDemonBlock1.java new file mode 100644 index 00000000..5d532c2c --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/block/enums/EnumDemonBlock1.java @@ -0,0 +1,26 @@ +package WayofTime.bloodmagic.block.enums; + +import java.util.Locale; + +import net.minecraft.util.IStringSerializable; + +public enum EnumDemonBlock1 implements IStringSerializable +{ + BRICK1_RAW, + BRICK1_CORROSIVE, + BRICK1_DESTRUCTIVE, + BRICK1_VENGEFUL, + BRICK1_STEADFAST; + + @Override + public String toString() + { + return name().toLowerCase(Locale.ENGLISH); + } + + @Override + public String getName() + { + return this.toString(); + } +} diff --git a/src/main/java/WayofTime/bloodmagic/block/enums/EnumDemonBlock2.java b/src/main/java/WayofTime/bloodmagic/block/enums/EnumDemonBlock2.java new file mode 100644 index 00000000..bd3407dc --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/block/enums/EnumDemonBlock2.java @@ -0,0 +1,36 @@ +package WayofTime.bloodmagic.block.enums; + +import java.util.Locale; + +import net.minecraft.util.IStringSerializable; + +public enum EnumDemonBlock2 implements IStringSerializable +{ + SMALLBRICK_RAW, + SMALLBRICK_CORROSIVE, + SMALLBRICK_DESTRUCTIVE, + SMALLBRICK_VENGEFUL, + SMALLBRICK_STEADFAST, + TILE_RAW, + TILE_CORROSIVE, + TILE_DESTRUCTIVE, + TILE_VENGEFUL, + TILE_STEADFAST, + TILESPECIAL_RAW, + TILESPECIAL_CORROSIVE, + TILESPECIAL_DESTRUCTIVE, + TILESPECIAL_VENGEFUL, + TILESPECIAL_STEADFAST; + + @Override + public String toString() + { + return name().toLowerCase(Locale.ENGLISH); + } + + @Override + public String getName() + { + return this.toString(); + } +} diff --git a/src/main/java/WayofTime/bloodmagic/block/enums/EnumDemonBlock3.java b/src/main/java/WayofTime/bloodmagic/block/enums/EnumDemonBlock3.java new file mode 100644 index 00000000..b76c9363 --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/block/enums/EnumDemonBlock3.java @@ -0,0 +1,36 @@ +package WayofTime.bloodmagic.block.enums; + +import java.util.Locale; + +import net.minecraft.util.IStringSerializable; + +public enum EnumDemonBlock3 implements IStringSerializable +{ + STONE_RAW, + STONE_CORROSIVE, + STONE_DESTRUCTIVE, + STONE_VENGEFUL, + STONE_STEADFAST, + POLISHED_RAW, + POLISHED_CORROSIVE, + POLISHED_DESTRUCTIVE, + POLISHED_VENGEFUL, + POLISHED_STEADFAST, + METAL_RAW, + METAL_CORROSIVE, + METAL_DESTRUCTIVE, + METAL_VENGEFUL, + METAL_STEADFAST; + + @Override + public String toString() + { + return name().toLowerCase(Locale.ENGLISH); + } + + @Override + public String getName() + { + return this.toString(); + } +} diff --git a/src/main/java/WayofTime/bloodmagic/block/enums/EnumInversionCap.java b/src/main/java/WayofTime/bloodmagic/block/enums/EnumInversionCap.java new file mode 100644 index 00000000..3f13bf45 --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/block/enums/EnumInversionCap.java @@ -0,0 +1,31 @@ +package WayofTime.bloodmagic.block.enums; + +import java.util.Locale; + +import net.minecraft.util.IStringSerializable; + +public enum EnumInversionCap implements IStringSerializable +{ + RAW_BOTTOM, + RAW_TOP, + CORROSIVE_BOTTOM, + CORROSIVE_TOP, + DESTRUCTIVE_BOTTOM, + DESTRUCTIVE_TOP, + VENGEFUL_BOTTOM, + VENGEFUL_TOP, + STEADFAST_BOTTOM, + STEADFAST_TOP; + + @Override + public String toString() + { + return name().toLowerCase(Locale.ENGLISH); + } + + @Override + public String getName() + { + return this.toString(); + } +} diff --git a/src/main/java/WayofTime/bloodmagic/block/enums/EnumMimic.java b/src/main/java/WayofTime/bloodmagic/block/enums/EnumMimic.java new file mode 100644 index 00000000..b933ff88 --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/block/enums/EnumMimic.java @@ -0,0 +1,26 @@ +package WayofTime.bloodmagic.block.enums; + +import java.util.Locale; + +import net.minecraft.util.IStringSerializable; + +public enum EnumMimic implements IStringSerializable +{ + NOHITBOX, + SOLIDOPAQUE, + SOLIDCLEAR, + SOLIDLIGHT, + SENTIENT; + + @Override + public String toString() + { + return name().toLowerCase(Locale.ENGLISH); + } + + @Override + public String getName() + { + return this.toString(); + } +} diff --git a/src/main/java/WayofTime/bloodmagic/block/enums/EnumPath.java b/src/main/java/WayofTime/bloodmagic/block/enums/EnumPath.java new file mode 100644 index 00000000..787bfc42 --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/block/enums/EnumPath.java @@ -0,0 +1,29 @@ +package WayofTime.bloodmagic.block.enums; + +import java.util.Locale; + +import net.minecraft.util.IStringSerializable; + +public enum EnumPath implements IStringSerializable +{ + WOOD, + WOODTILE, + STONE, + STONETILE, + WORNSTONE, + WORNSTONETILE, + OBSIDIAN, + OBSIDIANTILE; + + @Override + public String toString() + { + return name().toLowerCase(Locale.ENGLISH); + } + + @Override + public String getName() + { + return this.toString(); + } +} diff --git a/src/main/java/WayofTime/bloodmagic/block/enums/EnumRitualController.java b/src/main/java/WayofTime/bloodmagic/block/enums/EnumRitualController.java new file mode 100644 index 00000000..45b22b24 --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/block/enums/EnumRitualController.java @@ -0,0 +1,23 @@ +package WayofTime.bloodmagic.block.enums; + +import java.util.Locale; + +import net.minecraft.util.IStringSerializable; + +public enum EnumRitualController implements IStringSerializable +{ + MASTER, + IMPERFECT; + + @Override + public String toString() + { + return name().toLowerCase(Locale.ENGLISH); + } + + @Override + public String getName() + { + return this.toString(); + } +} diff --git a/src/main/java/WayofTime/bloodmagic/block/enums/EnumSubWillType.java b/src/main/java/WayofTime/bloodmagic/block/enums/EnumSubWillType.java new file mode 100644 index 00000000..73ebe3a4 --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/block/enums/EnumSubWillType.java @@ -0,0 +1,26 @@ +package WayofTime.bloodmagic.block.enums; + +import java.util.Locale; + +import net.minecraft.util.IStringSerializable; + +public enum EnumSubWillType implements IStringSerializable +{ + RAW, + CORROSIVE, + DESTRUCTIVE, + VENGEFUL, + STEADFAST; + + @Override + public String toString() + { + return name().toLowerCase(Locale.ENGLISH); + } + + @Override + public String getName() + { + return this.toString(); + } +} diff --git a/src/main/java/WayofTime/bloodmagic/block/enums/EnumSubWillType1.java b/src/main/java/WayofTime/bloodmagic/block/enums/EnumSubWillType1.java new file mode 100644 index 00000000..ede1ec40 --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/block/enums/EnumSubWillType1.java @@ -0,0 +1,23 @@ +package WayofTime.bloodmagic.block.enums; + +import java.util.Locale; + +import net.minecraft.util.IStringSerializable; + +public enum EnumSubWillType1 implements IStringSerializable +{ + RAW, + CORROSIVE; + + @Override + public String toString() + { + return name().toLowerCase(Locale.ENGLISH); + } + + @Override + public String getName() + { + return this.toString(); + } +} diff --git a/src/main/java/WayofTime/bloodmagic/block/enums/EnumSubWillType2.java b/src/main/java/WayofTime/bloodmagic/block/enums/EnumSubWillType2.java new file mode 100644 index 00000000..ab1e7d10 --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/block/enums/EnumSubWillType2.java @@ -0,0 +1,23 @@ +package WayofTime.bloodmagic.block.enums; + +import java.util.Locale; + +import net.minecraft.util.IStringSerializable; + +public enum EnumSubWillType2 implements IStringSerializable +{ + DESTRUCTIVE, + VENGEFUL; + + @Override + public String toString() + { + return name().toLowerCase(Locale.ENGLISH); + } + + @Override + public String getName() + { + return this.toString(); + } +} diff --git a/src/main/java/WayofTime/bloodmagic/block/enums/EnumSubWillType3.java b/src/main/java/WayofTime/bloodmagic/block/enums/EnumSubWillType3.java new file mode 100644 index 00000000..63c17562 --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/block/enums/EnumSubWillType3.java @@ -0,0 +1,22 @@ +package WayofTime.bloodmagic.block.enums; + +import java.util.Locale; + +import net.minecraft.util.IStringSerializable; + +public enum EnumSubWillType3 implements IStringSerializable +{ + STEADFAST; + + @Override + public String toString() + { + return name().toLowerCase(Locale.ENGLISH); + } + + @Override + public String getName() + { + return this.toString(); + } +} diff --git a/src/main/java/WayofTime/bloodmagic/block/enums/EnumWillWall.java b/src/main/java/WayofTime/bloodmagic/block/enums/EnumWillWall.java new file mode 100644 index 00000000..7d20db59 --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/block/enums/EnumWillWall.java @@ -0,0 +1,36 @@ +package WayofTime.bloodmagic.block.enums; + +import java.util.Locale; + +import net.minecraft.util.IStringSerializable; + +public enum EnumWillWall implements IStringSerializable +{ + BRICK_RAW, + BRICK_CORROSIVE, + BRICK_DESTRUCTIVE, + BRICK_VENGEFUL, + BRICK_STEADFAST, + SMALLBRICK_RAW, + SMALLBRICK_CORROSIVE, + SMALLBRICK_DESTRUCTIVE, + SMALLBRICK_VENGEFUL, + SMALLBRICK_STEADFAST, + LARGE_RAW, + LARGE_CORROSIVE, + LARGE_DESTRUCTIVE, + LARGE_VENGEFUL, + LARGE_STEADFAST; + + @Override + public String toString() + { + return name().toLowerCase(Locale.ENGLISH); + } + + @Override + public String getName() + { + return this.toString(); + } +} diff --git a/src/main/java/WayofTime/bloodmagic/compat/waila/WailaCallbackHandler.java b/src/main/java/WayofTime/bloodmagic/compat/waila/WailaCallbackHandler.java index e2b6a98b..528d266b 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/waila/WailaCallbackHandler.java +++ b/src/main/java/WayofTime/bloodmagic/compat/waila/WailaCallbackHandler.java @@ -7,9 +7,9 @@ import WayofTime.bloodmagic.block.BlockAltar; import WayofTime.bloodmagic.block.BlockMimic; import WayofTime.bloodmagic.block.BlockRitualController; import WayofTime.bloodmagic.block.BlockTeleposer; -import WayofTime.bloodmagic.block.base.BlockStringPillar; -import WayofTime.bloodmagic.block.base.BlockStringPillarCap; -import WayofTime.bloodmagic.block.base.BlockStringStairs; +import WayofTime.bloodmagic.block.base.BlockEnumPillar; +import WayofTime.bloodmagic.block.base.BlockEnumPillarCap; +import WayofTime.bloodmagic.block.base.BlockEnumStairs; import WayofTime.bloodmagic.compat.waila.provider.DataProviderAlchemyArray; import WayofTime.bloodmagic.compat.waila.provider.DataProviderBloodAltar; import WayofTime.bloodmagic.compat.waila.provider.DataProviderMimic; @@ -27,9 +27,9 @@ public class WailaCallbackHandler registrar.registerBodyProvider(new DataProviderAlchemyArray(), BlockAlchemyArray.class); registrar.registerStackProvider(new DataProviderAlchemyArray(), BlockAlchemyArray.class); registrar.registerStackProvider(new DataProviderMimic(), BlockMimic.class); - registrar.registerStackProvider(DataProviderPillar.INSTANCE, BlockStringPillarCap.class); - registrar.registerStackProvider(DataProviderPillar.INSTANCE, BlockStringPillar.class); - registrar.registerStackProvider(DataProviderPillar.INSTANCE, BlockStringStairs.class); + registrar.registerStackProvider(DataProviderPillar.INSTANCE, BlockEnumPillarCap.class); + registrar.registerStackProvider(DataProviderPillar.INSTANCE, BlockEnumPillar.class); + registrar.registerStackProvider(DataProviderPillar.INSTANCE, BlockEnumStairs.class); registrar.addConfig(Constants.Mod.MODID, Constants.Compat.WAILA_CONFIG_BYPASS_SNEAK, false); registrar.addConfig(Constants.Mod.MODID, Constants.Compat.WAILA_CONFIG_ALTAR, true); diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemInscriptionTool.java b/src/main/java/WayofTime/bloodmagic/item/ItemInscriptionTool.java index 88e7361a..2483ab51 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemInscriptionTool.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemInscriptionTool.java @@ -65,7 +65,7 @@ public class ItemInscriptionTool extends ItemBindableBase implements IVariantPro stack = NBTHelper.checkNBT(stack); int uses = stack.getTagCompound().getInteger(Constants.NBT.USES); - world.setBlockState(pos, state.withProperty(((BlockRitualStone) state.getBlock()).getProperty(), getType(stack).getName())); + world.setBlockState(pos, state.withProperty(((BlockRitualStone) state.getBlock()).getProperty(), getType(stack))); if (!player.capabilities.isCreativeMode) { stack.getTagCompound().setInteger(Constants.NBT.USES, --uses); diff --git a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockBloodRune.java b/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockBloodRune.java deleted file mode 100644 index 4af5c8d9..00000000 --- a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockBloodRune.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.bloodmagic.item.block; - -import WayofTime.bloodmagic.block.BlockBloodRune; -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemBlockBloodRune extends ItemBlock -{ - public ItemBlockBloodRune(Block block) - { - super(block); - setHasSubtypes(true); - } - - @Override - public String getUnlocalizedName(ItemStack stack) - { - return super.getUnlocalizedName(stack) + BlockBloodRune.names[stack.getItemDamage()]; - } - - @Override - public int getMetadata(int meta) - { - return meta; - } -} diff --git a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockBloodStoneBrick.java b/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockBloodStoneBrick.java deleted file mode 100644 index 549c01e2..00000000 --- a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockBloodStoneBrick.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.bloodmagic.item.block; - -import WayofTime.bloodmagic.block.BlockBloodStoneBrick; -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemBlockBloodStoneBrick extends ItemBlock -{ - public ItemBlockBloodStoneBrick(Block block) - { - super(block); - setHasSubtypes(true); - } - - @Override - public String getUnlocalizedName(ItemStack stack) - { - return super.getUnlocalizedName(stack) + BlockBloodStoneBrick.names[stack.getItemDamage()]; - } - - @Override - public int getMetadata(int meta) - { - return meta; - } -} \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockCrystal.java b/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockCrystal.java deleted file mode 100644 index c037b3b8..00000000 --- a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockCrystal.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.bloodmagic.item.block; - -import WayofTime.bloodmagic.block.BlockCrystal; -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemBlockCrystal extends ItemBlock -{ - public ItemBlockCrystal(Block block) - { - super(block); - setHasSubtypes(true); - } - - @Override - public String getUnlocalizedName(ItemStack stack) - { - return super.getUnlocalizedName(stack) + BlockCrystal.names[stack.getItemDamage()]; - } - - @Override - public int getMetadata(int meta) - { - return meta; - } -} \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockDemonBase.java b/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockDemonBase.java deleted file mode 100644 index b633ef9b..00000000 --- a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockDemonBase.java +++ /dev/null @@ -1,29 +0,0 @@ -package WayofTime.bloodmagic.item.block; - -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import WayofTime.bloodmagic.block.BlockDemonBase; - -public class ItemBlockDemonBase extends ItemBlock -{ - public final BlockDemonBase demonBlock; - - public ItemBlockDemonBase(BlockDemonBase block) - { - super(block); - setHasSubtypes(true); - demonBlock = block; - } - - @Override - public String getUnlocalizedName(ItemStack stack) - { - return super.getUnlocalizedName(stack) + demonBlock.names[stack.getItemDamage()]; - } - - @Override - public int getMetadata(int meta) - { - return meta; - } -} \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockDemonLight.java b/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockDemonLight.java deleted file mode 100644 index d1f3f874..00000000 --- a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockDemonLight.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.bloodmagic.item.block; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import WayofTime.bloodmagic.block.BlockDemonLight; - -public class ItemBlockDemonLight extends ItemBlock -{ - public ItemBlockDemonLight(Block block) - { - super(block); - setHasSubtypes(true); - } - - @Override - public String getUnlocalizedName(ItemStack stack) - { - return super.getUnlocalizedName(stack) + BlockDemonLight.names[stack.getItemDamage()]; - } - - @Override - public int getMetadata(int meta) - { - return meta; - } -} \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockDemonPillarBase.java b/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockDemonPillarBase.java deleted file mode 100644 index b920ad0a..00000000 --- a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockDemonPillarBase.java +++ /dev/null @@ -1,29 +0,0 @@ -package WayofTime.bloodmagic.item.block; - -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import WayofTime.bloodmagic.block.BlockDemonPillarBase; - -public class ItemBlockDemonPillarBase extends ItemBlock -{ - public final BlockDemonPillarBase demonBlock; - - public ItemBlockDemonPillarBase(BlockDemonPillarBase block) - { - super(block); - setHasSubtypes(true); - demonBlock = block; - } - - @Override - public String getUnlocalizedName(ItemStack stack) - { - return super.getUnlocalizedName(stack) + demonBlock.names[stack.getItemDamage() % demonBlock.names.length]; - } - - @Override - public int getMetadata(int meta) - { - return meta % demonBlock.names.length; - } -} \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockDemonPillarCapBase.java b/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockDemonPillarCapBase.java deleted file mode 100644 index 5d36b00d..00000000 --- a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockDemonPillarCapBase.java +++ /dev/null @@ -1,29 +0,0 @@ -package WayofTime.bloodmagic.item.block; - -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import WayofTime.bloodmagic.block.BlockDemonPillarCapBase; - -public class ItemBlockDemonPillarCapBase extends ItemBlock -{ - public final BlockDemonPillarCapBase demonBlock; - - public ItemBlockDemonPillarCapBase(BlockDemonPillarCapBase block) - { - super(block); - setHasSubtypes(true); - demonBlock = block; - } - - @Override - public String getUnlocalizedName(ItemStack stack) - { - return super.getUnlocalizedName(stack) + demonBlock.names[stack.getItemDamage() % demonBlock.names.length]; - } - - @Override - public int getMetadata(int meta) - { - return meta % demonBlock.names.length; - } -} \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockDemonWallBase.java b/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockDemonWallBase.java deleted file mode 100644 index c816ac55..00000000 --- a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockDemonWallBase.java +++ /dev/null @@ -1,29 +0,0 @@ -package WayofTime.bloodmagic.item.block; - -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import WayofTime.bloodmagic.block.BlockDemonWallBase; - -public class ItemBlockDemonWallBase extends ItemBlock -{ - public final BlockDemonWallBase demonBlock; - - public ItemBlockDemonWallBase(BlockDemonWallBase block) - { - super(block); - setHasSubtypes(true); - demonBlock = block; - } - - @Override - public String getUnlocalizedName(ItemStack stack) - { - return super.getUnlocalizedName(stack) + demonBlock.names[stack.getItemDamage() % demonBlock.names.length]; - } - - @Override - public int getMetadata(int meta) - { - return meta % demonBlock.names.length; - } -} \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockInversionPillar.java b/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockInversionPillar.java deleted file mode 100644 index 26035f69..00000000 --- a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockInversionPillar.java +++ /dev/null @@ -1,78 +0,0 @@ -package WayofTime.bloodmagic.item.block; - -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import WayofTime.bloodmagic.block.BlockInversionPillar; -import WayofTime.bloodmagic.registry.ModBlocks; - -public class ItemBlockInversionPillar extends ItemBlock -{ - public ItemBlockInversionPillar(Block block) - { - super(block); - setHasSubtypes(true); - } - - @Override - public boolean placeBlockAt(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ, IBlockState newState) - { - if (!isBlockPillarBase(world.getBlockState(pos.offset(EnumFacing.DOWN)), newState) || !isBlockPillarCap(world.getBlockState(pos.offset(EnumFacing.UP)), newState)) - { - return false; - } - - return super.placeBlockAt(stack, player, world, pos, side, hitX, hitY, hitZ, newState); - } - - public boolean isBlockPillarBase(IBlockState baseState, IBlockState newState) - { - Block block = baseState.getBlock(); - if (block == ModBlocks.INVERSION_PILLAR_END) - { - int baseMeta = block.getMetaFromState(baseState); - int pillarMeta = newState.getBlock().getMetaFromState(newState); - - if (pillarMeta == baseMeta / 2 && baseMeta % 2 == 0) - { - return true; - } - } - - return false; - } - - public boolean isBlockPillarCap(IBlockState capState, IBlockState newState) - { - Block block = capState.getBlock(); - if (block == ModBlocks.INVERSION_PILLAR_END) - { - int capMeta = block.getMetaFromState(capState); - int pillarMeta = newState.getBlock().getMetaFromState(newState); - - if (pillarMeta == capMeta / 2 && capMeta % 2 == 1) - { - return true; - } - } - - return false; - } - - @Override - public String getUnlocalizedName(ItemStack stack) - { - return super.getUnlocalizedName(stack) + BlockInversionPillar.names[stack.getItemDamage()]; - } - - @Override - public int getMetadata(int meta) - { - return meta; - } -} diff --git a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockInversionPillarEnd.java b/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockInversionPillarEnd.java deleted file mode 100644 index d213d5e9..00000000 --- a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockInversionPillarEnd.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.bloodmagic.item.block; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import WayofTime.bloodmagic.block.BlockInversionPillarEnd; - -public class ItemBlockInversionPillarEnd extends ItemBlock -{ - public ItemBlockInversionPillarEnd(Block block) - { - super(block); - setHasSubtypes(true); - } - - @Override - public String getUnlocalizedName(ItemStack stack) - { - return super.getUnlocalizedName(stack) + BlockInversionPillarEnd.names[stack.getItemDamage()]; - } - - @Override - public int getMetadata(int meta) - { - return meta; - } -} diff --git a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockMimic.java b/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockMimic.java deleted file mode 100644 index fff89c1c..00000000 --- a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockMimic.java +++ /dev/null @@ -1,139 +0,0 @@ -package WayofTime.bloodmagic.item.block; - -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntityChest; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import WayofTime.bloodmagic.block.BlockMimic; -import WayofTime.bloodmagic.tile.TileMimic; - -public class ItemBlockMimic extends ItemBlock -{ - public ItemBlockMimic(Block block) - { - super(block); - setHasSubtypes(true); - } - - @Override - public String getUnlocalizedName(ItemStack stack) - { - return super.getUnlocalizedName(stack) + BlockMimic.names[stack.getItemDamage()]; - } - - @Override - public EnumActionResult onItemUse(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) - { - IBlockState iblockstate = world.getBlockState(pos); - Block block = iblockstate.getBlock(); - - if (!player.isSneaking()) - { - return super.onItemUse(stack, player, world, pos, hand, facing, hitX, hitY, hitZ); - } - - if (stack.stackSize != 0 && player.canPlayerEdit(pos, facing, stack)) - { - int i = this.getMetadata(stack.getMetadata()); - IBlockState iblockstate1 = this.block.onBlockPlaced(world, pos, facing, hitX, hitY, hitZ, i, player); - - IBlockState blockReplaced = world.getBlockState(pos); - if (!canReplaceBlock(world, pos, blockReplaced)) - { - return super.onItemUse(stack, player, world, pos, hand, facing, hitX, hitY, hitZ); - } - - TileEntity tileReplaced = world.getTileEntity(pos); - if (!canReplaceTile(i, tileReplaced)) - { - return EnumActionResult.FAIL; - } - - ItemStack replacedStack = block.getItem(world, pos, iblockstate); - -// ItemStack replacedStack = new ItemStack(block, 1, block.getMetaFromState(iblockstate)); - - NBTTagCompound tileTag = getTagFromTileEntity(tileReplaced); - if (tileReplaced != null) - { - NBTTagCompound voidTag = new NBTTagCompound(); - voidTag.setInteger("x", pos.getX()); - voidTag.setInteger("y", pos.getY()); - voidTag.setInteger("z", pos.getZ()); - tileReplaced.readFromNBT(voidTag); - } - - if (placeBlockAt(stack, player, world, pos, facing, hitX, hitY, hitZ, iblockstate1)) - { - SoundType soundtype = this.block.getSoundType(); - world.playSound(player, pos, soundtype.getPlaceSound(), SoundCategory.BLOCKS, (soundtype.getVolume() + 1.0F) / 2.0F, soundtype.getPitch() * 0.8F); - --stack.stackSize; - - TileEntity tile = world.getTileEntity(pos); - if (tile instanceof TileMimic) - { - TileMimic mimic = (TileMimic) tile; - mimic.metaOfReplacedBlock = block.getMetaFromState(iblockstate); - mimic.tileTag = tileTag; - mimic.setInventorySlotContents(0, replacedStack); - mimic.refreshTileEntity(); - - if (player.capabilities.isCreativeMode) - { - mimic.dropItemsOnBreak = false; - } - } - - return EnumActionResult.SUCCESS; - } else - { - tileReplaced.readFromNBT(tileTag); - } - } - - return EnumActionResult.FAIL; - } - - public boolean canReplaceTile(int meta, TileEntity tile) - { - if (tile instanceof TileEntityChest) - { - return true; - } - - return tile == null; - } - - public boolean canReplaceBlock(World world, BlockPos pos, IBlockState state) { - return state.getBlockHardness(world, pos) != -1.0F; - } - - public NBTTagCompound getTagFromTileEntity(TileEntity tile) - { - NBTTagCompound tag = new NBTTagCompound(); - - if (tile != null) - { - return tile.writeToNBT(tag); - } - - return tag; - } - - @Override - public int getMetadata(int meta) - { - return meta; - } -} \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockPath.java b/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockPath.java deleted file mode 100644 index dcd834b7..00000000 --- a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockPath.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.bloodmagic.item.block; - -import WayofTime.bloodmagic.block.BlockPath; -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemBlockPath extends ItemBlock -{ - public ItemBlockPath(Block block) - { - super(block); - setHasSubtypes(true); - } - - @Override - public String getUnlocalizedName(ItemStack stack) - { - return super.getUnlocalizedName(stack) + BlockPath.names[stack.getItemDamage()]; - } - - @Override - public int getMetadata(int meta) - { - return meta; - } -} \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockRitualController.java b/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockRitualController.java deleted file mode 100644 index e57d9616..00000000 --- a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockRitualController.java +++ /dev/null @@ -1,28 +0,0 @@ -package WayofTime.bloodmagic.item.block; - -import WayofTime.bloodmagic.block.BlockRitualController; -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemBlockRitualController extends ItemBlock -{ - public ItemBlockRitualController(Block block) - { - super(block); - - setHasSubtypes(true); - } - - @Override - public String getUnlocalizedName(ItemStack stack) - { - return super.getUnlocalizedName(stack) + BlockRitualController.names[stack.getItemDamage()]; - } - - @Override - public int getMetadata(int meta) - { - return meta; - } -} diff --git a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockRitualStone.java b/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockRitualStone.java deleted file mode 100644 index 6162250b..00000000 --- a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockRitualStone.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.bloodmagic.item.block; - -import WayofTime.bloodmagic.block.BlockRitualStone; -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemBlockRitualStone extends ItemBlock -{ - public ItemBlockRitualStone(Block block) - { - super(block); - setHasSubtypes(true); - } - - @Override - public String getUnlocalizedName(ItemStack stack) - { - return super.getUnlocalizedName(stack) + BlockRitualStone.names[stack.getItemDamage()]; - } - - @Override - public int getMetadata(int meta) - { - return meta; - } -} diff --git a/src/main/java/WayofTime/bloodmagic/item/block/ItemDemonStairsBase.java b/src/main/java/WayofTime/bloodmagic/item/block/ItemDemonStairsBase.java deleted file mode 100644 index 439be03b..00000000 --- a/src/main/java/WayofTime/bloodmagic/item/block/ItemDemonStairsBase.java +++ /dev/null @@ -1,29 +0,0 @@ -package WayofTime.bloodmagic.item.block; - -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import WayofTime.bloodmagic.block.BlockDemonStairsBase; - -public class ItemDemonStairsBase extends ItemBlock -{ - public final BlockDemonStairsBase demonBlock; - - public ItemDemonStairsBase(BlockDemonStairsBase block) - { - super(block); - setHasSubtypes(true); - demonBlock = block; - } - - @Override - public String getUnlocalizedName(ItemStack stack) - { - return super.getUnlocalizedName(stack) + demonBlock.names[stack.getItemDamage() % demonBlock.names.length]; - } - - @Override - public int getMetadata(int meta) - { - return meta % demonBlock.names.length; - } -} \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/item/block/base/ItemBlockEnum.java b/src/main/java/WayofTime/bloodmagic/item/block/base/ItemBlockEnum.java index 0ec613c2..9b9f825e 100644 --- a/src/main/java/WayofTime/bloodmagic/item/block/base/ItemBlockEnum.java +++ b/src/main/java/WayofTime/bloodmagic/item/block/base/ItemBlockEnum.java @@ -6,9 +6,11 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.IStringSerializable; import net.minecraft.util.math.MathHelper; -public class ItemBlockEnum & IStringSerializable> extends ItemBlock { +public class ItemBlockEnum & IStringSerializable> extends ItemBlock +{ - public ItemBlockEnum(BlockEnum block) { + public ItemBlockEnum(BlockEnum block) + { super(block); if (block.getTypes().length > 1) @@ -17,17 +19,20 @@ public class ItemBlockEnum & IStringSerializable> extends Item @SuppressWarnings("unchecked") @Override - public BlockEnum getBlock() { + public BlockEnum getBlock() + { return (BlockEnum) super.getBlock(); } @Override - public String getUnlocalizedName(ItemStack stack) { - return getBlock().getUnlocalizedName() + "." + getBlock().getTypes()[MathHelper.clamp_int(stack.getItemDamage(), 0, 15)].getName(); + public String getUnlocalizedName(ItemStack stack) + { + return getBlock().getUnlocalizedName() + getBlock().getTypes()[MathHelper.clamp_int(stack.getItemDamage(), 0, 15)].getName(); } @Override - public int getMetadata(int damage) { + public int getMetadata(int damage) + { return damage; } } diff --git a/src/main/java/WayofTime/bloodmagic/registry/ModBlocks.java b/src/main/java/WayofTime/bloodmagic/registry/ModBlocks.java index 1426bc10..b76b8028 100644 --- a/src/main/java/WayofTime/bloodmagic/registry/ModBlocks.java +++ b/src/main/java/WayofTime/bloodmagic/registry/ModBlocks.java @@ -11,6 +11,7 @@ import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.ConfigHandler; import WayofTime.bloodmagic.api.BloodMagicAPI; import WayofTime.bloodmagic.api.Constants; +import WayofTime.bloodmagic.api.ritual.EnumRuneType; import WayofTime.bloodmagic.block.BlockAlchemyArray; import WayofTime.bloodmagic.block.BlockAlchemyTable; import WayofTime.bloodmagic.block.BlockAltar; @@ -46,24 +47,24 @@ import WayofTime.bloodmagic.block.BlockRitualStone; import WayofTime.bloodmagic.block.BlockSoulForge; import WayofTime.bloodmagic.block.BlockSpectral; import WayofTime.bloodmagic.block.BlockTeleposer; +import WayofTime.bloodmagic.block.enums.EnumBloodRune; +import WayofTime.bloodmagic.block.enums.EnumBrickSize; +import WayofTime.bloodmagic.block.enums.EnumDemonBlock1; +import WayofTime.bloodmagic.block.enums.EnumDemonBlock2; +import WayofTime.bloodmagic.block.enums.EnumDemonBlock3; +import WayofTime.bloodmagic.block.enums.EnumInversionCap; +import WayofTime.bloodmagic.block.enums.EnumMimic; +import WayofTime.bloodmagic.block.enums.EnumPath; +import WayofTime.bloodmagic.block.enums.EnumRitualController; +import WayofTime.bloodmagic.block.enums.EnumSubWillType; +import WayofTime.bloodmagic.block.enums.EnumSubWillType1; +import WayofTime.bloodmagic.block.enums.EnumSubWillType2; +import WayofTime.bloodmagic.block.enums.EnumSubWillType3; +import WayofTime.bloodmagic.block.enums.EnumWillWall; import WayofTime.bloodmagic.item.block.ItemBlockAlchemyTable; -import WayofTime.bloodmagic.item.block.ItemBlockBloodRune; -import WayofTime.bloodmagic.item.block.ItemBlockBloodStoneBrick; import WayofTime.bloodmagic.item.block.ItemBlockBloodTank; -import WayofTime.bloodmagic.item.block.ItemBlockCrystal; -import WayofTime.bloodmagic.item.block.ItemBlockDemonBase; import WayofTime.bloodmagic.item.block.ItemBlockDemonCrystal; -import WayofTime.bloodmagic.item.block.ItemBlockDemonLight; -import WayofTime.bloodmagic.item.block.ItemBlockDemonPillarBase; -import WayofTime.bloodmagic.item.block.ItemBlockDemonPillarCapBase; -import WayofTime.bloodmagic.item.block.ItemBlockDemonWallBase; -import WayofTime.bloodmagic.item.block.ItemBlockInversionPillar; -import WayofTime.bloodmagic.item.block.ItemBlockInversionPillarEnd; -import WayofTime.bloodmagic.item.block.ItemBlockMimic; -import WayofTime.bloodmagic.item.block.ItemBlockPath; -import WayofTime.bloodmagic.item.block.ItemBlockRitualController; -import WayofTime.bloodmagic.item.block.ItemBlockRitualStone; -import WayofTime.bloodmagic.item.block.ItemDemonStairsBase; +import WayofTime.bloodmagic.item.block.base.ItemBlockEnum; import WayofTime.bloodmagic.tile.TileAlchemyArray; import WayofTime.bloodmagic.tile.TileAlchemyTable; import WayofTime.bloodmagic.tile.TileAltar; @@ -142,23 +143,23 @@ public class ModBlocks LIFE_ESSENCE = registerBlock(new BlockLifeEssence(), Constants.BloodMagicBlock.LIFE_ESSENCE.getRegName()); ALTAR = registerBlock(new BlockAltar(), Constants.BloodMagicBlock.ALTAR.getRegName()); - BLOOD_RUNE = registerBlock(new ItemBlockBloodRune(new BlockBloodRune()), Constants.BloodMagicBlock.BLOOD_RUNE.getRegName()); - RITUAL_CONTROLLER = registerBlock(new ItemBlockRitualController(new BlockRitualController()), Constants.BloodMagicBlock.RITUAL_CONTROLLER.getRegName()); - RITUAL_STONE = registerBlock(new ItemBlockRitualStone(new BlockRitualStone()), Constants.BloodMagicBlock.RITUAL_STONE.getRegName()); + BLOOD_RUNE = registerBlock(new ItemBlockEnum(new BlockBloodRune()), Constants.BloodMagicBlock.BLOOD_RUNE.getRegName()); + RITUAL_CONTROLLER = registerBlock(new ItemBlockEnum(new BlockRitualController()), Constants.BloodMagicBlock.RITUAL_CONTROLLER.getRegName()); + RITUAL_STONE = registerBlock(new ItemBlockEnum(new BlockRitualStone()), Constants.BloodMagicBlock.RITUAL_STONE.getRegName()); BLOOD_LIGHT = registerBlock(new BlockBloodLight(), Constants.BloodMagicBlock.BLOOD_LIGHT.getRegName()); TELEPOSER = registerBlock(new BlockTeleposer(), Constants.BloodMagicBlock.TELEPOSER.getRegName()); ALCHEMY_ARRAY = registerBlock(new BlockAlchemyArray(), Constants.BloodMagicBlock.ALCHEMY_ARRAY.getRegName()); SPECTRAL_BLOCK = registerBlock(new BlockSpectral(), Constants.BloodMagicBlock.SPECTRAL.getRegName()); PHANTOM_BLOCK = registerBlock(new BlockPhantom(), Constants.BloodMagicBlock.PHANTOM.getRegName()); SOUL_FORGE = registerBlock(new BlockSoulForge(), Constants.BloodMagicBlock.SOUL_FORGE.getRegName()); - CRYSTAL = registerBlock(new ItemBlockCrystal(new BlockCrystal()), Constants.BloodMagicBlock.CRYSTAL.getRegName()); - BLOOD_STONE = registerBlock(new ItemBlockBloodStoneBrick(new BlockBloodStoneBrick()), Constants.BloodMagicBlock.BLOOD_STONE.getRegName()); + CRYSTAL = registerBlock(new ItemBlockEnum(new BlockCrystal()), Constants.BloodMagicBlock.CRYSTAL.getRegName()); + BLOOD_STONE = registerBlock(new ItemBlockEnum(new BlockBloodStoneBrick()), Constants.BloodMagicBlock.BLOOD_STONE.getRegName()); MASTER_ROUTING_NODE = registerBlock(new ItemBlock(new BlockMasterRoutingNode()), Constants.BloodMagicBlock.MASTER_ROUTING_NODE.getRegName()); INPUT_ROUTING_NODE = registerBlock(new ItemBlock(new BlockInputRoutingNode()), Constants.BloodMagicBlock.INPUT_ROUTING_NODE.getRegName()); OUTPUT_ROUTING_NODE = registerBlock(new ItemBlock(new BlockOutputRoutingNode()), Constants.BloodMagicBlock.OUTPUT_ROUTING_NODE.getRegName()); ITEM_ROUTING_NODE = registerBlock(new ItemBlock(new BlockItemRoutingNode()), Constants.BloodMagicBlock.ITEM_ROUTING_NODE.getRegName()); INCENSE_ALTAR = registerBlock(new BlockIncenseAltar(), Constants.BloodMagicBlock.INCENSE_ALTAR.getRegName()); - PATH_BLOCK = registerBlock(new ItemBlockPath(new BlockPath()), Constants.BloodMagicBlock.PATH.getRegName()); + PATH_BLOCK = registerBlock(new ItemBlockEnum(new BlockPath()), Constants.BloodMagicBlock.PATH.getRegName()); DEMON_CRUCIBLE = registerBlock(new BlockDemonCrucible(), Constants.BloodMagicBlock.DEMON_CRUCIBLE.getRegName()); DEMON_PYLON = registerBlock(new BlockDemonPylon(), Constants.BloodMagicBlock.DEMON_PYLON.getRegName()); DEMON_CRYSTALLIZER = registerBlock(new BlockDemonCrystallizer(), Constants.BloodMagicBlock.DEMON_CRYSTALLIZER.getRegName()); @@ -169,28 +170,28 @@ public class ModBlocks DIMENSIONAL_PORTAL = registerBlock(new BlockDimensionalPortal(), Constants.BloodMagicBlock.DIMENSIONAL_PORTAL.getRegName()); BLOOD_TANK = registerBlock(new ItemBlockBloodTank(new BlockBloodTank()), Constants.BloodMagicBlock.BLOOD_TANK.getRegName()); - MIMIC = registerBlock(new ItemBlockMimic(new BlockMimic()), Constants.BloodMagicBlock.MIMIC.getRegName()); + MIMIC = registerBlock(new ItemBlockEnum(new BlockMimic()), Constants.BloodMagicBlock.MIMIC.getRegName()); - DEMON_BRICK_1 = registerBlock(new ItemBlockDemonBase(new BlockDemonBase("bricks1", new String[] { "brick1_raw", "brick1_corrosive", "brick1_destructive", "brick1_vengeful", "brick1_steadfast" })), Constants.BloodMagicBlock.DEMON_BRICK_1.getRegName()); - DEMON_BRICK_2 = registerBlock(new ItemBlockDemonBase(new BlockDemonBase("bricks2", new String[] { "smallbrick_raw", "smallbrick_corrosive", "smallbrick_destructive", "smallbrick_vengeful", "smallbrick_steadfast", "tile_raw", "tile_corrosive", "tile_destructive", "tile_vengeful", "tile_steadfast", "tilespecial_raw", "tilespecial_corrosive", "tilespecial_destructive", "tilespecial_vengeful", "tilespecial_steadfast" })), Constants.BloodMagicBlock.DEMON_BRICK_2.getRegName()); - DEMON_EXTRAS = registerBlock(new ItemBlockDemonBase(new BlockDemonBase("extras", new String[] { "stone_raw", "stone_corrosive", "stone_destructive", "stone_vengeful", "stone_steadfast", "polished_raw", "polished_corrosive", "polished_destructive", "polished_vengeful", "polished_steadfast", "metal_raw", "metal_corrosive", "metal_destructive", "metal_vengeful", "metal_steadfast" })), Constants.BloodMagicBlock.DEMON_BLOCK_EXTRA.getRegName()); + DEMON_BRICK_1 = registerBlock(new ItemBlockEnum(new BlockDemonBase("bricks1", EnumDemonBlock1.class)), Constants.BloodMagicBlock.DEMON_BRICK_1.getRegName()); + DEMON_BRICK_2 = registerBlock(new ItemBlockEnum(new BlockDemonBase("bricks2", EnumDemonBlock2.class)), Constants.BloodMagicBlock.DEMON_BRICK_2.getRegName()); + DEMON_EXTRAS = registerBlock(new ItemBlockEnum(new BlockDemonBase("extras", EnumDemonBlock3.class)), Constants.BloodMagicBlock.DEMON_BLOCK_EXTRA.getRegName()); - DEMON_PILLAR_1 = registerBlock(new ItemBlockDemonPillarBase(new BlockDemonPillarBase("pillar1", Material.ROCK, new String[] { "raw", "corrosive", "destructive", "vengeful", "steadfast" })), Constants.BloodMagicBlock.DEMON_PILLAR_1.getRegName()); - DEMON_PILLAR_2 = registerBlock(new ItemBlockDemonPillarBase(new BlockDemonPillarBase("pillar2", Material.ROCK, new String[] { "raw", "corrosive", "destructive", "vengeful", "steadfast" })), Constants.BloodMagicBlock.DEMON_PILLAR_2.getRegName()); - DEMON_PILLAR_CAP_1 = registerBlock(new ItemBlockDemonPillarCapBase(new BlockDemonPillarCapBase("pillarCap1", Material.ROCK, new String[] { "raw", "corrosive" })), Constants.BloodMagicBlock.DEMON_PILLAR_CAP_1.getRegName()); - DEMON_PILLAR_CAP_2 = registerBlock(new ItemBlockDemonPillarCapBase(new BlockDemonPillarCapBase("pillarCap2", Material.ROCK, new String[] { "destructive", "vengeful" })), Constants.BloodMagicBlock.DEMON_PILLAR_CAP_2.getRegName()); - DEMON_PILLAR_CAP_3 = registerBlock(new ItemBlockDemonPillarCapBase(new BlockDemonPillarCapBase("pillarCap3", Material.ROCK, new String[] { "steadfast" })), Constants.BloodMagicBlock.DEMON_PILLAR_CAP_3.getRegName()); + DEMON_PILLAR_1 = registerBlock(new ItemBlockEnum(new BlockDemonPillarBase("pillar1", Material.ROCK, EnumSubWillType.class)), Constants.BloodMagicBlock.DEMON_PILLAR_1.getRegName()); + DEMON_PILLAR_2 = registerBlock(new ItemBlockEnum(new BlockDemonPillarBase("pillar2", Material.ROCK, EnumSubWillType.class)), Constants.BloodMagicBlock.DEMON_PILLAR_2.getRegName()); + DEMON_PILLAR_CAP_1 = registerBlock(new ItemBlockEnum(new BlockDemonPillarCapBase("pillarCap1", Material.ROCK, EnumSubWillType1.class)), Constants.BloodMagicBlock.DEMON_PILLAR_CAP_1.getRegName()); + DEMON_PILLAR_CAP_2 = registerBlock(new ItemBlockEnum(new BlockDemonPillarCapBase("pillarCap2", Material.ROCK, EnumSubWillType2.class)), Constants.BloodMagicBlock.DEMON_PILLAR_CAP_2.getRegName()); + DEMON_PILLAR_CAP_3 = registerBlock(new ItemBlockEnum(new BlockDemonPillarCapBase("pillarCap3", Material.ROCK, EnumSubWillType3.class)), Constants.BloodMagicBlock.DEMON_PILLAR_CAP_3.getRegName()); - DEMON_LIGHT = registerBlock(new ItemBlockDemonLight(new BlockDemonLight()), Constants.BloodMagicBlock.DEMON_LIGHT.getRegName()); + DEMON_LIGHT = registerBlock(new ItemBlockEnum(new BlockDemonLight()), Constants.BloodMagicBlock.DEMON_LIGHT.getRegName()); - DEMON_WALL_1 = registerBlock(new ItemBlockDemonWallBase(new BlockDemonWallBase("wall1", Material.ROCK, new String[] { "brick_raw", "brick_corrosive", "brick_destructive", "brick_vengeful", "brick_steadfast", "smallbrick_raw", "smallbrick_corrosive", "smallbrick_destructive", "smallbrick_vengeful", "smallbrick_steadfast", "large_raw", "large_corrosive", "large_destructive", "large_vengeful", "large_steadfast" })), Constants.BloodMagicBlock.DEMON_WALL_1.getRegName()); + DEMON_WALL_1 = registerBlock(new ItemBlockEnum(new BlockDemonWallBase("wall1", Material.ROCK, EnumWillWall.class)), Constants.BloodMagicBlock.DEMON_WALL_1.getRegName()); - DEMON_STAIRS_1 = registerBlock(new ItemDemonStairsBase(new BlockDemonStairsBase("stairs1", Material.ROCK, new String[] { "raw", "corrosive" })), Constants.BloodMagicBlock.DEMON_STAIRS_1.getRegName()); - DEMON_STAIRS_2 = registerBlock(new ItemDemonStairsBase(new BlockDemonStairsBase("stairs2", Material.ROCK, new String[] { "destructive", "vengeful" })), Constants.BloodMagicBlock.DEMON_STAIRS_2.getRegName()); - DEMON_STAIRS_3 = registerBlock(new ItemDemonStairsBase(new BlockDemonStairsBase("stairs3", Material.ROCK, new String[] { "steadfast" })), Constants.BloodMagicBlock.DEMON_STAIRS_3.getRegName()); + DEMON_STAIRS_1 = registerBlock(new ItemBlockEnum(new BlockDemonStairsBase("stairs1", Material.ROCK, EnumSubWillType1.class)), Constants.BloodMagicBlock.DEMON_STAIRS_1.getRegName()); + DEMON_STAIRS_2 = registerBlock(new ItemBlockEnum(new BlockDemonStairsBase("stairs2", Material.ROCK, EnumSubWillType2.class)), Constants.BloodMagicBlock.DEMON_STAIRS_2.getRegName()); + DEMON_STAIRS_3 = registerBlock(new ItemBlockEnum(new BlockDemonStairsBase("stairs3", Material.ROCK, EnumSubWillType3.class)), Constants.BloodMagicBlock.DEMON_STAIRS_3.getRegName()); - INVERSION_PILLAR = registerBlock(new ItemBlockInversionPillar(new BlockInversionPillar()), Constants.BloodMagicBlock.INVERSION_PILLAR.getRegName()); - INVERSION_PILLAR_END = registerBlock(new ItemBlockInversionPillarEnd(new BlockInversionPillarEnd()), Constants.BloodMagicBlock.INVERSION_PILLAR_END.getRegName()); + INVERSION_PILLAR = registerBlock(new ItemBlockEnum(new BlockInversionPillar()), Constants.BloodMagicBlock.INVERSION_PILLAR.getRegName()); + INVERSION_PILLAR_END = registerBlock(new ItemBlockEnum(new BlockInversionPillarEnd()), Constants.BloodMagicBlock.INVERSION_PILLAR_END.getRegName()); } public static void init() diff --git a/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java b/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java index 271c7057..4ca40ab3 100644 --- a/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java +++ b/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java @@ -44,6 +44,7 @@ import WayofTime.bloodmagic.api.registry.OrbRegistry; import WayofTime.bloodmagic.api.registry.TartaricForgeRecipeRegistry; import WayofTime.bloodmagic.api.ritual.EnumRuneType; import WayofTime.bloodmagic.block.BlockBloodRune; +import WayofTime.bloodmagic.block.enums.EnumBloodRune; import WayofTime.bloodmagic.client.render.alchemyArray.AttractorAlchemyCircleRenderer; import WayofTime.bloodmagic.client.render.alchemyArray.BindingAlchemyCircleRenderer; import WayofTime.bloodmagic.client.render.alchemyArray.DualAlchemyCircleRenderer; @@ -156,7 +157,7 @@ public class ModRecipes GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.ALCHEMY_TABLE), "sss", "wbw", "gog", 's', "stone", 'w', "plankWood", 'b', Items.BLAZE_ROD, 'g', "ingotGold", 'o', OrbRegistry.getOrbStack(ModItems.ORB_WEAK))); - for (int i = 1; i < BlockBloodRune.names.length; i++) + for (int i = 1; i < EnumBloodRune.values().length; i++) GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModBlocks.BLOOD_RUNE), new ItemStack(ModBlocks.BLOOD_RUNE, 1, i))); for (int i = 0; i < ItemSoulGem.names.length; i++) diff --git a/src/main/java/WayofTime/bloodmagic/structures/DungeonRoom.java b/src/main/java/WayofTime/bloodmagic/structures/DungeonRoom.java index 04f41737..ed72b577 100644 --- a/src/main/java/WayofTime/bloodmagic/structures/DungeonRoom.java +++ b/src/main/java/WayofTime/bloodmagic/structures/DungeonRoom.java @@ -67,10 +67,7 @@ public class DungeonRoom DungeonStructure structure = new DungeonStructure(location); BlockPos offsetPos = Template.transformedBlockPos(settings, entry.getValue()); - if (structure.placeStructureAtPosition(rand, settings, world, pos.add(offsetPos))) - { - System.out.println(location); - } + structure.placeStructureAtPosition(rand, settings, world, pos.add(offsetPos)); } return true;