this doesn't compile yet, but have something to peek at

This commit is contained in:
Nicholas Ignoffo 2017-08-14 20:53:42 -07:00
parent 973f1019a5
commit 5fcdd978d7
329 changed files with 3247 additions and 2953 deletions

View file

@ -3,12 +3,11 @@ package WayofTime.bloodmagic.block;
import java.util.List;
import java.util.Random;
import WayofTime.bloodmagic.BloodMagic;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
@ -23,8 +22,7 @@ import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.registry.ModItems;
import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
import WayofTime.bloodmagic.tile.TileAlchemyArray;
import WayofTime.bloodmagic.util.Utils;
@ -38,13 +36,12 @@ public class BlockAlchemyArray extends Block
{
super(Material.CLOTH);
setUnlocalizedName(Constants.Mod.MODID + ".alchemyArray");
setUnlocalizedName(BloodMagic.MODID + ".alchemyArray");
setHardness(0.1f);
}
@Override
public void addCollisionBoxToList(IBlockState state, World worldIn, BlockPos pos, AxisAlignedBB mask, List<AxisAlignedBB> list, Entity collidingEntity)
{
public void addCollisionBoxToList(IBlockState state, World worldIn, BlockPos pos, AxisAlignedBB entityBox, List<AxisAlignedBB> collidingBoxes, @Nullable Entity entityIn, boolean p_185477_7_) {
// No-op
}
@ -134,7 +131,7 @@ public class BlockAlchemyArray extends Block
@Override
public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player)
{
return new ItemStack(ModItems.ARCANE_ASHES);
return new ItemStack(RegistrarBloodMagicItems.ARCANE_ASHES);
}
@Override

View file

@ -1,15 +1,14 @@
package WayofTime.bloodmagic.block;
import WayofTime.bloodmagic.item.block.ItemBlockAlchemyTable;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyBool;
import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemBlock;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.EnumBlockRenderType;
@ -24,7 +23,7 @@ import WayofTime.bloodmagic.tile.TileAlchemyTable;
import javax.annotation.Nullable;
public class BlockAlchemyTable extends Block
public class BlockAlchemyTable extends Block implements IBMBlock
{
public static final PropertyBool INVISIBLE = PropertyBool.create("invisible");
public static final PropertyEnum<EnumFacing> DIRECTION = PropertyEnum.<EnumFacing>create("direction", EnumFacing.class);
@ -34,8 +33,8 @@ public class BlockAlchemyTable extends Block
super(Material.ROCK);
// this.setDefaultState(this.blockState.getBaseState().withProperty(DIRECTION, EnumFacing.DOWN).withProperty(INVISIBLE, false));
setUnlocalizedName(Constants.Mod.MODID + ".alchemyTable");
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(BloodMagic.MODID + ".alchemyTable");
setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F);
setResistance(5.0F);
setHarvestLevel("pickaxe", 0);
@ -173,4 +172,9 @@ public class BlockAlchemyTable extends Block
}
}
}
@Override
public ItemBlock getItem() {
return new ItemBlockAlchemyTable(this);
}
}

View file

