Changed most of the BlockString blocks to a BlockEnum in order to solve a loading issue with schematics.
This commit is contained in:
parent
3e0f3f5aa1
commit
5cb5ec4264
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<EnumBloodRune> 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<Pair<Integer, String>> getVariants()
|
||||
{
|
||||
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
|
||||
for (int i = 0; i < names.length; i++)
|
||||
ret.add(new ImmutablePair<Integer, String>(i, "type=" + names[i]));
|
||||
for (int i = 0; i < this.getTypes().length; i++)
|
||||
ret.add(new ImmutablePair<Integer, String>(i, "type=" + this.getTypes()[i]));
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<EnumBrickSize> 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<Pair<Integer, String>> getVariants()
|
||||
{
|
||||
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
|
||||
for (int i = 0; i < names.length; i++)
|
||||
ret.add(new ImmutablePair<Integer, String>(i, "type=" + names[i]));
|
||||
for (int i = 0; i < this.getTypes().length; i++)
|
||||
ret.add(new ImmutablePair<Integer, String>(i, "type=" + this.getTypes()[i]));
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<EnumBrickSize> 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<Pair<Integer, String>> getVariants()
|
||||
{
|
||||
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
|
||||
for (int i = 0; i < names.length; i++)
|
||||
ret.add(new ImmutablePair<Integer, String>(i, "type=" + names[i]));
|
||||
for (int i = 0; i < this.getTypes().length; i++)
|
||||
ret.add(new ImmutablePair<Integer, String>(i, "type=" + this.getTypes()[i]));
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<E extends Enum<E> & IStringSerializable> extends BlockEnum<E> implements IVariantProvider
|
||||
{
|
||||
public final String[] names;
|
||||
|
||||
public BlockDemonBase(String baseName, String[] names)
|
||||
public BlockDemonBase(String baseName, Class<E> 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<Pair<Integer, String>> getVariants()
|
||||
{
|
||||
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
|
||||
for (int i = 0; i < names.length; i++)
|
||||
ret.add(new ImmutablePair<Integer, String>(i, "type=" + names[i]));
|
||||
for (int i = 0; i < this.getTypes().length; i++)
|
||||
ret.add(new ImmutablePair<Integer, String>(i, "type=" + this.getTypes()[i]));
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<EnumSubWillType> 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<Pair<Integer, String>> getVariants()
|
||||
{
|
||||
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
|
||||
for (int i = 0; i < names.length; i++)
|
||||
ret.add(new ImmutablePair<Integer, String>(i, "type=" + names[i]));
|
||||
for (int i = 0; i < this.getTypes().length; i++)
|
||||
ret.add(new ImmutablePair<Integer, String>(i, "type=" + this.getTypes()[i]));
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<E extends Enum<E> & IStringSerializable> extends BlockEnumPillar<E> implements IVariantProvider
|
||||
{
|
||||
public final String[] names;
|
||||
|
||||
public BlockDemonPillarBase(String baseName, Material materialIn, String[] names)
|
||||
public BlockDemonPillarBase(String baseName, Material materialIn, Class<E> 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<Integer, String>(i * 5 + j, "axis=" + axis[i] + ",type=" + names[j]));
|
||||
ret.add(new ImmutablePair<Integer, String>(i * 5 + j, "axis=" + axis[i] + ",type=" + this.getTypes()[j]));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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<E extends Enum<E> & IStringSerializable> extends BlockEnumPillarCap<E> implements IVariantProvider
|
||||
{
|
||||
public final String[] names;
|
||||
|
||||
public BlockDemonPillarCapBase(String baseName, Material materialIn, String[] names)
|
||||
public BlockDemonPillarCapBase(String baseName, Material materialIn, Class<E> 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<Integer, String>(i * 2 + j, "facing=" + EnumFacing.values()[i] + ",type=" + names[j]));
|
||||
ret.add(new ImmutablePair<Integer, String>(i * 2 + j, "facing=" + EnumFacing.values()[i] + ",type=" + this.getTypes()[j]));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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<E extends Enum<E> & IStringSerializable> extends BlockEnumStairs<E> implements IVariantProvider
|
||||
{
|
||||
public final String[] names;
|
||||
|
||||
public BlockDemonStairsBase(String baseName, Material materialIn, String[] names)
|
||||
public BlockDemonStairsBase(String baseName, Material materialIn, Class<E> 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<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
|
||||
|
||||
for (int i = 0; i < names.length; i++)
|
||||
for (int i = 0; i < this.getTypes().length; i++)
|
||||
{
|
||||
ret.add(new ImmutablePair<Integer, String>(i, "facing=south,half=bottom,shape=straight,type=" + names[i]));
|
||||
ret.add(new ImmutablePair<Integer, String>(i, "facing=south,half=bottom,shape=straight,type=" + this.getTypes()[i]));
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
|
|
@ -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<E extends Enum<E> & IStringSerializable> extends BlockEnumWall<E> implements IVariantProvider
|
||||
{
|
||||
public final String[] names;
|
||||
|
||||
public BlockDemonWallBase(String baseName, Material materialIn, String[] names)
|
||||
public BlockDemonWallBase(String baseName, Material materialIn, Class<E> 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<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
|
||||
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -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<EnumSubWillType> 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<Pair<Integer, String>> getVariants()
|
||||
{
|
||||
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
|
||||
for (int i = 0; i < names.length; i++)
|
||||
ret.add(new ImmutablePair<Integer, String>(i, "static=false,type=" + names[i]));
|
||||
for (int i = 0; i < this.getTypes().length; i++)
|
||||
ret.add(new ImmutablePair<Integer, String>(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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<EnumInversionCap> 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<Pair<Integer, String>> getVariants()
|
||||
{
|
||||
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
|
||||
for (int i = 0; i < names.length; i++)
|
||||
ret.add(new ImmutablePair<Integer, String>(i, "type=" + names[i]));
|
||||
for (int i = 0; i < this.getTypes().length; i++)
|
||||
ret.add(new ImmutablePair<Integer, String>(i, "type=" + this.getTypes()[i]));
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<EnumMimic> 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<Pair<Integer, String>> getVariants()
|
||||
{
|
||||
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
|
||||
for (int i = 0; i < names.length; i++)
|
||||
ret.add(new ImmutablePair<Integer, String>(i, "type=" + names[i]));
|
||||
for (int i = 0; i < this.getTypes().length; i++)
|
||||
ret.add(new ImmutablePair<Integer, String>(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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<EnumPath> 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<Pair<Integer, String>> getVariants()
|
||||
{
|
||||
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
|
||||
for (int i = 0; i < names.length; i++)
|
||||
ret.add(new ImmutablePair<Integer, String>(i, "type=" + names[i]));
|
||||
for (int i = 0; i < this.getTypes().length; i++)
|
||||
ret.add(new ImmutablePair<Integer, String>(i, "type=" + this.getTypes()[i]));
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<EnumRitualController> 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<Pair<Integer, String>> getVariants()
|
||||
{
|
||||
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
|
||||
for (int i = 0; i < names.length; i++)
|
||||
ret.add(new ImmutablePair<Integer, String>(i, "type=" + names[i]));
|
||||
for (int i = 0; i < this.getTypes().length; i++)
|
||||
ret.add(new ImmutablePair<Integer, String>(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)
|
||||
|
|
|
@ -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<EnumRuneType> 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<Pair<Integer, String>> getVariants()
|
||||
{
|
||||
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
|
||||
for (int i = 0; i < names.length; i++)
|
||||
ret.add(new ImmutablePair<Integer, String>(i, "type=" + names[i]));
|
||||
for (int i = 0; i < this.getTypes().length; i++)
|
||||
ret.add(new ImmutablePair<Integer, String>(i, "type=" + this.getTypes()[i]));
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,13 +16,14 @@ import net.minecraftforge.fml.relauncher.SideOnly;
|
|||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
public class BlockEnum<E extends Enum<E> & IStringSerializable> extends Block {
|
||||
|
||||
public class BlockEnum<E extends Enum<E> & IStringSerializable> extends Block
|
||||
{
|
||||
private final E[] types;
|
||||
private final PropertyEnum<E> property;
|
||||
private final BlockStateContainer realStateContainer;
|
||||
|
||||
public BlockEnum(Material material, Class<E> enumClass, String propName) {
|
||||
public BlockEnum(Material material, Class<E> enumClass, String propName)
|
||||
{
|
||||
super(material);
|
||||
|
||||
this.types = enumClass.getEnumConstants();
|
||||
|
@ -31,43 +32,51 @@ public class BlockEnum<E extends Enum<E> & IStringSerializable> extends Block {
|
|||
setDefaultState(getBlockState().getBaseState());
|
||||
}
|
||||
|
||||
public BlockEnum(Material material, Class<E> enumClass) {
|
||||
public BlockEnum(Material material, Class<E> 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<ItemStack> subBlocks) {
|
||||
public void getSubBlocks(Item item, CreativeTabs tab, List<ItemStack> 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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<E extends Enum<E> & IStringSerializable> extends BlockEnum<E> implements ITileEntityProvider
|
||||
{
|
||||
public BlockEnumContainer(Material material, Class<E> enumClass, String propName)
|
||||
{
|
||||
super(material, enumClass, propName);
|
||||
|
||||
this.isBlockContainer = true;
|
||||
}
|
||||
|
||||
public BlockEnumContainer(Material material, Class<E> 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);
|
||||
}
|
||||
}
|
|
@ -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<E extends Enum<E> & IStringSerializable> extends BlockEnum<E>
|
||||
{
|
||||
public BlockStringPillar(Material material, String[] values, String propName)
|
||||
public BlockEnumPillar(Material material, Class<E> enumClass, String propName)
|
||||
{
|
||||
super(material, values, propName);
|
||||
super(material, enumClass, propName);
|
||||
}
|
||||
|
||||
public BlockStringPillar(Material material, String[] values)
|
||||
public BlockEnumPillar(Material material, Class<E> 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();
|
||||
}
|
||||
|
|
@ -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<E extends Enum<E> & IStringSerializable> extends BlockEnum<E>
|
||||
{
|
||||
public static final PropertyDirection FACING = PropertyDirection.create("facing");
|
||||
|
||||
public BlockStringPillarCap(Material material, String[] values, String propName)
|
||||
public BlockEnumPillarCap(Material material, Class<E> enumClass, String propName)
|
||||
{
|
||||
super(material, values, propName);
|
||||
super(material, enumClass, propName);
|
||||
}
|
||||
|
||||
public BlockStringPillarCap(Material material, String[] values)
|
||||
public BlockEnumPillarCap(Material material, Class<E> 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();
|
||||
}
|
||||
|
|
@ -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<E extends Enum<E> & IStringSerializable> extends BlockEnum<E>
|
||||
{
|
||||
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<E> enumClass, String propName)
|
||||
{
|
||||
super(material, values, propName);
|
||||
super(material, enumClass, propName);
|
||||
}
|
||||
|
||||
public BlockStringStairs(Material material, String[] values)
|
||||
public BlockEnumStairs(Material material, Class<E> 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
|
|
@ -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<E extends Enum<E> & IStringSerializable> extends BlockEnum<E>
|
||||
{
|
||||
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<E> enumClass, String propName)
|
||||
{
|
||||
super(material, values, propName);
|
||||
super(material, enumClass, propName);
|
||||
}
|
||||
|
||||
public BlockStringWall(Material material, String[] values)
|
||||
public BlockEnumWall(Material material, Class<E> 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();
|
||||
}
|
||||
|
|
@ -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<ItemStack> subBlocks) {
|
||||
public void getSubBlocks(Item item, CreativeTabs tab, List<ItemStack> 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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
29
src/main/java/WayofTime/bloodmagic/block/enums/EnumPath.java
Normal file
29
src/main/java/WayofTime/bloodmagic/block/enums/EnumPath.java
Normal file
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -6,9 +6,11 @@ import net.minecraft.item.ItemStack;
|
|||
import net.minecraft.util.IStringSerializable;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
|
||||
public class ItemBlockEnum<E extends Enum<E> & IStringSerializable> extends ItemBlock {
|
||||
public class ItemBlockEnum<E extends Enum<E> & IStringSerializable> extends ItemBlock
|
||||
{
|
||||
|
||||
public ItemBlockEnum(BlockEnum<E> block) {
|
||||
public ItemBlockEnum(BlockEnum<E> block)
|
||||
{
|
||||
super(block);
|
||||
|
||||
if (block.getTypes().length > 1)
|
||||
|
@ -17,17 +19,20 @@ public class ItemBlockEnum<E extends Enum<E> & IStringSerializable> extends Item
|
|||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public BlockEnum<E> getBlock() {
|
||||
public BlockEnum<E> getBlock()
|
||||
{
|
||||
return (BlockEnum<E>) 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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<EnumBloodRune>(new BlockBloodRune()), Constants.BloodMagicBlock.BLOOD_RUNE.getRegName());
|
||||
RITUAL_CONTROLLER = registerBlock(new ItemBlockEnum<EnumRitualController>(new BlockRitualController()), Constants.BloodMagicBlock.RITUAL_CONTROLLER.getRegName());
|
||||
RITUAL_STONE = registerBlock(new ItemBlockEnum<EnumRuneType>(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<EnumBrickSize>(new BlockCrystal()), Constants.BloodMagicBlock.CRYSTAL.getRegName());
|
||||
BLOOD_STONE = registerBlock(new ItemBlockEnum<EnumBrickSize>(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<EnumPath>(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<EnumMimic>(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<EnumDemonBlock1>(new BlockDemonBase<EnumDemonBlock1>("bricks1", EnumDemonBlock1.class)), Constants.BloodMagicBlock.DEMON_BRICK_1.getRegName());
|
||||
DEMON_BRICK_2 = registerBlock(new ItemBlockEnum<EnumDemonBlock2>(new BlockDemonBase<EnumDemonBlock2>("bricks2", EnumDemonBlock2.class)), Constants.BloodMagicBlock.DEMON_BRICK_2.getRegName());
|
||||
DEMON_EXTRAS = registerBlock(new ItemBlockEnum<EnumDemonBlock3>(new BlockDemonBase<EnumDemonBlock3>("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<EnumSubWillType>(new BlockDemonPillarBase<EnumSubWillType>("pillar1", Material.ROCK, EnumSubWillType.class)), Constants.BloodMagicBlock.DEMON_PILLAR_1.getRegName());
|
||||
DEMON_PILLAR_2 = registerBlock(new ItemBlockEnum<EnumSubWillType>(new BlockDemonPillarBase<EnumSubWillType>("pillar2", Material.ROCK, EnumSubWillType.class)), Constants.BloodMagicBlock.DEMON_PILLAR_2.getRegName());
|
||||
DEMON_PILLAR_CAP_1 = registerBlock(new ItemBlockEnum<EnumSubWillType1>(new BlockDemonPillarCapBase<EnumSubWillType1>("pillarCap1", Material.ROCK, EnumSubWillType1.class)), Constants.BloodMagicBlock.DEMON_PILLAR_CAP_1.getRegName());
|
||||
DEMON_PILLAR_CAP_2 = registerBlock(new ItemBlockEnum<EnumSubWillType2>(new BlockDemonPillarCapBase<EnumSubWillType2>("pillarCap2", Material.ROCK, EnumSubWillType2.class)), Constants.BloodMagicBlock.DEMON_PILLAR_CAP_2.getRegName());
|
||||
DEMON_PILLAR_CAP_3 = registerBlock(new ItemBlockEnum<EnumSubWillType3>(new BlockDemonPillarCapBase<EnumSubWillType3>("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<EnumSubWillType>(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<EnumWillWall>(new BlockDemonWallBase<EnumWillWall>("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<EnumSubWillType1>(new BlockDemonStairsBase<EnumSubWillType1>("stairs1", Material.ROCK, EnumSubWillType1.class)), Constants.BloodMagicBlock.DEMON_STAIRS_1.getRegName());
|
||||
DEMON_STAIRS_2 = registerBlock(new ItemBlockEnum<EnumSubWillType2>(new BlockDemonStairsBase<EnumSubWillType2>("stairs2", Material.ROCK, EnumSubWillType2.class)), Constants.BloodMagicBlock.DEMON_STAIRS_2.getRegName());
|
||||
DEMON_STAIRS_3 = registerBlock(new ItemBlockEnum<EnumSubWillType3>(new BlockDemonStairsBase<EnumSubWillType3>("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<EnumSubWillType>(new BlockInversionPillar()), Constants.BloodMagicBlock.INVERSION_PILLAR.getRegName());
|
||||
INVERSION_PILLAR_END = registerBlock(new ItemBlockEnum<EnumInversionCap>(new BlockInversionPillarEnd()), Constants.BloodMagicBlock.INVERSION_PILLAR_END.getRegName());
|
||||
}
|
||||
|
||||
public static void init()
|
||||
|
|
|
@ -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++)
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue