Basic sigils implementation

This commit is contained in:
Arcaratus 2015-12-27 19:38:12 -05:00
parent ae85224003
commit 5dff08380d
61 changed files with 1394 additions and 106 deletions

View file

@ -1,36 +1,16 @@
package WayofTime.bloodmagic.registry;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.ConfigHandler;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.block.*;
import WayofTime.bloodmagic.item.block.*;
import WayofTime.bloodmagic.tile.*;
import WayofTime.bloodmagic.util.helper.InventoryRenderHelper;
import net.minecraft.block.Block;
import net.minecraft.item.ItemBlock;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fml.common.registry.GameRegistry;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.ConfigHandler;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.block.BlockAlchemyArray;
import WayofTime.bloodmagic.block.BlockAltar;
import WayofTime.bloodmagic.block.BlockBloodLight;
import WayofTime.bloodmagic.block.BlockBloodRune;
import WayofTime.bloodmagic.block.BlockBloodStoneBrick;
import WayofTime.bloodmagic.block.BlockCrystal;
import WayofTime.bloodmagic.block.BlockLifeEssence;
import WayofTime.bloodmagic.block.BlockPedestal;
import WayofTime.bloodmagic.block.BlockRitualController;
import WayofTime.bloodmagic.block.BlockRitualStone;
import WayofTime.bloodmagic.block.BlockTeleposer;
import WayofTime.bloodmagic.block.BlockTestSpellBlock;
import WayofTime.bloodmagic.item.block.ItemBlockBloodRune;
import WayofTime.bloodmagic.item.block.ItemBlockBloodStoneBrick;
import WayofTime.bloodmagic.item.block.ItemBlockCrystal;
import WayofTime.bloodmagic.item.block.ItemBlockPedestal;
import WayofTime.bloodmagic.item.block.ItemBlockRitualController;
import WayofTime.bloodmagic.item.block.ItemBlockRitualStone;
import WayofTime.bloodmagic.tile.TileAlchemyArray;
import WayofTime.bloodmagic.tile.TileAltar;
import WayofTime.bloodmagic.tile.TileImperfectRitualStone;
import WayofTime.bloodmagic.tile.TileMasterRitualStone;
import WayofTime.bloodmagic.tile.TilePlinth;
import WayofTime.bloodmagic.util.helper.InventoryRenderHelper;
public class ModBlocks {
public static Block altar;
@ -42,6 +22,8 @@ public class ModBlocks {
public static Block pedestal;
public static Block teleposer;
public static Block alchemyArray;
public static Block spectralBlock;
public static Block phantomBlock;
public static Block lifeEssence;
@ -61,6 +43,8 @@ public class ModBlocks {
pedestal = registerBlock(new BlockPedestal(), ItemBlockPedestal.class);
teleposer = registerBlock(new BlockTeleposer());
alchemyArray = registerBlock(new BlockAlchemyArray());
spectralBlock = registerBlock(new BlockSpectral());
phantomBlock = registerBlock(new BlockPhantom());
crystal = registerBlock(new BlockCrystal(), ItemBlockCrystal.class);
bloodStoneBrick = registerBlock(new BlockBloodStoneBrick(), ItemBlockBloodStoneBrick.class);
@ -72,7 +56,9 @@ public class ModBlocks {
GameRegistry.registerTileEntity(TileImperfectRitualStone.class, Constants.Mod.MODID + ":" + TileImperfectRitualStone.class.getSimpleName());
GameRegistry.registerTileEntity(TileMasterRitualStone.class, Constants.Mod.MODID + ":" + TileMasterRitualStone.class.getSimpleName());
GameRegistry.registerTileEntity(TilePlinth.class, Constants.Mod.MODID + ":" + TilePlinth.class.getSimpleName());
GameRegistry.registerTileEntity(TileAlchemyArray.class, Constants.Mod.MODID + ":" + TileAlchemyArray.class.getSimpleName());
GameRegistry.registerTileEntity(TileAlchemyArray.class, Constants.Mod.MODID + TileAlchemyArray.class.getSimpleName());
GameRegistry.registerTileEntity(TileSpectralBlock.class, Constants.Mod.MODID + ":" + TileSpectralBlock.class.getSimpleName());
GameRegistry.registerTileEntity(TilePhantomBlock.class, Constants.Mod.MODID + ":" + TilePhantomBlock.class.getSimpleName());
}
public static void initRenders() {
@ -107,6 +93,8 @@ public class ModBlocks {
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(pedestal), 1);
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(teleposer));
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(alchemyArray));
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(spectralBlock));
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(phantomBlock));
}
private static Block registerBlock(Block block, Class<? extends ItemBlock> itemBlock, String name) {

View file

@ -1,8 +1,14 @@
package WayofTime.bloodmagic.registry;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.entity.projectile.EntityBloodLight;
import net.minecraftforge.fml.common.registry.EntityRegistry;
public class ModEntities {
public static void init() {
int id = 0;
EntityRegistry.registerModEntity(EntityBloodLight.class, "BloodLight", id++, BloodMagic.instance, 64, 20, true);
}
}

View file

@ -2,7 +2,6 @@ package WayofTime.bloodmagic.registry;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.ConfigHandler;
import WayofTime.bloodmagic.api.BloodMagicAPI;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.orb.BloodOrb;
import WayofTime.bloodmagic.api.registry.OrbRegistry;
@ -40,6 +39,18 @@ public class ModItems {
public static Item sigilWater;
public static Item sigilLava;
public static Item sigilVoid;
public static Item sigilGreenGrove;
public static Item sigilBloodLight;
public static Item sigilElementalAffinity;
public static Item sigilHaste;
public static Item sigilMagnetism;
public static Item sigilSuppression;
public static Item sigilFastMiner;
public static Item sigilSeer;
public static Item sigilEnderSeverance;
public static Item sigilHurricane;
public static Item sigilPhantomBridge;
public static Item sigilCompression;
public static Item livingArmourHelmet;
public static Item livingArmourChest;
@ -78,6 +89,15 @@ public class ModItems {
sigilWater = registerItem(new ItemSigilWater());
sigilLava = registerItem(new ItemSigilLava());
sigilVoid = registerItem(new ItemSigilVoid());
sigilGreenGrove = registerItem(new ItemSigilGreenGrove());
sigilBloodLight = registerItem(new ItemSigilBloodLight());
sigilElementalAffinity = registerItem(new ItemSigilElementalAffinity());
sigilMagnetism = registerItem(new ItemSigilMagnetism());
sigilSuppression = registerItem(new ItemSigilSuppression());
sigilHaste = registerItem(new ItemSigilHaste());
sigilFastMiner = registerItem(new ItemSigilFastMiner());
sigilSeer = registerItem(new ItemSigilSeer());
sigilPhantomBridge = registerItem(new ItemSigilPhantomBridge());
livingArmourHelmet = registerItem(new ItemLivingArmour(0), "ItemLivingArmourHelmet");
livingArmourChest = registerItem(new ItemLivingArmour(1), "ItemLivingArmourChest");
@ -127,6 +147,22 @@ public class ModItems {
renderHelper.itemRender(sigilWater);
renderHelper.itemRender(sigilLava);
renderHelper.itemRender(sigilVoid);
renderHelper.itemRender(sigilGreenGrove, 0);
renderHelper.itemRender(sigilGreenGrove, 1);
renderHelper.itemRender(sigilBloodLight);
renderHelper.itemRender(sigilElementalAffinity, 0);
renderHelper.itemRender(sigilElementalAffinity, 1);
renderHelper.itemRender(sigilMagnetism, 0);
renderHelper.itemRender(sigilMagnetism, 1);
renderHelper.itemRender(sigilSuppression, 0);
renderHelper.itemRender(sigilSuppression, 1);
renderHelper.itemRender(sigilHaste, 0);
renderHelper.itemRender(sigilHaste, 1);
renderHelper.itemRender(sigilFastMiner, 0);
renderHelper.itemRender(sigilFastMiner, 1);
renderHelper.itemRender(sigilSeer);
renderHelper.itemRender(sigilPhantomBridge, 0);
renderHelper.itemRender(sigilPhantomBridge, 1);
renderHelper.itemRender(livingArmourHelmet);
renderHelper.itemRender(livingArmourChest);

View file

@ -1,8 +1,55 @@
package WayofTime.bloodmagic.registry;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.potion.PotionBloodMagic;
import WayofTime.bloodmagic.potion.PotionEventHandlers;
import net.minecraft.potion.Potion;
import net.minecraft.util.ResourceLocation;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
public class ModPotions {
public static void init() {
public static Potion drowning;
public static Potion boost;
public static Potion heavyHeart;
public static void init() {
if (Potion.potionTypes.length < 256) extendPortionArray();
new PotionEventHandlers();
//TODO FUTURE MAKE POTION TEXTURES
// final String resourceLocation = Constants.Mod.MODID + ":textures/potions/";
// drowning = new PotionBloodMagic("Drowning", new ResourceLocation(resourceLocation + drowning.getName().toLowerCase()), true, 0, 0, 0);
boost = new PotionBloodMagic("Boost", new ResourceLocation("Minecraft:textures/gui/container/inventory.png")
// new ResourceLocation(resourceLocation + boost.getName().toLowerCase())
, false, 0, 0, 0);
// heavyHeart = new PotionBloodMagic("Heavy Heart", new ResourceLocation(resourceLocation + heavyHeart.getName().toLowerCase()), true, 0, 0, 0);
}
public static void extendPortionArray() {
Potion[] potionTypes;
for (Field f : Potion.class.getDeclaredFields()) {
f.setAccessible(true);
try {
if (f.getName().equals("potionTypes") || f.getName().equals("field_76425_a")) {
Field field = Field.class.getDeclaredField("modifiers");
field.setAccessible(true);
field.setInt(f, f.getModifiers() & ~Modifier.FINAL);
potionTypes = (Potion[]) f.get(null);
final Potion[] newPotionTypes = new Potion[256];
System.arraycopy(potionTypes, 0, newPotionTypes, 0, potionTypes.length);
f.set(null, newPotionTypes);
}
} catch (Exception e) {
System.err.println(e);
}
}
}
}