@ -26,7 +26,6 @@ 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.api.altar.IAltarManipulator;
import WayofTime.bloodmagic.api.iface.IAltarReader;
import WayofTime.bloodmagic.api.iface.IBindable;
@ -47,8 +46,8 @@ public class BlockAltar extends Block implements IVariantProvider, IDocumentedBl
{
super(Material.ROCK);
setUnlocalizedName(Constants.Mod.MODID + ".altar");
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(BloodMagic.MODID + ".altar");
setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F);
setResistance(5.0F);
setHarvestLevel("pickaxe", 1);
@ -73,7 +72,7 @@ public class BlockAltar extends Block implements IVariantProvider, IDocumentedBl
TileAltar altar = (TileAltar) tile;
ItemStack orbStack = altar.getStackInSlot(0);
if (world.getBlockState(pos.down()).getBlock() instanceof BlockBloodStoneBrick)
if (world.getBlockState(pos.down()).getBlock() instanceof BlockDecorative)
{
if (orbStack.getItem() instanceof IBloodOrb && orbStack.getItem() instanceof IBindable)
{

View file

@ -2,6 +2,7 @@ package WayofTime.bloodmagic.block;
import java.util.Random;
import WayofTime.bloodmagic.BloodMagic;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
@ -16,8 +17,7 @@ import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.registry.ModItems;
import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
import javax.annotation.Nullable;
@ -29,7 +29,7 @@ public class BlockBloodLight extends Block
{
super(Material.CLOTH);
setUnlocalizedName(Constants.Mod.MODID + ".bloodLight");
setUnlocalizedName(BloodMagic.MODID + ".bloodLight");
}
@Nullable
@ -109,7 +109,7 @@ public class BlockBloodLight extends Block
if (rand.nextInt(3) != 0)
{
world.spawnParticle(EnumParticleTypes.REDSTONE, pos.getX() + 0.5D + rand.nextGaussian() / 8, pos.getY() + 0.5D, pos.getZ() + 0.5D + rand.nextGaussian() / 8, 0, 0, 0, 0);
if (!playerSP.getActiveItemStack().isEmpty() && playerSP.getActiveItemStack().getItem() == ModItems.SIGIL_BLOOD_LIGHT)
if (!playerSP.getActiveItemStack().isEmpty() && playerSP.getActiveItemStack().getItem() == RegistrarBloodMagicItems.SIGIL_BLOOD_LIGHT)
{
world.spawnParticle(EnumParticleTypes.REDSTONE, pos.getX() + 0.5D + rand.nextGaussian() / 8, pos.getY() + 0.5D, pos.getZ() + 0.5D + rand.nextGaussian() / 8, 0, 0, 0, 0);
world.spawnParticle(EnumParticleTypes.REDSTONE, pos.getX() + 0.5D + rand.nextGaussian() / 8, pos.getY() + 0.5D, pos.getZ() + 0.5D + rand.nextGaussian() / 8, 0, 0, 0, 0);

View file

@ -5,27 +5,28 @@ import java.util.List;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
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 class BlockBloodRune extends BlockEnum<EnumBloodRune>
{
public BlockBloodRune()
{
super(Material.ROCK, EnumBloodRune.class);
setUnlocalizedName(Constants.Mod.MODID + ".rune.");
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(BloodMagic.MODID + ".rune.");
setCreativeTab(BloodMagic.TAB_BM);
setSoundType(SoundType.STONE);
setHardness(2.0F);
setResistance(5.0F);
@ -38,18 +39,9 @@ public class BlockBloodRune extends BlockEnum<EnumBloodRune> implements IVariant
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List<String> tooltip, boolean advanced)
public void addInformation(ItemStack stack, World world, List<String> tooltip, ITooltipFlag tooltipFlag)
{
tooltip.add(TextHelper.localizeEffect("tooltip.bloodmagic.decoration.safe"));
super.addInformation(stack, player, tooltip, advanced);
}
@Override
public List<Pair<Integer, String>> getVariants()
{
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
for (int i = 0; i < this.getTypes().length; i++)
ret.add(new ImmutablePair<Integer, String>(i, "type=" + this.getTypes()[i]));
return ret;
super.addInformation(stack, world, tooltip, tooltipFlag);
}
}

View file

@ -1,40 +0,0 @@
package WayofTime.bloodmagic.block;
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 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 BlockEnum<EnumBrickSize> implements IVariantProvider
{
public BlockBloodStoneBrick()
{
super(Material.ROCK, EnumBrickSize.class);
setUnlocalizedName(Constants.Mod.MODID + ".bloodstonebrick.");
setCreativeTab(BloodMagic.tabBloodMagic);
setHardness(2.0F);
setResistance(5.0F);
setSoundType(SoundType.STONE);
setHarvestLevel("pickaxe", 2);
}
@Override
public List<Pair<Integer, String>> getVariants()
{
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
for (int i = 0; i < this.getTypes().length; i++)
ret.add(new ImmutablePair<Integer, String>(i, "type=" + this.getTypes()[i]));
return ret;
}
}

View file

@ -1,9 +1,9 @@
package WayofTime.bloodmagic.block;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.block.base.BlockInteger;
import WayofTime.bloodmagic.client.IVariantProvider;
import WayofTime.bloodmagic.item.block.ItemBlockBloodTank;
import WayofTime.bloodmagic.tile.TileBloodTank;
import com.google.common.collect.Lists;
import net.minecraft.block.SoundType;
@ -11,6 +11,7 @@ import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
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;
@ -31,12 +32,11 @@ import net.minecraftforge.fml.relauncher.SideOnly;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.List;
public class BlockBloodTank extends BlockInteger implements IVariantProvider
public class BlockBloodTank extends BlockInteger implements IVariantProvider, IBMBlock
{
public static final AxisAlignedBB BOX = new AxisAlignedBB(0.25, 0, 0.25, 0.75, 0.8, 0.75);
@ -44,12 +44,12 @@ public class BlockBloodTank extends BlockInteger implements IVariantProvider
{
super(Material.IRON, TileBloodTank.CAPACITIES.length - 1, "tier");
setUnlocalizedName(Constants.Mod.MODID + ".bloodTank");
setUnlocalizedName(BloodMagic.MODID + ".bloodTank");
setHardness(2.0F);
setResistance(5.0F);
setSoundType(SoundType.GLASS);
setHarvestLevel("pickaxe", 1);
setCreativeTab(BloodMagic.tabBloodMagic);
setCreativeTab(BloodMagic.TAB_BM);
setLightOpacity(0);
}
@ -105,12 +105,9 @@ public class BlockBloodTank extends BlockInteger implements IVariantProvider
@Override
public boolean onBlockActivated(World world, BlockPos blockPos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ)
{
ItemStack held = player.getHeldItem(hand);
TileBloodTank fluidHandler = (TileBloodTank) world.getTileEntity(blockPos);
FluidActionResult result = FluidUtil.interactWithFluidHandler(held, fluidHandler.getTank(), player);
if (result.isSuccess())
boolean success = FluidUtil.interactWithFluidHandler(player, hand, world, blockPos, side);
if (success)
{
player.setHeldItem(hand, result.getResult());
world.checkLight(blockPos);
world.updateComparatorOutputLevel(blockPos, this);
world.markAndNotifyBlock(blockPos, world.getChunkFromBlockCoords(blockPos), state, state, 3);
@ -216,14 +213,19 @@ public class BlockBloodTank extends BlockInteger implements IVariantProvider
return true;
}
@Override
public ItemBlock getItem() {
return new ItemBlockBloodTank(this);
}
// IVariantProvider
@Override
public List<Pair<Integer, String>> getVariants()
{
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
List<Pair<Integer, String>> ret = Lists.newArrayList();
for (int i = 0; i < TileBloodTank.CAPACITIES.length; i++)
ret.add(new ImmutablePair<Integer, String>(i, "inventory"));
ret.add(Pair.of(i, "inventory"));
return ret;
}

View file

@ -1,40 +0,0 @@
package WayofTime.bloodmagic.block;
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 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 BlockEnum<EnumBrickSize> implements IVariantProvider
{
public BlockCrystal()
{
super(Material.ROCK, EnumBrickSize.class);
setUnlocalizedName(Constants.Mod.MODID + ".crystal.");
setCreativeTab(BloodMagic.tabBloodMagic);
setSoundType(SoundType.STONE);
setHardness(2.0F);
setResistance(5.0F);
setHarvestLevel("pickaxe", 2);
}
@Override
public List<Pair<Integer, String>> getVariants()
{
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
for (int i = 0; i < this.getTypes().length; i++)
ret.add(new ImmutablePair<Integer, String>(i, "type=" + this.getTypes()[i]));
return ret;
}
}

View file

@ -0,0 +1,23 @@
package WayofTime.bloodmagic.block;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.block.base.BlockEnum;
import WayofTime.bloodmagic.block.enums.EnumDecorative;
public class BlockDecorative extends BlockEnum<EnumDecorative>
{
public BlockDecorative()
{
super(Material.ROCK, EnumDecorative.class);
setUnlocalizedName(BloodMagic.MODID + ".");
setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F);
setResistance(5.0F);
setSoundType(SoundType.STONE);
setHarvestLevel("pickaxe", 2);
}
}

View file

@ -1,17 +1,15 @@
package WayofTime.bloodmagic.block;
import java.util.ArrayList;
import java.util.List;
import com.google.common.collect.Lists;
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.BlockEnum;
import WayofTime.bloodmagic.client.IVariantProvider;
@ -21,20 +19,11 @@ public class BlockDemonBase<E extends Enum<E> & IStringSerializable> extends Blo
{
super(Material.ROCK, enumClass);
setUnlocalizedName(Constants.Mod.MODID + "." + baseName + ".");
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(BloodMagic.MODID + "." + baseName + ".");
setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F);
setResistance(5.0F);
setSoundType(SoundType.STONE);
setHarvestLevel("pickaxe", 2);
}
@Override
public List<Pair<Integer, String>> getVariants()
{
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
for (int i = 0; i < this.getTypes().length; i++)
ret.add(new ImmutablePair<Integer, String>(i, "type=" + this.getTypes()[i]));
return ret;
}
}

View file

@ -4,7 +4,6 @@ import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer;
@ -21,7 +20,6 @@ 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.api.soul.IDemonWillGem;
import WayofTime.bloodmagic.api.soul.IDiscreteDemonWill;
import WayofTime.bloodmagic.client.IVariantProvider;
@ -36,8 +34,8 @@ public class BlockDemonCrucible extends Block implements IVariantProvider
{
super(Material.ROCK);
setUnlocalizedName(Constants.Mod.MODID + ".demonCrucible");
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(BloodMagic.MODID + ".demonCrucible");
setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F);
setResistance(5.0F);
setHarvestLevel("pickaxe", 0);

View file

@ -1,12 +1,10 @@
package WayofTime.bloodmagic.block;
import java.util.List;
import java.util.Random;
import WayofTime.bloodmagic.item.block.ItemBlockDemonCrystal;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.properties.PropertyInteger;
import net.minecraft.block.state.BlockStateContainer;
@ -14,6 +12,7 @@ import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumBlockRenderType;
@ -26,7 +25,6 @@ import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.soul.EnumDemonWillType;
import WayofTime.bloodmagic.api.soul.PlayerDemonWillHandler;
import WayofTime.bloodmagic.item.ItemDemonCrystal;
@ -34,7 +32,7 @@ import WayofTime.bloodmagic.tile.TileDemonCrystal;
import javax.annotation.Nullable;
public class BlockDemonCrystal extends Block
public class BlockDemonCrystal extends Block implements IBMBlock
{
public static final PropertyInteger AGE = PropertyInteger.create("age", 0, 6);
public static final PropertyEnum<EnumDemonWillType> TYPE = PropertyEnum.<EnumDemonWillType>create("type", EnumDemonWillType.class);
@ -45,8 +43,8 @@ public class BlockDemonCrystal extends Block
super(Material.ROCK);
this.setDefaultState(this.blockState.getBaseState().withProperty(TYPE, EnumDemonWillType.DEFAULT).withProperty(ATTACHED, EnumFacing.UP));
setUnlocalizedName(Constants.Mod.MODID + ".demonCrystal.");
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(BloodMagic.MODID + ".demonCrystal.");
setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F);
setResistance(5.0F);
setHarvestLevel("pickaxe", 2);
@ -89,8 +87,7 @@ public class BlockDemonCrystal extends Block
}
@Override
@SideOnly(Side.CLIENT)
public void getSubBlocks(Item item, CreativeTabs creativeTabs, NonNullList<ItemStack> list)
public void getSubBlocks(CreativeTabs creativeTabs, NonNullList<ItemStack> list)
{
for (int i = 0; i < EnumDemonWillType.values().length; i++)
list.add(new ItemStack(this, 1, i));
@ -233,6 +230,11 @@ public class BlockDemonCrystal extends Block
return new TileDemonCrystal();
}
@Override
public ItemBlock getItem() {
return new ItemBlockDemonCrystal(this);
}
// @Override
// public java.util.List<ItemStack> getDrops(net.minecraft.world.IBlockAccess world, BlockPos pos, IBlockState state, int fortune)
// {

View file

@ -17,7 +17,6 @@ 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.client.IVariantProvider;
import WayofTime.bloodmagic.tile.TileDemonCrystallizer;
@ -27,8 +26,8 @@ public class BlockDemonCrystallizer extends BlockContainer implements IVariantPr
{
super(Material.ROCK);
setUnlocalizedName(Constants.Mod.MODID + ".demonCrystallizer");
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(BloodMagic.MODID + ".demonCrystallizer");
setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F);
setResistance(5.0F);
setHarvestLevel("pickaxe", 0);

View file

@ -10,32 +10,22 @@ 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.EnumSubWillType;
import WayofTime.bloodmagic.client.IVariantProvider;
public class BlockDemonLight extends BlockEnum<EnumSubWillType> implements IVariantProvider
public class BlockDemonLight extends BlockEnum<EnumSubWillType>
{
public BlockDemonLight()
{
super(Material.ROCK, EnumSubWillType.class);
setUnlocalizedName(Constants.Mod.MODID + ".demonlight.");
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(BloodMagic.MODID + ".demonlight.");
setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F);
setResistance(5.0F);
setSoundType(SoundType.STONE);
setHarvestLevel("pickaxe", 2);
setLightLevel(1);
}
@Override
public List<Pair<Integer, String>> getVariants()
{
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
for (int i = 0; i < this.getTypes().length; i++)
ret.add(new ImmutablePair<Integer, String>(i, "type=" + this.getTypes()[i]));
return ret;
}
}

View file

@ -1,29 +1,26 @@
package WayofTime.bloodmagic.block;
import java.util.ArrayList;
import java.util.List;
import com.google.common.collect.Lists;
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.BlockEnumPillar;
import WayofTime.bloodmagic.client.IVariantProvider;
public class BlockDemonPillarBase<E extends Enum<E> & IStringSerializable> extends BlockEnumPillar<E> implements IVariantProvider
public class BlockDemonPillarBase<E extends Enum<E> & IStringSerializable> extends BlockEnumPillar<E>
{
public BlockDemonPillarBase(String baseName, Material materialIn, Class<E> enumClass)
{
super(materialIn, enumClass);
setUnlocalizedName(Constants.Mod.MODID + "." + baseName + ".");
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(BloodMagic.MODID + "." + baseName + ".");
setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F);
setResistance(5.0F);
setSoundType(SoundType.STONE);
@ -33,18 +30,14 @@ public class BlockDemonPillarBase<E extends Enum<E> & IStringSerializable> exten
@Override
public List<Pair<Integer, String>> getVariants()
{
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
List<Pair<Integer, String>> ret = Lists.newArrayList();
//This is done to make the ItemBlocks have the proper model
EnumFacing.Axis[] axis = new EnumFacing.Axis[] { EnumFacing.Axis.Y, EnumFacing.Axis.X, EnumFacing.Axis.Z };
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < this.getTypes().length; j++)
{
ret.add(new ImmutablePair<Integer, String>(i * 5 + j, "axis=" + axis[i] + ",type=" + this.getTypes()[j]));
}
}
ret.add(Pair.of(i * 5 + j, "axis=" + axis[i] + ",type=" + this.getTypes()[j]));
return ret;
}

View file

@ -1,29 +1,26 @@
package WayofTime.bloodmagic.block;
import java.util.ArrayList;
import java.util.List;
import com.google.common.collect.Lists;
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.BlockEnumPillarCap;
import WayofTime.bloodmagic.client.IVariantProvider;
public class BlockDemonPillarCapBase<E extends Enum<E> & IStringSerializable> extends BlockEnumPillarCap<E> implements IVariantProvider
public class BlockDemonPillarCapBase<E extends Enum<E> & IStringSerializable> extends BlockEnumPillarCap<E>
{
public BlockDemonPillarCapBase(String baseName, Material materialIn, Class<E> enumClass)
{
super(materialIn, enumClass);
setUnlocalizedName(Constants.Mod.MODID + "." + baseName + ".");
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(BloodMagic.MODID + "." + baseName + ".");
setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F);
setResistance(5.0F);
setSoundType(SoundType.STONE);
@ -33,17 +30,13 @@ public class BlockDemonPillarCapBase<E extends Enum<E> & IStringSerializable> ex
@Override
public List<Pair<Integer, String>> getVariants()
{
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
List<Pair<Integer, String>> ret = Lists.newArrayList();
//This is done to make the ItemBlocks have the proper model
for (int i = 0; i < EnumFacing.values().length; i++)
{
for (int j = 0; j < this.getTypes().length; j++)
{
ret.add(new ImmutablePair<Integer, String>(i * 2 + j, "facing=" + EnumFacing.values()[i] + ",type=" + this.getTypes()[j]));
}
}
ret.add(Pair.of(i * 2 + j, "facing=" + EnumFacing.values()[i] + ",type=" + this.getTypes()[j]));
return ret;
}

View file

@ -16,7 +16,6 @@ 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.client.IVariantProvider;
import WayofTime.bloodmagic.tile.TileDemonPylon;
@ -26,8 +25,8 @@ public class BlockDemonPylon extends BlockContainer implements IVariantProvider
{
super(Material.ROCK);
setUnlocalizedName(Constants.Mod.MODID + ".demonPylon");
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(BloodMagic.MODID + ".demonPylon");
setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F);
setResistance(5.0F);
setHarvestLevel("pickaxe", 0);

View file

@ -3,6 +3,7 @@ package WayofTime.bloodmagic.block;
import java.util.ArrayList;
import java.util.List;
import com.google.common.collect.Lists;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
import net.minecraft.util.IStringSerializable;
@ -11,18 +12,17 @@ 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.BlockEnumStairs;
import WayofTime.bloodmagic.client.IVariantProvider;
public class BlockDemonStairsBase<E extends Enum<E> & IStringSerializable> extends BlockEnumStairs<E> implements IVariantProvider
public class BlockDemonStairsBase<E extends Enum<E> & IStringSerializable> extends BlockEnumStairs<E>
{
public BlockDemonStairsBase(String baseName, Material materialIn, Class<E> enumClass)
{
super(materialIn, enumClass);
setUnlocalizedName(Constants.Mod.MODID + "." + baseName + ".");
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(BloodMagic.MODID + "." + baseName + ".");
setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F);
setResistance(5.0F);
setSoundType(SoundType.STONE);
@ -32,12 +32,10 @@ public class BlockDemonStairsBase<E extends Enum<E> & IStringSerializable> exten
@Override
public List<Pair<Integer, String>> getVariants()
{
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
List<Pair<Integer, String>> ret = Lists.newArrayList();
for (int i = 0; i < this.getTypes().length; i++)
{
ret.add(new ImmutablePair<Integer, String>(i, "facing=south,half=bottom,shape=straight,type=" + this.getTypes()[i]));
}
ret.add(Pair.of(i, "facing=south,half=bottom,shape=straight,type=" + this.getTypes()[i]));
return ret;
}

View file

@ -3,6 +3,7 @@ package WayofTime.bloodmagic.block;
import java.util.ArrayList;
import java.util.List;
import com.google.common.collect.Lists;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
import net.minecraft.util.IStringSerializable;
@ -10,18 +11,17 @@ 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.BlockEnumWall;
import WayofTime.bloodmagic.client.IVariantProvider;
public class BlockDemonWallBase<E extends Enum<E> & IStringSerializable> extends BlockEnumWall<E> implements IVariantProvider
public class BlockDemonWallBase<E extends Enum<E> & IStringSerializable> extends BlockEnumWall<E>
{
public BlockDemonWallBase(String baseName, Material materialIn, Class<E> enumClass)
{
super(materialIn, enumClass);
setUnlocalizedName(Constants.Mod.MODID + "." + baseName + ".");
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(BloodMagic.MODID + "." + baseName + ".");
setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F);
setResistance(5.0F);
setSoundType(SoundType.STONE);
@ -31,7 +31,7 @@ public class BlockDemonWallBase<E extends Enum<E> & IStringSerializable> extends
@Override
public List<Pair<Integer, String>> getVariants()
{
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
List<Pair<Integer, String>> ret = Lists.newArrayList();
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"));

View file

@ -3,6 +3,7 @@ package WayofTime.bloodmagic.block;
import java.util.ArrayList;
import java.util.Random;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.block.base.BlockInteger;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
@ -16,7 +17,6 @@ import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
import WayofTime.bloodmagic.api.teleport.PortalLocation;
import WayofTime.bloodmagic.api.teleport.TeleportQueue;
@ -35,7 +35,7 @@ public class BlockDimensionalPortal extends BlockInteger
public BlockDimensionalPortal()
{
super(Material.PORTAL, 2);
setUnlocalizedName(Constants.Mod.MODID + ".dimensionalPortal");
setUnlocalizedName(BloodMagic.MODID + ".dimensionalPortal");
setBlockUnbreakable();
setResistance(2000);
setLightOpacity(0);

View file

@ -4,7 +4,6 @@ import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.tileentity.TileEntity;
@ -18,7 +17,6 @@ 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.client.IVariantProvider;
import WayofTime.bloodmagic.tile.TileIncenseAltar;
@ -32,8 +30,8 @@ public class BlockIncenseAltar extends Block implements IVariantProvider
{
super(Material.ROCK);
setUnlocalizedName(Constants.Mod.MODID + ".incenseAltar");
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(BloodMagic.MODID + ".incenseAltar");
setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F);
setResistance(5.0F);
setHarvestLevel("pickaxe", 0);

View file

@ -2,7 +2,6 @@ package WayofTime.bloodmagic.block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
@ -20,7 +19,7 @@ public class BlockInputRoutingNode extends BlockRoutingNode
{
super();
setUnlocalizedName(Constants.Mod.MODID + ".inputRouting");
setUnlocalizedName(BloodMagic.MODID + ".inputRouting");
}
@Override

View file

@ -19,19 +19,18 @@ 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.enums.EnumSubWillType;
import WayofTime.bloodmagic.client.IVariantProvider;
import WayofTime.bloodmagic.tile.TileInversionPillar;
public class BlockInversionPillar extends BlockEnum<EnumSubWillType> implements IVariantProvider
public class BlockInversionPillar extends BlockEnum<EnumSubWillType>
{
public BlockInversionPillar()
{
super(Material.ROCK, EnumSubWillType.class);
setUnlocalizedName(Constants.Mod.MODID + ".inversionpillar.");
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(BloodMagic.MODID + ".inversionpillar.");
setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F);
setResistance(5.0F);
setSoundType(SoundType.STONE);
@ -92,7 +91,7 @@ public class BlockInversionPillar extends BlockEnum<EnumSubWillType> implements
{
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
for (int i = 0; i < this.getTypes().length; i++)
ret.add(new ImmutablePair<Integer, String>(i, "static=false,type=" + this.getTypes()[i]));
ret.add(Pair.of(i, "static=false,type=" + this.getTypes()[i]));
return ret;
}

View file

@ -14,7 +14,6 @@ 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.EnumInversionCap;
import WayofTime.bloodmagic.client.IVariantProvider;
@ -25,8 +24,8 @@ public class BlockInversionPillarEnd extends BlockEnum<EnumInversionCap> impleme
{
super(Material.ROCK, EnumInversionCap.class);
setUnlocalizedName(Constants.Mod.MODID + ".inversionpillarend.");
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(BloodMagic.MODID + ".inversionpillarend.");
setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F);
setResistance(5.0F);
setSoundType(SoundType.STONE);

View file

@ -1,10 +1,10 @@
package WayofTime.bloodmagic.block;
import WayofTime.bloodmagic.BloodMagic;
import net.minecraft.block.state.IBlockState;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.tile.routing.TileItemRoutingNode;
import WayofTime.bloodmagic.tile.routing.TileRoutingNode;
@ -16,7 +16,7 @@ public class BlockItemRoutingNode extends BlockRoutingNode
{
super();
setUnlocalizedName(Constants.Mod.MODID + ".itemRouting");
setUnlocalizedName(BloodMagic.MODID + ".itemRouting");
}
@Override

View file

@ -2,9 +2,8 @@ package WayofTime.bloodmagic.block;
import java.awt.Color;
import lombok.Getter;
import WayofTime.bloodmagic.BloodMagic;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
@ -19,16 +18,15 @@ import WayofTime.bloodmagic.util.helper.TextHelper;
public class BlockLifeEssence extends BlockFluidClassic
{
@Getter
private static Fluid lifeEssence = new FluidLifeEssence();
private static final Fluid LIFE_ESSENCE = new FluidLifeEssence();
public BlockLifeEssence()
{
super(lifeEssence, Material.WATER);
super(LIFE_ESSENCE, Material.WATER);
setUnlocalizedName(Constants.Mod.MODID + ".fluid.lifeEssence");
setUnlocalizedName(BloodMagic.MODID + ".fluid.lifeEssence");
getLifeEssence().setBlock(this);
BloodMagicAPI.setLifeEssence(getLifeEssence());
BloodMagicAPI.lifeEssence = LIFE_ESSENCE;
}
@Override
@ -43,6 +41,10 @@ public class BlockLifeEssence extends BlockFluidClassic
return !world.getBlockState(blockPos).getBlock().getMaterial(world.getBlockState(blockPos)).isLiquid() && super.displaceIfPossible(world, blockPos);
}
public static Fluid getLifeEssence() {
return LIFE_ESSENCE;
}
@Override
public BlockRenderLayer getBlockLayer()
{

View file

@ -4,7 +4,6 @@ import net.minecraft.block.state.IBlockState;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.tile.routing.TileMasterRoutingNode;
import javax.annotation.Nullable;
@ -15,8 +14,8 @@ public class BlockMasterRoutingNode extends BlockRoutingNode
{
super();
setUnlocalizedName(Constants.Mod.MODID + ".masterRouting");
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(BloodMagic.MODID + ".masterRouting");
setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F);
setResistance(5.0F);
setHarvestLevel("pickaxe", 2);

View file

@ -1,8 +1,5 @@
package WayofTime.bloodmagic.block;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Nullable;
import WayofTime.bloodmagic.block.base.BlockEnum;
@ -26,20 +23,15 @@ import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
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.api.altar.EnumAltarComponent;
import WayofTime.bloodmagic.api.altar.IAltarComponent;
import WayofTime.bloodmagic.block.enums.EnumMimic;
import WayofTime.bloodmagic.client.IVariantProvider;
import WayofTime.bloodmagic.registry.ModBlocks;
import WayofTime.bloodmagic.registry.RegistrarBloodMagicBlocks;
import WayofTime.bloodmagic.tile.TileMimic;
import WayofTime.bloodmagic.util.Utils;
public class BlockMimic extends BlockEnum<EnumMimic> implements IVariantProvider, IAltarComponent
public class BlockMimic extends BlockEnum<EnumMimic> implements IAltarComponent
{
public static final int sentientMimicMeta = 4;
@ -47,8 +39,8 @@ public class BlockMimic extends BlockEnum<EnumMimic> implements IVariantProvider
{
super(Material.ROCK, EnumMimic.class);
setUnlocalizedName(Constants.Mod.MODID + ".mimic.");
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(BloodMagic.MODID + ".mimic.");
setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F);
setResistance(5.0F);
setSoundType(SoundType.STONE);
@ -171,7 +163,7 @@ public class BlockMimic extends BlockEnum<EnumMimic> implements IVariantProvider
{
if (block.getRenderType(mimicState) == EnumBlockRenderType.ENTITYBLOCK_ANIMATED)
{
return ModBlocks.BLOOD_LIGHT.getDefaultState(); //Small and invisible-ish, basically this is returned in order to not render over the animated block (TESR)
return RegistrarBloodMagicBlocks.BLOOD_LIGHT.getDefaultState(); //Small and invisible-ish, basically this is returned in order to not render over the animated block (TESR)
}
return block.getActualState(mimicState, world, pos);
@ -225,15 +217,6 @@ public class BlockMimic extends BlockEnum<EnumMimic> implements IVariantProvider
super.breakBlock(world, blockPos, blockState);
}
@Override
public List<Pair<Integer, String>> getVariants()
{
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
for (int i = 0; i < this.getTypes().length; i++)
ret.add(new ImmutablePair<Integer, String>(i, "type=" + this.getTypes()[i]));
return ret;
}
@Override
public boolean hasTileEntity(IBlockState state) {
return true;

View file

@ -2,7 +2,6 @@ package WayofTime.bloodmagic.block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
@ -20,7 +19,7 @@ public class BlockOutputRoutingNode extends BlockRoutingNode
{
super();
setUnlocalizedName(Constants.Mod.MODID + ".outputRouting");
setUnlocalizedName(BloodMagic.MODID + ".outputRouting");
}
@Override

View file

@ -6,6 +6,7 @@ import java.util.List;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos;
@ -15,22 +16,21 @@ 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.api.incense.IIncensePath;
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 BlockEnum<EnumPath> implements IIncensePath, IVariantProvider
public class BlockPath extends BlockEnum<EnumPath> implements IIncensePath
{
public BlockPath()
{
super(Material.ROCK, EnumPath.class);
setUnlocalizedName(Constants.Mod.MODID + ".path.");
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(BloodMagic.MODID + ".path.");
setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F);
setResistance(5.0F);
setSoundType(SoundType.STONE);
@ -46,10 +46,10 @@ public class BlockPath extends BlockEnum<EnumPath> implements IIncensePath, IVar
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List<String> tooltip, boolean advanced)
public void addInformation(ItemStack stack, World world, List<String> tooltip, ITooltipFlag tooltipFlag)
{
tooltip.add(TextHelper.localizeEffect("tooltip.bloodmagic.decoration.safe"));
super.addInformation(stack, player, tooltip, advanced);
super.addInformation(stack, world, tooltip, tooltipFlag);
}
@Override
@ -73,13 +73,4 @@ public class BlockPath extends BlockEnum<EnumPath> implements IIncensePath, IVar
return 0;
}
}
@Override
public List<Pair<Integer, String>> getVariants()
{
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
for (int i = 0; i < this.getTypes().length; i++)
ret.add(new ImmutablePair<Integer, String>(i, "type=" + this.getTypes()[i]));
return ret;
}
}

View file

@ -5,7 +5,6 @@ import java.util.List;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.tileentity.TileEntity;
@ -22,7 +21,6 @@ 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.client.IVariantProvider;
import WayofTime.bloodmagic.tile.TilePhantomBlock;
@ -34,8 +32,8 @@ public class BlockPhantom extends Block implements IVariantProvider
{
super(Material.CLOTH);
setUnlocalizedName(Constants.Mod.MODID + ".phantom");
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(BloodMagic.MODID + ".phantom");
setCreativeTab(BloodMagic.TAB_BM);
}
@Override

View file

@ -1,8 +1,5 @@
package WayofTime.bloodmagic.block;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Nullable;
import WayofTime.bloodmagic.api.iface.IBindable;
@ -21,36 +18,28 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextComponentTranslation;
import net.minecraft.world.Explosion;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.Optional;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.BlockStack;
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.enums.EnumRitualController;
import WayofTime.bloodmagic.client.IVariantProvider;
import WayofTime.bloodmagic.registry.ModItems;
import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
import WayofTime.bloodmagic.tile.TileImperfectRitualStone;
import WayofTime.bloodmagic.tile.TileMasterRitualStone;
import WayofTime.bloodmagic.util.ChatUtil;
import amerifrance.guideapi.api.IGuideLinked;
@Optional.Interface(modid = "guideapi", iface = "amerifrance.guideapi.api.IGuideLinked")
public class BlockRitualController extends BlockEnum<EnumRitualController> implements IVariantProvider, IGuideLinked
public class BlockRitualController extends BlockEnum<EnumRitualController> implements IGuideLinked
{
public BlockRitualController()
{
super(Material.ROCK, EnumRitualController.class);
setUnlocalizedName(Constants.Mod.MODID + ".stone.ritual.");
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(BloodMagic.MODID + ".stone.ritual.");
setCreativeTab(BloodMagic.TAB_BM);
setSoundType(SoundType.STONE);
setHardness(2.0F);
setResistance(5.0F);
@ -65,7 +54,7 @@ public class BlockRitualController extends BlockEnum<EnumRitualController> imple
if (state.getValue(getProperty()) != EnumRitualController.IMPERFECT && tile instanceof TileMasterRitualStone)
{
if (heldItem.getItem() == ModItems.ACTIVATION_CRYSTAL)
if (heldItem.getItem() == RegistrarBloodMagicItems.ACTIVATION_CRYSTAL)
{
IBindable bindable = (IBindable) heldItem.getItem();
if (Strings.isNullOrEmpty(bindable.getOwnerName(heldItem)))
@ -129,17 +118,6 @@ public class BlockRitualController extends BlockEnum<EnumRitualController> imple
return state.getValue(getProperty()) != EnumRitualController.IMPERFECT ? new TileMasterRitualStone() : new TileImperfectRitualStone();
}
// IVariantProvider
@Override
public List<Pair<Integer, String>> getVariants()
{
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
for (int i = 0; i < this.getTypes().length; i++)
ret.add(new ImmutablePair<Integer, String>(i, "type=" + this.getTypes()[i]));
return ret;
}
// IGuideLinked
@Override

View file

@ -6,42 +6,45 @@ import java.util.List;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
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.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.IRitualStone;
import WayofTime.bloodmagic.block.base.BlockEnum;
import WayofTime.bloodmagic.client.IVariantProvider;
import WayofTime.bloodmagic.registry.ModBlocks;
import WayofTime.bloodmagic.registry.RegistrarBloodMagicBlocks;
import WayofTime.bloodmagic.util.helper.TextHelper;
public class BlockRitualStone extends BlockEnum<EnumRuneType> implements IRitualStone, IVariantProvider
public class BlockRitualStone extends BlockEnum<EnumRuneType> implements IRitualStone
{
public BlockRitualStone()
{
super(Material.IRON, EnumRuneType.class);
setUnlocalizedName(Constants.Mod.MODID + ".ritualStone.");
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(BloodMagic.MODID + ".ritualStone.");
setCreativeTab(BloodMagic.TAB_BM);
setSoundType(SoundType.STONE);
setHardness(2.0F);
setResistance(5.0F);
setHarvestLevel("pickaxe", 2);
}
@SideOnly(Side.CLIENT)
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List<String> tooltip, boolean advanced)
public void addInformation(ItemStack stack, World world, List<String> tooltip, ITooltipFlag tooltipFlag)
{
tooltip.add(TextHelper.localizeEffect("tooltip.bloodmagic.decoration.safe"));
super.addInformation(stack, player, tooltip, advanced);
super.addInformation(stack, world, tooltip, tooltipFlag);
}
@Override
@ -66,16 +69,7 @@ public class BlockRitualStone extends BlockEnum<EnumRuneType> implements IRitual
public void setRuneType(World world, BlockPos pos, EnumRuneType runeType)
{
int meta = runeType.ordinal();
IBlockState newState = ModBlocks.RITUAL_STONE.getStateFromMeta(meta);
IBlockState newState = RegistrarBloodMagicBlocks.RITUAL_STONE.getStateFromMeta(meta);
world.setBlockState(pos, newState);
}
@Override
public List<Pair<Integer, String>> getVariants()
{
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
for (int i = 0; i < this.getTypes().length; i++)
ret.add(new ImmutablePair<Integer, String>(i, "type=" + this.getTypes()[i]));
return ret;
}
}

View file

@ -1,11 +1,11 @@
package WayofTime.bloodmagic.block;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyBool;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.item.ItemBlock;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.EnumBlockRenderType;
@ -18,7 +18,7 @@ import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.tile.routing.TileMasterRoutingNode;
import WayofTime.bloodmagic.tile.routing.TileRoutingNode;
public class BlockRoutingNode extends Block
public class BlockRoutingNode extends Block implements IBMBlock
{
protected static final AxisAlignedBB AABB = new AxisAlignedBB(0.378F, 0.378F, 0.378F, 0.625F, 0.625F, 0.625F);
@ -33,7 +33,7 @@ public class BlockRoutingNode extends Block
{
super(Material.ROCK);
setCreativeTab(BloodMagic.tabBloodMagic);
setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F);
setResistance(5.0F);
setHarvestLevel("pickaxe", 2);
@ -140,4 +140,9 @@ public class BlockRoutingNode extends Block
super.breakBlock(world, pos, blockState);
}
@Override
public ItemBlock getItem() {
return new ItemBlock(this);
}
}

View file

@ -4,12 +4,10 @@ import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumBlockRenderType;
import net.minecraft.util.EnumFacing;
@ -37,12 +35,12 @@ public class BlockSoulForge extends Block implements IVariantProvider
{
super(Material.IRON);
setUnlocalizedName(Constants.Mod.MODID + ".soulForge");
setUnlocalizedName(BloodMagic.MODID + ".soulForge");
setHardness(2.0F);
setResistance(5.0F);
setSoundType(SoundType.METAL);
setHarvestLevel("pickaxe", 1);
setCreativeTab(BloodMagic.tabBloodMagic);
setCreativeTab(BloodMagic.TAB_BM);
}
@Override

View file

@ -4,9 +4,9 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.ConfigHandler;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
@ -24,7 +24,6 @@ import net.minecraftforge.fml.relauncher.SideOnly;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.client.IVariantProvider;
import WayofTime.bloodmagic.tile.TileSpectralBlock;
@ -38,7 +37,7 @@ public class BlockSpectral extends Block implements IVariantProvider
{
super(Material.CLOTH);
setUnlocalizedName(Constants.Mod.MODID + ".spectral");
setUnlocalizedName(BloodMagic.MODID + ".spectral");
}
@Override

View file

@ -30,8 +30,8 @@ public class BlockTeleposer extends BlockContainer implements IVariantProvider
{
super(Material.ROCK);
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(Constants.Mod.MODID + ".teleposer");
setCreativeTab(BloodMagic.TAB_BM);
setUnlocalizedName(BloodMagic.MODID + ".teleposer");
setHardness(2.0F);
setResistance(5.0F);
}

View file

@ -0,0 +1,8 @@
package WayofTime.bloodmagic.block;
import net.minecraft.item.ItemBlock;
public interface IBMBlock {
ItemBlock getItem();
}

View file

@ -1,23 +1,24 @@
package WayofTime.bloodmagic.block.base;
import lombok.Getter;
import WayofTime.bloodmagic.block.IBMBlock;
import WayofTime.bloodmagic.client.IVariantProvider;
import WayofTime.bloodmagic.item.block.base.ItemBlockEnum;
import com.google.common.collect.Lists;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IStringSerializable;
import net.minecraft.util.NonNullList;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import org.apache.commons.lang3.tuple.Pair;
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 implements IBMBlock, IVariantProvider
{
private final E[] types;
private final PropertyEnum<E> property;
@ -68,16 +69,44 @@ public class BlockEnum<E extends Enum<E> & IStringSerializable> extends Block
return getMetaFromState(state);
}
@SideOnly(Side.CLIENT)
@Override
public void getSubBlocks(Item item, CreativeTabs tab, NonNullList<ItemStack> subBlocks)
public void getSubBlocks(CreativeTabs tab, NonNullList<ItemStack> subBlocks)
{
for (E type : types)
subBlocks.add(new ItemStack(item, 1, type.ordinal()));
subBlocks.add(new ItemStack(this, 1, type.ordinal()));
}
protected BlockStateContainer createStateContainer()
{
return new BlockStateContainer.Builder(this).add(property).build();
}
@Override
public ItemBlock getItem() {
return new ItemBlockEnum<>(this);
}
@Override
public List<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> variants = Lists.newArrayList();
if (getItem() == null)
return variants;
for (int i = 0; i < types.length; i++)
variants.add(Pair.of(i, getProperty().getName() + "=" + types[i].name()));
return variants;
}
public E[] getTypes() {
return types;
}
public PropertyEnum<E> getProperty() {
return property;
}
public BlockStateContainer getRealStateContainer() {
return realStateContainer;
}
}

View file

@ -71,7 +71,7 @@ public class BlockEnumStairs<E extends Enum<E> & IStringSerializable> extends Bl
}
@Override
public void addCollisionBoxToList(IBlockState state, World worldIn, BlockPos pos, AxisAlignedBB entityBox, List<AxisAlignedBB> collidingBoxes, @Nullable Entity entityIn)
public void addCollisionBoxToList(IBlockState state, World worldIn, BlockPos pos, AxisAlignedBB entityBox, List<AxisAlignedBB> collidingBoxes, @Nullable Entity entityIn, boolean bool)
{
state = this.getActualState(state, worldIn, pos);

View file

@ -1,6 +1,5 @@
package WayofTime.bloodmagic.block.base;
import lombok.Getter;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyInteger;
@ -18,7 +17,6 @@ import net.minecraftforge.fml.relauncher.SideOnly;
*
* These states will be numbered 0 through {@code maxMeta}.
*/
@Getter
public class BlockInteger extends Block
{
private final int maxMeta;
@ -65,11 +63,10 @@ public class BlockInteger extends Block
return getMetaFromState(state);
}
@SideOnly(Side.CLIENT)
@Override
public void getSubBlocks(Item item, CreativeTabs tab, NonNullList<ItemStack> subBlocks) {
public void getSubBlocks(CreativeTabs tab, NonNullList<ItemStack> subBlocks) {
for (int i = 0; i < maxMeta; i++)
subBlocks.add(new ItemStack(item, 1, i));
subBlocks.add(new ItemStack(this, 1, i));
}
protected BlockStateContainer createStateContainer() {

View file

@ -1,6 +1,5 @@
package WayofTime.bloodmagic.block.base;
import lombok.Getter;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.BlockStateContainer;
@ -21,7 +20,6 @@ import org.apache.commons.lang3.ArrayUtils;
* way, each value is {@code toLowerCase()}'ed, so the blockstate JSON needs all
* values to be lowercase.
*/
@Getter
public class BlockString extends Block
{
private final int maxMeta;
@ -78,10 +76,10 @@ public class BlockString extends Block
@SideOnly(Side.CLIENT)
@Override
public void getSubBlocks(Item item, CreativeTabs tab, NonNullList<ItemStack> subBlocks)
public void getSubBlocks(CreativeTabs tab, NonNullList<ItemStack> subBlocks)
{
for (int i = 0; i < maxMeta; i++)
subBlocks.add(new ItemStack(item, 1, i));
subBlocks.add(new ItemStack(this, 1, i));
}
protected BlockStateContainer createStateContainer()
@ -91,4 +89,20 @@ public class BlockString extends Block
System.out.println("Number of states: " + ctn.getValidStates().size());
return ctn;
}
public int getMaxMeta() {
return maxMeta;
}
public String[] getTypes() {
return types;
}
public PropertyString getProperty() {
return property;
}
public BlockStateContainer getRealStateContainer() {
return realStateContainer;
}
}

View file

@ -4,20 +4,23 @@ import java.util.Locale;
import net.minecraft.util.IStringSerializable;
public enum EnumBrickSize implements IStringSerializable
public enum EnumDecorative implements IStringSerializable
{
LARGE,
BRICK;
BLOODSTONE_TILE,
BLOODSTONE_BRICK,
CRYSTAL_TILE,
CRYSTAL_BRICK,
;
@Override
public String toString()
{
return name().toLowerCase(Locale.ENGLISH);
return name().toLowerCase(Locale.ROOT);
}
@Override
public String getName()
{
return this.toString();
return toString();
}
}