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

@ -5,26 +5,21 @@ buildscript {
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
} }
dependencies { dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT' classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
classpath 'org.ajoberstar:gradle-git:0.10.1'
} }
} }
plugins { plugins {
id "net.minecraftforge.gradle.forge" version "2.0.2" id "net.minecraftforge.gradle.forge" version "2.0.2"
id 'com.matthewprenger.cursegradle' version '1.0.9' id 'com.matthewprenger.cursegradle' version '1.0.9'
id 'io.franzbecker.gradle-lombok' version '1.6' id 'maven-publish'
} }
apply plugin: 'maven-publish'
def build_number = 'CUSTOM' def build_number = 'CUSTOM'
if (System.getenv('BUILD_NUMBER') != null) if (System.getenv('BUILD_NUMBER') != null)
build_number = System.getenv('BUILD_NUMBER') build_number = System.getenv('BUILD_NUMBER')
def username = 'BloodMagicDev' def username = "${mod_name}"
if (project.hasProperty('dev_username')) if (project.hasProperty('dev_username'))
username = "${dev_username}" username = "${dev_username}"
@ -32,38 +27,15 @@ group = package_group
archivesBaseName = mod_name archivesBaseName = mod_name
version = "${mc_version}-${mod_version}-${build_number}" version = "${mc_version}-${mod_version}-${build_number}"
if (project.hasProperty('gitpush'))
version += "-ss"
import org.ajoberstar.grgit.*
ext.repo = Grgit.open(project.file('.'))
def gitHash = 'unknown'
if (new File(projectDir, '.git').exists())
gitHash = repo.log().find().abbreviatedId
repositories { repositories {
maven { url "http://dvs1.progwml6.com/files/maven" } maven { url "http://dvs1.progwml6.com/files/maven" }
maven { url "http://tehnut.info/maven" } maven { url "http://tehnut.info/maven" }
ivy {
name "Thaumcraft"
artifactPattern "https://dl.dropboxusercontent.com/u/47135879/[module]-[revision]-deobf.[ext]"
}
ivy {
name "Baubles"
artifactPattern "https://dl.dropboxusercontent.com/u/47135879/[module]-1.8.9-[revision]-deobf.[ext]"
}
} }
dependencies { dependencies {
deobfCompile "mezz.jei:jei_${mc_version}:${jei_version}" deobfCompile "mezz.jei:jei_${mc_version}:${jei_version}"
deobfCompile "mcp.mobius.waila:Hwyla:${waila_version}_${mc_version}" deobfCompile "mcp.mobius.waila:Hwyla:${waila_version}_${mc_version}"
deobfCompile "info.amerifrance.guideapi:Guide-API:${mc_version}-${guideapi_version}" deobfCompile "info.amerifrance.guideapi:Guide-API:${mc_version}-${guideapi_version}"
// compile name: "Thaumcraft", version: "${mc_version}-${thaumcraft_version}", ext: "jar"
// compile name: 'Baubles', version: "${baubles_version}", ext: 'jar'
} }
minecraft { minecraft {
@ -104,23 +76,6 @@ if (JavaVersion.current().isJava8Compatible()) {
} }
} }
lombok {
version = "1.16.6"
sha256 = "e0a471be03e1e6b02bf019480cec7a3ac9801702bf7bf62f15d077ad4df8dd5d"
}
import io.franzbecker.gradle.lombok.task.DelombokTask
task delombok(type: DelombokTask) {
args("src/main/java", "-d", "build/sources/delomboked/java")
}
task delombokHelp(type: DelombokTask) {
args "--help"
}
tasks.eclipse.dependsOn installLombok
jar { jar {
classifier = '' classifier = ''
manifest.mainAttributes( manifest.mainAttributes(
@ -128,7 +83,6 @@ jar {
"Created-By": "${System.getProperty('java.vm.version')} + (${System.getProperty('java.vm.vendor')})", "Created-By": "${System.getProperty('java.vm.version')} + (${System.getProperty('java.vm.vendor')})",
"Implementation-Title": project.name, "Implementation-Title": project.name,
"Implementation-Version": project.version, "Implementation-Version": project.version,
"Git-Hash": gitHash,
"Built-On": "${mc_version}-${forge_version}" "Built-On": "${mc_version}-${forge_version}"
) )
} }
@ -147,11 +101,6 @@ task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc' classifier = 'javadoc'
} }
javadoc {
source = projectDir.path + "/build/sources/delomboked/java"
}
tasks.javadoc.dependsOn delombok
tasks.build.dependsOn javadoc, javadocJar, apiJar tasks.build.dependsOn javadoc, javadocJar, apiJar
tasks.withType(JavaCompile) { task -> tasks.withType(JavaCompile) { task ->
@ -202,7 +151,7 @@ String getChangelogText() {
def curseRelations = { def curseRelations = {
optionalLibrary 'just-enough-items-jei' optionalLibrary 'just-enough-items-jei'
optionalLibrary 'waila' optionalLibrary 'hwyla'
requiredLibrary 'guide-api' requiredLibrary 'guide-api'
} }
@ -216,7 +165,6 @@ curseforge {
releaseType = 'beta' releaseType = 'beta'
relations curseRelations relations curseRelations
addGameVersion '1.11.2'
addArtifact javadocJar addArtifact javadocJar
addArtifact sourceJar addArtifact sourceJar

View file

@ -1,12 +1,12 @@
mod_name=BloodMagic mod_name=BloodMagic
package_group=com.wayoftime.bloodmagic package_group=com.wayoftime.bloodmagic
mod_version=2.1.11 mod_version=2.2.0
mc_version=1.11 mc_version=1.12
forge_version=13.19.1.2189 forge_version=14.21.1.2443
curse_id=224791 curse_id=224791
mappings_version=snapshot_20161212 mappings_version=snapshot_20170814
jei_version=4.0.5.203 jei_version=4.7.5.85
waila_version=1.8.5-B19 waila_version=1.8.20-B35
guideapi_version=2.1.0-50 guideapi_version=2.1.4-56

View file

@ -5,7 +5,6 @@ import java.io.File;
import WayofTime.bloodmagic.command.CommandBloodMagic; import WayofTime.bloodmagic.command.CommandBloodMagic;
import WayofTime.bloodmagic.api.registry.RitualRegistry; import WayofTime.bloodmagic.api.registry.RitualRegistry;
import WayofTime.bloodmagic.meteor.MeteorConfigHandler; import WayofTime.bloodmagic.meteor.MeteorConfigHandler;
import lombok.Getter;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.launchwrapper.Launch; import net.minecraft.launchwrapper.Launch;
@ -15,19 +14,14 @@ import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.*; import net.minecraftforge.fml.common.event.*;
import net.minecraftforge.fml.common.network.NetworkRegistry; import net.minecraftforge.fml.common.network.NetworkRegistry;
import WayofTime.bloodmagic.annot.Handler; import WayofTime.bloodmagic.annot.Handler;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.util.helper.LogHelper; import WayofTime.bloodmagic.api.util.helper.LogHelper;
import WayofTime.bloodmagic.client.gui.GuiHandler; import WayofTime.bloodmagic.client.gui.GuiHandler;
import WayofTime.bloodmagic.compat.ICompatibility;
import WayofTime.bloodmagic.network.BloodMagicPacketHandler; import WayofTime.bloodmagic.network.BloodMagicPacketHandler;
import WayofTime.bloodmagic.proxy.CommonProxy; import WayofTime.bloodmagic.proxy.CommonProxy;
import WayofTime.bloodmagic.registry.ModArmourTrackers; import WayofTime.bloodmagic.registry.ModArmourTrackers;
import WayofTime.bloodmagic.registry.ModBlocks; import WayofTime.bloodmagic.registry.RegistrarBloodMagicBlocks;
import WayofTime.bloodmagic.registry.ModCompatibility;
import WayofTime.bloodmagic.registry.ModCorruptionBlocks; import WayofTime.bloodmagic.registry.ModCorruptionBlocks;
import WayofTime.bloodmagic.registry.ModEntities; import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
import WayofTime.bloodmagic.registry.ModItems;
import WayofTime.bloodmagic.registry.ModPotions;
import WayofTime.bloodmagic.registry.ModRecipes; import WayofTime.bloodmagic.registry.ModRecipes;
import WayofTime.bloodmagic.registry.ModRituals; import WayofTime.bloodmagic.registry.ModRituals;
import WayofTime.bloodmagic.registry.ModTranquilityHandlers; import WayofTime.bloodmagic.registry.ModTranquilityHandlers;
@ -35,31 +29,27 @@ import WayofTime.bloodmagic.structures.ModDungeons;
import WayofTime.bloodmagic.util.Utils; import WayofTime.bloodmagic.util.Utils;
import WayofTime.bloodmagic.util.handler.IMCHandler; import WayofTime.bloodmagic.util.handler.IMCHandler;
@Mod(modid = Constants.Mod.MODID, name = Constants.Mod.NAME, version = Constants.Mod.VERSION, dependencies = Constants.Mod.DEPEND, guiFactory = "WayofTime.bloodmagic.client.gui.config.ConfigGuiFactory") @Mod(modid = BloodMagic.MODID, name = BloodMagic.NAME, version = BloodMagic.VERSION, dependencies = BloodMagic.DEPEND, guiFactory = "WayofTime.bloodmagic.client.gui.config.ConfigGuiFactory")
@Getter
public class BloodMagic public class BloodMagic
{ {
@SidedProxy(serverSide = "WayofTime.bloodmagic.proxy.CommonProxy", clientSide = "WayofTime.bloodmagic.proxy.ClientProxy") public static final String MODID = "bloodmagic";
public static CommonProxy proxy; public static final String NAME = "Blood Magic: Alchemical Wizardry";
public static final String VERSION = "@VERSION@";
@Mod.Instance(Constants.Mod.MODID) public static final String DEPEND = "required-after:guideapi;";
public static BloodMagic instance; public static final CreativeTabs TAB_BM = new CreativeTabs(MODID + ".creativeTab")
public static CreativeTabs tabBloodMagic = new CreativeTabs(Constants.Mod.MODID + ".creativeTab")
{ {
@Override @Override
public ItemStack getTabIconItem() public ItemStack getTabIconItem()
{ {
return new ItemStack(ModItems.BLOOD_ORB); return new ItemStack(RegistrarBloodMagicItems.BLOOD_ORB);
} }
}; };
public static CreativeTabs TAB_TOMES = new CreativeTabs(MODID + ".creativeTabTome")
public static CreativeTabs tabUpgradeTome = new CreativeTabs(Constants.Mod.MODID + ".creativeTabTome")
{ {
@Override @Override
public ItemStack getTabIconItem() public ItemStack getTabIconItem()
{ {
return new ItemStack(ModItems.UPGRADE_TOME); return new ItemStack(RegistrarBloodMagicItems.UPGRADE_TOME);
} }
@Override @Override
@ -67,33 +57,28 @@ public class BloodMagic
{ {
return true; return true;
} }
}.setNoTitle().setBackgroundImageName("upgrade_tomes.png"); }.setNoTitle().setBackgroundImageName("items_search.png");
public static final boolean IS_DEV = (Boolean) Launch.blackboard.get("fml.deobfuscatedEnvironment");
@Getter
private static boolean isDev = (Boolean) Launch.blackboard.get("fml.deobfuscatedEnvironment");
static static
{ {
tabUpgradeTome.setNoTitle().setBackgroundImageName("upgrade_tomes.png");
FluidRegistry.enableUniversalBucket(); FluidRegistry.enableUniversalBucket();
} }
private LogHelper logger = new LogHelper(Constants.Mod.MODID); @SidedProxy(serverSide = "WayofTime.bloodmagic.proxy.CommonProxy", clientSide = "WayofTime.bloodmagic.proxy.ClientProxy")
public static CommonProxy proxy;
@Mod.Instance(BloodMagic.MODID)
public static BloodMagic instance;
public LogHelper logger = new LogHelper(MODID);
private File configDir; private File configDir;
@Mod.EventHandler @Mod.EventHandler
public void preInit(FMLPreInitializationEvent event) public void preInit(FMLPreInitializationEvent event)
{ {
configDir = new File(event.getModConfigurationDirectory(), "BloodMagic"); configDir = new File(event.getModConfigurationDirectory(), "BloodMagic");
ConfigHandler.init(new File(getConfigDir(), "BloodMagic.cfg")); ConfigHandler.init(new File(configDir, "BloodMagic.cfg"));
ModBlocks.init();
ModItems.init();
ModPotions.init();
ModEntities.init();
ModCompatibility.registerModCompat();
ModCompatibility.loadCompat(ICompatibility.InitializationPhase.PRE_INIT);
ModTranquilityHandlers.init(); ModTranquilityHandlers.init();
ModDungeons.init(); ModDungeons.init();
@ -105,13 +90,13 @@ public class BloodMagic
public void init(FMLInitializationEvent event) public void init(FMLInitializationEvent event)
{ {
BloodMagicPacketHandler.init(); BloodMagicPacketHandler.init();
RegistrarBloodMagicBlocks.registerBlacklists();
ModRecipes.init(); ModRecipes.init();
ModRituals.initRituals(); ModRituals.initRituals();
ModRituals.initImperfectRituals(); ModRituals.initImperfectRituals();
MeteorConfigHandler.init(new File(configDir, "meteors")); MeteorConfigHandler.init(new File(configDir, "meteors"));
ModArmourTrackers.init(); ModArmourTrackers.init();
ModCompatibility.loadCompat(ICompatibility.InitializationPhase.INIT);
NetworkRegistry.INSTANCE.registerGuiHandler(BloodMagic.instance, new GuiHandler()); NetworkRegistry.INSTANCE.registerGuiHandler(BloodMagic.instance, new GuiHandler());
ModCorruptionBlocks.init(); ModCorruptionBlocks.init();
@ -122,7 +107,6 @@ public class BloodMagic
public void postInit(FMLPostInitializationEvent event) public void postInit(FMLPostInitializationEvent event)
{ {
ModRecipes.addCompressionHandlers(); ModRecipes.addCompressionHandlers();
ModCompatibility.loadCompat(ICompatibility.InitializationPhase.POST_INIT);
proxy.postInit(); proxy.postInit();
} }
@ -135,7 +119,7 @@ public class BloodMagic
@Mod.EventHandler @Mod.EventHandler
public void modMapping(FMLModIdMappingEvent event) public void modMapping(FMLModIdMappingEvent event)
{ {
ModCompatibility.loadCompat(ICompatibility.InitializationPhase.MAPPING);
} }
@Mod.EventHandler @Mod.EventHandler

View file

@ -8,11 +8,9 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import WayofTime.bloodmagic.meteor.MeteorConfigHandler; import WayofTime.bloodmagic.meteor.MeteorConfigHandler;
import lombok.Getter;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.common.config.Property;
import net.minecraftforge.fml.client.event.ConfigChangedEvent; import net.minecraftforge.fml.client.event.ConfigChangedEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.registry.ForgeRegistries; import net.minecraftforge.fml.common.registry.ForgeRegistries;
@ -26,28 +24,23 @@ import WayofTime.bloodmagic.util.Utils;
@Handler @Handler
public class ConfigHandler public class ConfigHandler
{ {
@Getter public static Configuration config;
private static Configuration config;
// Teleposer // Teleposer
public static String[] teleposerBlacklisting; public static String[] teleposerBlacklisting;
public static ArrayList<BlockStack> teleposerBlacklist = new ArrayList<BlockStack>(); public static ArrayList<BlockStack> teleposerBlacklist = new ArrayList<>();
public static List<String> teleposerBlacklistEntity; public static List<String> teleposerBlacklistEntity;
// Transposition Sigil // Transposition Sigil
public static String[] transpositionBlacklisting; public static String[] transpositionBlacklisting;
public static ArrayList<BlockStack> transpositionBlacklist = new ArrayList<BlockStack>(); public static ArrayList<BlockStack> transpositionBlacklist = new ArrayList<>();
// Item/Block Disabling
public static List<String> itemBlacklist;
public static List<String> blockBlacklist;
// Well of Suffering Blacklist // Well of Suffering Blacklist
public static List<String> wellOfSufferingBlacklist; public static List<String> wellOfSufferingBlacklist;
// Blood Altar Sacrificial Values // Blood Altar Sacrificial Values
public static String[] entitySacrificeValuesList; public static String[] entitySacrificeValuesList;
public static Map<String, Integer> entitySacrificeValues = new HashMap<String, Integer>(); public static Map<String, Integer> entitySacrificeValues = new HashMap<>();
// Rituals // Rituals
public static boolean ritualAnimalGrowth; public static boolean ritualAnimalGrowth;
@ -167,23 +160,11 @@ public class ConfigHandler
public static void syncConfig() public static void syncConfig()
{ {
boolean configVersionChanged = false;
String category; String category;
category = "Version";
Property prop = config.get(category, "Config Version", Constants.Mod.VERSION);
if (!prop.getString().equals(Constants.Mod.VERSION))
{
configVersionChanged = true;
prop.setValue(Constants.Mod.VERSION);
}
category = "Item/Block Blacklisting"; category = "Item/Block Blacklisting";
config.addCustomCategoryComment(category, "Allows disabling of specific Blocks/Items.\nNote that using this may result in crashes. Use is not supported."); config.addCustomCategoryComment(category, "Allows disabling of specific Blocks/Items.\nNote that using this may result in crashes. Use is not supported.");
config.setCategoryRequiresMcRestart(category, true); config.setCategoryRequiresMcRestart(category, true);
itemBlacklist = Arrays.asList(config.getStringList("itemBlacklist", category, new String[] {}, "Items to not be registered. This requires their mapping name. Usually the same as the class name. Can be found in F3+H mode."));
blockBlacklist = Arrays.asList(config.getStringList("blockBlacklist", category, new String[] {}, "Blocks to not be registered. This requires their mapping name. Usually the same as the class name. Can be found in F3+H mode."));
category = "Teleposer Blacklist"; category = "Teleposer Blacklist";
config.addCustomCategoryComment(category, "Block blacklisting"); config.addCustomCategoryComment(category, "Block blacklisting");
@ -306,7 +287,7 @@ public class ConfigHandler
category = "General"; category = "General";
config.addCustomCategoryComment(category, "General settings"); config.addCustomCategoryComment(category, "General settings");
BloodMagicAPI.setLoggingEnabled(config.getBoolean("enableLogging", category, true, "Allows logging information to the console. Fatal errors will bypass this")); BloodMagicAPI.loggingEnabled = config.getBoolean("enableLogging", category, true, "Allows logging information to the console. Fatal errors will bypass this");
sacrificialPackConversion = config.getInt("sacrificialPackConversion", category, 20, 0, 100, "Base multiplier for the Coat of Arms. DamageDealt * sacrificialPackConversion"); sacrificialPackConversion = config.getInt("sacrificialPackConversion", category, 20, 0, 100, "Base multiplier for the Coat of Arms. DamageDealt * sacrificialPackConversion");
sacrificialDaggerDamage = config.getInt("sacrificialDaggerDamage", category, 2, 0, 10000, "Damage done from using the Sacrificial Dagger"); sacrificialDaggerDamage = config.getInt("sacrificialDaggerDamage", category, 2, 0, 10000, "Damage done from using the Sacrificial Dagger");
sacrificialDaggerConversion = config.getInt("sacrificialDaggerConversion", category, 100, 0, 10000, "Amount of LP received per damage point (not heart!)"); sacrificialDaggerConversion = config.getInt("sacrificialDaggerConversion", category, 100, 0, 10000, "Amount of LP received per damage point (not heart!)");
@ -376,7 +357,7 @@ public class ConfigHandler
@SubscribeEvent @SubscribeEvent
public void onConfigChanged(ConfigChangedEvent event) public void onConfigChanged(ConfigChangedEvent event)
{ {
if (event.getModID().equals(Constants.Mod.MODID)) if (event.getModID().equals(BloodMagic.MODID))
{ {
syncConfig(); syncConfig();
MeteorConfigHandler.handleMeteors(false); MeteorConfigHandler.handleMeteors(false);

View file

@ -6,6 +6,7 @@ import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import WayofTime.bloodmagic.BloodMagic;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.ai.EntityAIBase; import net.minecraft.entity.ai.EntityAIBase;
@ -28,7 +29,6 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.MathHelper;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.common.util.FakePlayer;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.alchemyCrafting.AlchemyArrayEffect; import WayofTime.bloodmagic.api.alchemyCrafting.AlchemyArrayEffect;
import WayofTime.bloodmagic.fakePlayer.FakePlayerBM; import WayofTime.bloodmagic.fakePlayer.FakePlayerBM;
import WayofTime.bloodmagic.tile.TileAlchemyArray; import WayofTime.bloodmagic.tile.TileAlchemyArray;
@ -400,7 +400,7 @@ public class AlchemyArrayEffectAttractor extends AlchemyArrayEffect
{ {
public Target(World world, BlockPos pos) public Target(World world, BlockPos pos)
{ {
super(world, pos, new GameProfile(null, Constants.Mod.MODID + "ArrayAttractor" + ":" + pos)); super(world, pos, new GameProfile(null, BloodMagic.MODID + "ArrayAttractor" + ":" + pos));
posY += 1; posY += 1;
} }
} }

View file

@ -2,7 +2,6 @@ package WayofTime.bloodmagic.altar;
import java.util.List; import java.util.List;
import lombok.Getter;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
@ -54,7 +53,7 @@ public class BloodAltar implements IFluidHandler
private EnumAltarTier altarTier = EnumAltarTier.ONE; private EnumAltarTier altarTier = EnumAltarTier.ONE;
private AltarUpgrade upgrade; private AltarUpgrade upgrade;
private int capacity = Fluid.BUCKET_VOLUME * 10; private int capacity = Fluid.BUCKET_VOLUME * 10;
private FluidStack fluid = new FluidStack(BloodMagicAPI.getLifeEssence(), 0); private FluidStack fluid = new FluidStack(BlockLifeEssence.getLifeEssence(), 0);
private int liquidRequired; // mB private int liquidRequired; // mB
private boolean canBeFilled; private boolean canBeFilled;
private int consumptionRate; private int consumptionRate;
@ -84,7 +83,6 @@ public class BloodAltar implements IFluidHandler
private AltarRecipe recipe; private AltarRecipe recipe;
private ItemStack result = ItemStack.EMPTY; private ItemStack result = ItemStack.EMPTY;
@Getter
private EnumAltarTier currentTierDisplayed = EnumAltarTier.ONE; private EnumAltarTier currentTierDisplayed = EnumAltarTier.ONE;
public BloodAltar(TileAltar tileAltar) public BloodAltar(TileAltar tileAltar)
@ -132,9 +130,9 @@ public class BloodAltar implements IFluidHandler
} else if (worldBlock.getBlock() != Utils.getBlockForComponent(altarComponent.getComponent())) // Special case Vanilla } else if (worldBlock.getBlock() != Utils.getBlockForComponent(altarComponent.getComponent())) // Special case Vanilla
{ {
return false; return false;
} else if (BloodMagicAPI.getAltarComponents().get(worldBlock.getState()) != null) // Mod compat } else if (BloodMagicAPI.altarComponents.get(worldBlock.getState()) != null) // Mod compat
{ {
return BloodMagicAPI.getAltarComponents().get(worldBlock.getState()) == altarComponent.getComponent(); return BloodMagicAPI.altarComponents.get(worldBlock.getState()) == altarComponent.getComponent();
} }
} else } else
{ {
@ -261,10 +259,10 @@ public class BloodAltar implements IFluidHandler
if (fluid != null) if (fluid != null)
setMainFluid(fluid); setMainFluid(fluid);
FluidStack fluidOut = new FluidStack(BloodMagicAPI.getLifeEssence(), tagCompound.getInteger(Constants.NBT.OUTPUT_AMOUNT)); FluidStack fluidOut = new FluidStack(BloodMagicAPI.lifeEssence, tagCompound.getInteger(Constants.NBT.OUTPUT_AMOUNT));
setOutputFluid(fluidOut); setOutputFluid(fluidOut);
FluidStack fluidIn = new FluidStack(BloodMagicAPI.getLifeEssence(), tagCompound.getInteger(Constants.NBT.INPUT_AMOUNT)); FluidStack fluidIn = new FluidStack(BloodMagicAPI.lifeEssence, tagCompound.getInteger(Constants.NBT.INPUT_AMOUNT));
setInputFluid(fluidIn); setInputFluid(fluidIn);
} }
@ -880,4 +878,8 @@ public class BloodAltar implements IFluidHandler
{ {
return new IFluidTankProperties[] { new FluidTankPropertiesWrapper(new FluidTank(fluid, capacity)) }; return new IFluidTankProperties[] { new FluidTankPropertiesWrapper(new FluidTank(fluid, capacity)) };
} }
public EnumAltarTier getCurrentTierDisplayed() {
return currentTierDisplayed;
}
} }

View file

@ -1,15 +1,11 @@
package WayofTime.bloodmagic.api; package WayofTime.bloodmagic.api;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
@Getter
@EqualsAndHashCode(exclude = { "state" })
public class BlockStack public class BlockStack
{ {
private final Block block; private final Block block;
@ -39,6 +35,36 @@ public class BlockStack
return new ItemStack(block, 1, meta); return new ItemStack(block, 1, meta);
} }
public Block getBlock() {
return block;
}
public int getMeta() {
return meta;
}
public IBlockState getState() {
return state;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof BlockStack)) return false;
BlockStack that = (BlockStack) o;
if (meta != that.meta) return false;
return block != null ? block.equals(that.block) : that.block == null;
}
@Override
public int hashCode() {
int result = block != null ? block.hashCode() : 0;
result = 31 * result + meta;
return result;
}
@Override @Override
public String toString() public String toString()
{ {

View file

@ -1,9 +1,8 @@
package WayofTime.bloodmagic.api; package WayofTime.bloodmagic.api;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.altar.EnumAltarComponent; import WayofTime.bloodmagic.api.altar.EnumAltarComponent;
import WayofTime.bloodmagic.api.util.helper.LogHelper; import WayofTime.bloodmagic.api.util.helper.LogHelper;
import lombok.Getter;
import lombok.Setter;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
@ -35,38 +34,27 @@ import java.util.Map;
*/ */
public class BloodMagicAPI public class BloodMagicAPI
{ {
@Getter public static final List<BlockStack> teleposerBlacklist = new ArrayList<BlockStack>();
private static final List<BlockStack> teleposerBlacklist = new ArrayList<BlockStack>(); public static final List<BlockStack> transpositionBlacklist = new ArrayList<BlockStack>();
@Getter public static final Map<String, Integer> entitySacrificeValues = new HashMap<String, Integer>();
private static final List<BlockStack> transpositionBlacklist = new ArrayList<BlockStack>(); public static final ArrayList<Block> greenGroveBlacklist = new ArrayList<Block>();
@Getter public static final Map<IBlockState, EnumAltarComponent> altarComponents = new HashMap<IBlockState, EnumAltarComponent>();
private static final Map<String, Integer> entitySacrificeValues = new HashMap<String, Integer>();
@Getter
private static final ArrayList<Block> greenGroveBlacklist = new ArrayList<Block>();
@Getter
private static final Map<IBlockState, EnumAltarComponent> altarComponents = new HashMap<IBlockState, EnumAltarComponent>();
@Getter public static boolean loggingEnabled;
@Setter
private static boolean loggingEnabled;
@Getter public static LogHelper logger = new LogHelper("BloodMagic|API");
private static LogHelper logger = new LogHelper("BloodMagic|API");
@Getter public static DamageSource damageSource = new DamageSourceBloodMagic();
private static DamageSource damageSource = new DamageSourceBloodMagic();
@Getter public static Fluid lifeEssence;
@Setter public static ItemStack lifeEssenceBucket;
private static Fluid lifeEssence;
private static ItemStack lifeEssenceBucket;
public static ItemStack getLifeEssenceBucket() public static ItemStack getLifeEssenceBucket()
{ {
if (lifeEssenceBucket != null) if (lifeEssenceBucket != null)
return lifeEssenceBucket; return lifeEssenceBucket;
lifeEssenceBucket = UniversalBucket.getFilledBucket(ForgeModContainer.getInstance().universalBucket, getLifeEssence()); lifeEssenceBucket = UniversalBucket.getFilledBucket(ForgeModContainer.getInstance().universalBucket, lifeEssence);
return lifeEssenceBucket; return lifeEssenceBucket;
} }
@ -82,7 +70,7 @@ public class BloodMagicAPI
*/ */
public static Item getItem(String name) public static Item getItem(String name)
{ {
return ForgeRegistries.ITEMS.getValue(new ResourceLocation(Constants.Mod.MODID, name)); return ForgeRegistries.ITEMS.getValue(new ResourceLocation(BloodMagic.MODID, name));
} }
/** /**
@ -110,7 +98,7 @@ public class BloodMagicAPI
*/ */
public static Block getBlock(String name) public static Block getBlock(String name)
{ {
return ForgeRegistries.BLOCKS.getValue(new ResourceLocation(Constants.Mod.MODID, name)); return ForgeRegistries.BLOCKS.getValue(new ResourceLocation(BloodMagic.MODID, name));
} }
/** /**

View file

@ -2,7 +2,7 @@ package WayofTime.bloodmagic.api;
import java.util.Locale; import java.util.Locale;
import lombok.Getter; import WayofTime.bloodmagic.BloodMagic;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
@ -132,11 +132,7 @@ public class Constants
public static class Mod public static class Mod
{ {
public static final String MODID = "bloodmagic"; public static final String DOMAIN = BloodMagic.MODID.toLowerCase(Locale.ENGLISH) + ":";
public static final String DOMAIN = MODID.toLowerCase(Locale.ENGLISH) + ":";
public static final String NAME = "Blood Magic: Alchemical Wizardry";
public static final String VERSION = "@VERSION@";
public static final String DEPEND = "required-after:guideapi;";
} }
public static final class Gui public static final class Gui
@ -151,19 +147,19 @@ public class Constants
public static class Compat public static class Compat
{ {
public static final String JEI_CATEGORY_ALTAR = Mod.MODID + ":altar"; public static final String JEI_CATEGORY_ALTAR = BloodMagic.MODID + ":altar";
public static final String JEI_CATEGORY_BINDING = Mod.MODID + ":binding"; public static final String JEI_CATEGORY_BINDING = BloodMagic.MODID + ":binding";
public static final String JEI_CATEGORY_ALCHEMYARRAY = Mod.MODID + ":alchemyArray"; public static final String JEI_CATEGORY_ALCHEMYARRAY = BloodMagic.MODID + ":alchemyArray";
public static final String JEI_CATEGORY_SOULFORGE = Mod.MODID + ":soulForge"; public static final String JEI_CATEGORY_SOULFORGE = BloodMagic.MODID + ":soulForge";
public static final String JEI_CATEGORY_ALCHEMYTABLE = Mod.MODID + ":salchemyTable"; public static final String JEI_CATEGORY_ALCHEMYTABLE = BloodMagic.MODID + ":salchemyTable";
public static final String JEI_CATEGORY_ARMOURDOWNGRADE = Mod.MODID + ":armourDowngrade"; public static final String JEI_CATEGORY_ARMOURDOWNGRADE = BloodMagic.MODID + ":armourDowngrade";
public static final String WAILA_CONFIG_BYPASS_SNEAK = Mod.MODID + ".bypassSneak"; public static final String WAILA_CONFIG_BYPASS_SNEAK = BloodMagic.MODID + ".bypassSneak";
public static final String WAILA_CONFIG_ALTAR = Mod.MODID + ".bloodAltar"; public static final String WAILA_CONFIG_ALTAR = BloodMagic.MODID + ".bloodAltar";
public static final String WAILA_CONFIG_TELEPOSER = Mod.MODID + ".teleposer"; public static final String WAILA_CONFIG_TELEPOSER = BloodMagic.MODID + ".teleposer";
public static final String WAILA_CONFIG_RITUAL = Mod.MODID + ".ritualController"; public static final String WAILA_CONFIG_RITUAL = BloodMagic.MODID + ".ritualController";
public static final String WAILA_CONFIG_ARRAY = Mod.MODID + ".array"; public static final String WAILA_CONFIG_ARRAY = BloodMagic.MODID + ".array";
public static final String WAILA_CONFIG_BLOOD_TANK = Mod.MODID + ".bloodTank"; public static final String WAILA_CONFIG_BLOOD_TANK = BloodMagic.MODID + ".bloodTank";
public static final Item THAUMCRAFT_GOGGLES = ForgeRegistries.ITEMS.getValue(new ResourceLocation("Thaumcraft", "goggles")); public static final Item THAUMCRAFT_GOGGLES = ForgeRegistries.ITEMS.getValue(new ResourceLocation("Thaumcraft", "goggles"));
} }
@ -187,12 +183,6 @@ public class Constants
BOUND_PICKAXE("ItemBoundPickaxe"), BOUND_PICKAXE("ItemBoundPickaxe"),
BOUND_SHOVEL("ItemBoundShovel"), BOUND_SHOVEL("ItemBoundShovel"),
BOUND_SWORD("ItemBoundSword"), BOUND_SWORD("ItemBoundSword"),
/**
* @deprecated - Use
* {@code UniversalBucket.getFilledBucket(ForgeModContainer.getInstance().universalBucket, BloodMagicAPI.getLifeEssence())}
**/
@Deprecated
BUCKET_ESSENCE("ItemBucketEssence"),
COMPONENT("ItemComponent"), COMPONENT("ItemComponent"),
CUTTING_FLUID("ItemCuttingFluid"), CUTTING_FLUID("ItemCuttingFluid"),
DEMON_CRYSTAL("ItemDemonCrystal"), DEMON_CRYSTAL("ItemDemonCrystal"),
@ -257,7 +247,6 @@ public class Constants
SIGIL_BOUNCE("ItemSigilBounce"), SIGIL_BOUNCE("ItemSigilBounce"),
SIGIL_FROST("ItemSigilFrost"); SIGIL_FROST("ItemSigilFrost");
@Getter
private final String regName; private final String regName;
BloodMagicItem(String regName) BloodMagicItem(String regName)
@ -267,7 +256,12 @@ public class Constants
public Item getItem() public Item getItem()
{ {
return BloodMagicAPI.getItem(getRegName()); return BloodMagicAPI.getItem(regName);
}
public String getRegName()
{
return regName;
} }
} }
@ -319,7 +313,6 @@ public class Constants
INVERSION_PILLAR("BlockInversionPillar"), INVERSION_PILLAR("BlockInversionPillar"),
INVERSION_PILLAR_END("BlockInversionPillarEnd"); INVERSION_PILLAR_END("BlockInversionPillarEnd");
@Getter
private final String regName; private final String regName;
BloodMagicBlock(String regName) BloodMagicBlock(String regName)
@ -329,7 +322,12 @@ public class Constants
public Block getBlock() public Block getBlock()
{ {
return BloodMagicAPI.getBlock(getRegName()); return BloodMagicAPI.getBlock(regName);
}
public String getRegName()
{
return regName;
} }
} }
} }

View file

@ -1,7 +1,5 @@
package WayofTime.bloodmagic.api.alchemyCrafting; package WayofTime.bloodmagic.api.alchemyCrafting;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
@ -10,12 +8,14 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.bloodmagic.api.iface.IAlchemyArray; import WayofTime.bloodmagic.api.iface.IAlchemyArray;
@RequiredArgsConstructor
public abstract class AlchemyArrayEffect public abstract class AlchemyArrayEffect
{ {
@Getter
public final String key; public final String key;
public AlchemyArrayEffect(String key) {
this.key = key;
}
public abstract boolean update(TileEntity tile, int ticksActive); public abstract boolean update(TileEntity tile, int ticksActive);
public abstract void writeToNBT(NBTTagCompound tag); public abstract void writeToNBT(NBTTagCompound tag);
@ -28,4 +28,8 @@ public abstract class AlchemyArrayEffect
{ {
} }
public String getKey() {
return key;
}
} }

View file

@ -1,12 +1,10 @@
package WayofTime.bloodmagic.api.altar; package WayofTime.bloodmagic.api.altar;
import lombok.Getter;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
/** /**
* Used for building the altar structure. * Used for building the altar structure.
*/ */
@Getter
public class AltarComponent public class AltarComponent
{ {
private BlockPos offset; private BlockPos offset;
@ -50,4 +48,16 @@ public class AltarComponent
this.upgradeSlot = true; this.upgradeSlot = true;
return this; return this;
} }
public BlockPos getOffset() {
return offset;
}
public boolean isUpgradeSlot() {
return upgradeSlot;
}
public EnumAltarComponent getComponent() {
return component;
}
} }

View file

@ -1,12 +1,5 @@
package WayofTime.bloodmagic.api.altar; package WayofTime.bloodmagic.api.altar;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class AltarUpgrade public class AltarUpgrade
{ {
private int speedCount; private int speedCount;
@ -20,6 +13,22 @@ public class AltarUpgrade
private int accelerationCount; private int accelerationCount;
private int chargingCount; private int chargingCount;
public AltarUpgrade(int speedCount, int efficiencyCount, int sacrificeCount, int selfSacrificeCount, int displacementCount, int capacityCount, int orbCapacityCount, int betterCapacityCount, int accelerationCount, int chargingCount) {
this.speedCount = speedCount;
this.efficiencyCount = efficiencyCount;
this.sacrificeCount = sacrificeCount;
this.selfSacrificeCount = selfSacrificeCount;
this.displacementCount = displacementCount;
this.capacityCount = capacityCount;
this.orbCapacityCount = orbCapacityCount;
this.betterCapacityCount = betterCapacityCount;
this.accelerationCount = accelerationCount;
this.chargingCount = chargingCount;
}
public AltarUpgrade() {
}
// Adders // Adders
public AltarUpgrade addSpeed() public AltarUpgrade addSpeed()
@ -81,4 +90,44 @@ public class AltarUpgrade
chargingCount++; chargingCount++;
return this; return this;
} }
public int getSpeedCount() {
return speedCount;
}
public int getEfficiencyCount() {
return efficiencyCount;
}
public int getSacrificeCount() {
return sacrificeCount;
}
public int getSelfSacrificeCount() {
return selfSacrificeCount;
}
public int getDisplacementCount() {
return displacementCount;
}
public int getCapacityCount() {
return capacityCount;
}
public int getOrbCapacityCount() {
return orbCapacityCount;
}
public int getBetterCapacityCount() {
return betterCapacityCount;
}
public int getAccelerationCount() {
return accelerationCount;
}
public int getChargingCount() {
return chargingCount;
}
} }

View file

@ -2,12 +2,9 @@ package WayofTime.bloodmagic.api.altar;
import java.util.Locale; import java.util.Locale;
import lombok.Getter;
/** /**
* List of different components used to construct different tiers of altars. * List of different components used to construct different tiers of altars.
*/ */
@Getter
public enum EnumAltarComponent public enum EnumAltarComponent
{ {
GLOWSTONE, GLOWSTONE,
@ -24,4 +21,8 @@ public enum EnumAltarComponent
{ {
this.key = BASE + name().toLowerCase(Locale.ENGLISH); this.key = BASE + name().toLowerCase(Locale.ENGLISH);
} }
public String getKey() {
return key;
}
} }

View file

@ -1,12 +1,10 @@
package WayofTime.bloodmagic.api.altar; package WayofTime.bloodmagic.api.altar;
import lombok.Getter;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import java.util.ArrayList; import java.util.ArrayList;
//@formatter:off //@formatter:off
@Getter
public enum EnumAltarTier public enum EnumAltarTier
{ {
ONE(), TWO() ONE(), TWO()
@ -152,4 +150,8 @@ public enum EnumAltarTier
{ {
return ordinal() + 1; return ordinal() + 1;
} }
public ArrayList<AltarComponent> getAltarComponents() {
return altarComponents;
}
} }

View file

@ -1,7 +1,6 @@
package WayofTime.bloodmagic.api.event; package WayofTime.bloodmagic.api.event;
import WayofTime.bloodmagic.api.registry.AltarRecipeRegistry; import WayofTime.bloodmagic.api.registry.AltarRecipeRegistry;
import lombok.Getter;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.eventhandler.Event; import net.minecraftforge.fml.common.eventhandler.Event;
@ -10,7 +9,6 @@ import net.minecraftforge.fml.common.eventhandler.Event;
* *
* It is not cancelable, however you can modify the output stack. * It is not cancelable, however you can modify the output stack.
*/ */
@Getter
public class AltarCraftedEvent extends Event public class AltarCraftedEvent extends Event
{ {
@ -28,4 +26,12 @@ public class AltarCraftedEvent extends Event
this.altarRecipe = altarRecipe; this.altarRecipe = altarRecipe;
this.output = output; this.output = output;
} }
public AltarRecipeRegistry.AltarRecipe getAltarRecipe() {
return altarRecipe;
}
public ItemStack getOutput() {
return output;
}
} }

View file

@ -4,5 +4,5 @@ import net.minecraft.util.EnumFacing;
public interface IAlchemyArray public interface IAlchemyArray
{ {
public abstract EnumFacing getRotation(); EnumFacing getRotation();
} }

View file

@ -3,7 +3,6 @@ package WayofTime.bloodmagic.api.impl;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.iface.ISigil; import WayofTime.bloodmagic.api.iface.ISigil;
import WayofTime.bloodmagic.api.util.helper.NBTHelper; import WayofTime.bloodmagic.api.util.helper.NBTHelper;
import lombok.Getter;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -13,7 +12,6 @@ import net.minecraft.world.World;
*/ */
public class ItemSigil extends ItemBindable implements ISigil public class ItemSigil extends ItemBindable implements ISigil
{ {
@Getter
private int lpUsed; private int lpUsed;
public ItemSigil(int lpUsed) public ItemSigil(int lpUsed)
@ -49,4 +47,8 @@ public class ItemSigil extends ItemBindable implements ISigil
{ {
return false; return false;
} }
public int getLpUsed() {
return lpUsed;
}
} }

View file

@ -1,22 +1,23 @@
package WayofTime.bloodmagic.api.orb; package WayofTime.bloodmagic.api.orb;
import WayofTime.bloodmagic.api.registry.OrbRegistry; import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraftforge.registries.IForgeRegistryEntry;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
/** /**
* Base object for all Blood Orbs. Makes Orb creation quite a bit easier. * Base object for all Blood Orbs. Makes Orb creation quite a bit easier.
* *
* Just create a new BloodOrb instance then register it with * Just create a new BloodOrb instance then register it in {@link net.minecraftforge.event.RegistryEvent.Register<BloodOrb>}
* {@link OrbRegistry#registerOrb(BloodOrb)} This will allow the use of just one
* item ID for all orbs. If an addon dev needs more control over the intricacies
* of their orb (custom right clicking, renderers, etc), they can just create
* their own item as normal.
*/ */
public class BloodOrb public class BloodOrb extends IForgeRegistryEntry.Impl<BloodOrb>
{ {
private String name; private final String name;
private int tier; private final int tier;
private int capacity; private final int capacity;
private String owner = "BloodMagic"; @Nullable
private ModelResourceLocation modelLocation;
/** /**
* A base object for BloodOrbs. A bit cleaner than the old way through * A base object for BloodOrbs. A bit cleaner than the old way through
@ -51,26 +52,19 @@ public class BloodOrb
return capacity; return capacity;
} }
public String getOwner() @Nullable
{ public ModelResourceLocation getModelLocation() {
return owner; return modelLocation;
} }
/** public BloodOrb withModel(@Nonnull ModelResourceLocation modelLocation) {
* For setting the MODID of the mod that creates the Orb. Not required, but this.modelLocation = modelLocation;
* preferred.
*
* @return - The BloodOrb object for further use.
*/
public BloodOrb setOwner(String owner)
{
this.owner = owner;
return this; return this;
} }
@Override @Override
public String toString() public String toString()
{ {
return "BloodOrb{" + "name='" + name + '\'' + ", tier=" + tier + ", capacity=" + capacity + ", owner=" + owner + '}'; return "BloodOrb{" + "name='" + name + '\'' + ", tier=" + tier + ", capacity=" + capacity + ", owner=" + getRegistryName() + '}';
} }
} }

View file

@ -1,10 +1,11 @@
package WayofTime.bloodmagic.api.orb; package WayofTime.bloodmagic.api.orb;
import net.minecraft.item.ItemStack;
import javax.annotation.Nullable;
public interface IBloodOrb public interface IBloodOrb
{ {
BloodOrb getOrb(int meta); @Nullable
BloodOrb getOrb(ItemStack stack);
int getMaxEssence(int meta);
int getOrbLevel(int meta);
} }

View file

@ -1,4 +1,5 @@
@API(owner = Constants.Mod.MODID, provides = Constants.Mod.MODID + "|API", apiVersion = Constants.Mod.VERSION) @API(owner = BloodMagic.MODID, provides = BloodMagic.MODID + "|API", apiVersion = BloodMagic.VERSION)
package WayofTime.bloodmagic.api; package WayofTime.bloodmagic.api;
import WayofTime.bloodmagic.BloodMagic;
import net.minecraftforge.fml.common.API; import net.minecraftforge.fml.common.API;

View file

@ -5,27 +5,20 @@ import java.util.Iterator;
import java.util.List; import java.util.List;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.ToString;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
import org.apache.commons.lang3.builder.ToStringBuilder;
@EqualsAndHashCode
@ToString
public class AlchemyTableRecipe public class AlchemyTableRecipe
{ {
protected ItemStack output = ItemStack.EMPTY; protected ItemStack output = ItemStack.EMPTY;
protected ArrayList<Object> input = new ArrayList<Object>(); protected ArrayList<Object> input = new ArrayList<Object>();
@Getter
protected int lpDrained; protected int lpDrained;
@Getter
protected int ticksRequired; protected int ticksRequired;
@Getter
protected int tierRequired; protected int tierRequired;
public AlchemyTableRecipe(Block result, int lpDrained, int ticksRequired, int tierRequired, Object... recipe) public AlchemyTableRecipe(Block result, int lpDrained, int ticksRequired, int tierRequired, Object... recipe)
@ -186,4 +179,52 @@ public class AlchemyTableRecipe
return copyStack; return copyStack;
} }
public int getLpDrained() {
return lpDrained;
}
public int getTicksRequired() {
return ticksRequired;
}
public int getTierRequired() {
return tierRequired;
}
@Override
public String toString() {
return new ToStringBuilder(this)
.append("output", output)
.append("input", input)
.append("lpDrained", lpDrained)
.append("ticksRequired", ticksRequired)
.append("tierRequired", tierRequired)
.append("recipeSize", getRecipeSize())
.toString();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof AlchemyTableRecipe)) return false;
AlchemyTableRecipe that = (AlchemyTableRecipe) o;
if (lpDrained != that.lpDrained) return false;
if (ticksRequired != that.ticksRequired) return false;
if (tierRequired != that.tierRequired) return false;
if (output != null ? !output.equals(that.output) : that.output != null) return false;
return input != null ? input.equals(that.input) : that.input == null;
}
@Override
public int hashCode() {
int result = output != null ? output.hashCode() : 0;
result = 31 * result + (input != null ? input.hashCode() : 0);
result = 31 * result + lpDrained;
result = 31 * result + ticksRequired;
result = 31 * result + tierRequired;
return result;
}
} }

View file

@ -1,28 +1,22 @@
package WayofTime.bloodmagic.api.recipe; package WayofTime.bloodmagic.api.recipe;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.ToString;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
import org.apache.commons.lang3.builder.ToStringBuilder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
@EqualsAndHashCode
@ToString
public class TartaricForgeRecipe public class TartaricForgeRecipe
{ {
protected ItemStack output = null; protected ItemStack output = null;
protected List<Object> input = new ArrayList<Object>(); protected List<Object> input = new ArrayList<Object>();
@Getter
protected double minimumSouls; protected double minimumSouls;
@Getter
protected double soulsDrained; protected double soulsDrained;
public TartaricForgeRecipe(Block result, double minSouls, double drain, Object... recipe) public TartaricForgeRecipe(Block result, double minSouls, double drain, Object... recipe)
@ -145,4 +139,50 @@ public class TartaricForgeRecipe
{ {
return this.input; return this.input;
} }
public double getMinimumSouls() {
return minimumSouls;
}
public double getSoulsDrained() {
return soulsDrained;
}
@Override
public String toString() {
return new ToStringBuilder(this)
.append("output", output)
.append("input", input)
.append("minimumSouls", minimumSouls)
.append("soulsDrained", soulsDrained)
.append("recipeSize", getRecipeSize())
.append("recipeOutput", getRecipeOutput())
.toString();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof TartaricForgeRecipe)) return false;
TartaricForgeRecipe that = (TartaricForgeRecipe) o;
if (Double.compare(that.minimumSouls, minimumSouls) != 0) return false;
if (Double.compare(that.soulsDrained, soulsDrained) != 0) return false;
if (output != null ? !output.equals(that.output) : that.output != null) return false;
return input != null ? input.equals(that.input) : that.input == null;
}
@Override
public int hashCode() {
int result;
long temp;
result = output != null ? output.hashCode() : 0;
result = 31 * result + (input != null ? input.hashCode() : 0);
temp = Double.doubleToLongBits(minimumSouls);
result = 31 * result + (int) (temp ^ (temp >>> 32));
temp = Double.doubleToLongBits(soulsDrained);
result = 31 * result + (int) (temp ^ (temp >>> 32));
return result;
}
} }

View file

@ -5,11 +5,9 @@ import WayofTime.bloodmagic.api.ItemStackWrapper;
import WayofTime.bloodmagic.api.altar.EnumAltarTier; import WayofTime.bloodmagic.api.altar.EnumAltarTier;
import com.google.common.collect.BiMap; import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap; import com.google.common.collect.HashBiMap;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.ToString;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
import org.apache.commons.lang3.builder.ToStringBuilder;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@ -34,7 +32,7 @@ public class AltarRecipeRegistry
if (!recipes.containsValue(altarRecipe) && altarRecipe.getInput().size() > 0) if (!recipes.containsValue(altarRecipe) && altarRecipe.getInput().size() > 0)
recipes.put(altarRecipe.getInput(), altarRecipe); recipes.put(altarRecipe.getInput(), altarRecipe);
else else
BloodMagicAPI.getLogger().error("Error adding altar recipe for input [{}].", altarRecipe.toString()); BloodMagicAPI.logger.error("Error adding altar recipe for input [{}].", altarRecipe.toString());
} }
public static void registerFillRecipe(ItemStack orbStack, EnumAltarTier tier, int maxForOrb, int consumeRate, int drainRate) public static void registerFillRecipe(ItemStack orbStack, EnumAltarTier tier, int maxForOrb, int consumeRate, int drainRate)
@ -87,9 +85,6 @@ public class AltarRecipeRegistry
return HashBiMap.create(recipes); return HashBiMap.create(recipes);
} }
@Getter
@ToString
@EqualsAndHashCode
public static class AltarRecipe public static class AltarRecipe
{ {
private final List<ItemStackWrapper> input; private final List<ItemStackWrapper> input;
@ -174,5 +169,74 @@ public class AltarRecipeRegistry
return false; return false;
} }
public List<ItemStackWrapper> getInput() {
return input;
}
public ItemStack getOutput() {
return output;
}
public EnumAltarTier getMinTier() {
return minTier;
}
public int getSyphon() {
return syphon;
}
public int getConsumeRate() {
return consumeRate;
}
public int getDrainRate() {
return drainRate;
}
public boolean isFillable() {
return fillable;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof AltarRecipe)) return false;
AltarRecipe that = (AltarRecipe) o;
if (syphon != that.syphon) return false;
if (consumeRate != that.consumeRate) return false;
if (drainRate != that.drainRate) return false;
if (fillable != that.fillable) return false;
if (input != null ? !input.equals(that.input) : that.input != null) return false;
if (output != null ? !output.equals(that.output) : that.output != null) return false;
return minTier == that.minTier;
}
@Override
public int hashCode() {
int result = input != null ? input.hashCode() : 0;
result = 31 * result + (output != null ? output.hashCode() : 0);
result = 31 * result + (minTier != null ? minTier.hashCode() : 0);
result = 31 * result + syphon;
result = 31 * result + consumeRate;
result = 31 * result + drainRate;
result = 31 * result + (fillable ? 1 : 0);
return result;
}
@Override
public String toString() {
return new ToStringBuilder(this)
.append("input", input)
.append("output", output)
.append("minTier", minTier)
.append("syphon", syphon)
.append("consumeRate", consumeRate)
.append("drainRate", drainRate)
.append("fillable", fillable)
.toString();
}
} }
} }

View file

@ -5,13 +5,16 @@ import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.altar.EnumAltarTier; import WayofTime.bloodmagic.api.altar.EnumAltarTier;
import WayofTime.bloodmagic.api.orb.BloodOrb; import WayofTime.bloodmagic.api.orb.BloodOrb;
import WayofTime.bloodmagic.api.orb.IBloodOrb; import WayofTime.bloodmagic.api.orb.IBloodOrb;
import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.ArrayListMultimap;
import net.minecraft.client.renderer.block.model.ModelBakery; import net.minecraft.client.renderer.block.model.ModelBakery;
import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@ -23,57 +26,14 @@ import java.util.List;
* This is only for those who wish to add a basic {@link BloodOrb}. If you need * This is only for those who wish to add a basic {@link BloodOrb}. If you need
* custom handling, you will need your own item class. * custom handling, you will need your own item class.
*/ */
@Deprecated
public class OrbRegistry public class OrbRegistry
{ {
private static List<BloodOrb> orbs = new ArrayList<BloodOrb>(); private static List<BloodOrb> orbs = new ArrayList<BloodOrb>();
private static ArrayListMultimap<Integer, ItemStack> tierMap = ArrayListMultimap.create(); public static ArrayListMultimap<Integer, ItemStack> tierMap = ArrayListMultimap.create();
private static Item orbItem = Constants.BloodMagicItem.BLOOD_ORB.getItem(); @GameRegistry.ObjectHolder("bloodmagic:blood_orb")
private static final Item ORB_ITEM = null;
public static void registerOrb(BloodOrb orb)
{
if (!orbs.contains(orb))
{
orbs.add(orb);
registerOrbForTier(orb.getTier(), getOrbStack(orb));
} else
BloodMagicAPI.getLogger().error("Error adding orb %s. Orb already exists!", orb.toString());
}
public static void registerOrbForTier(int tier, ItemStack stack)
{
if (stack.getItem() instanceof IBloodOrb)
tierMap.put(tier, stack);
}
@SideOnly(Side.CLIENT)
public static void registerOrbTexture(BloodOrb orb, ResourceLocation resourceLocation)
{
int meta = getIndexOf(orb);
ModelBakery.registerItemVariants(orbItem, resourceLocation);
ModelLoader.setCustomModelResourceLocation(orbItem, meta, new ModelResourceLocation(resourceLocation, "inventory"));
}
public static BloodOrb getOrb(int index)
{
return orbs.get(index);
}
public static int getIndexOf(BloodOrb orb)
{
return orbs.indexOf(orb);
}
public static boolean isEmpty()
{
return orbs.isEmpty();
}
public static int getSize()
{
return orbs.size();
}
public static List<ItemStack> getOrbsForTier(int tier) public static List<ItemStack> getOrbsForTier(int tier)
{ {
@ -105,12 +65,11 @@ public class OrbRegistry
public static ItemStack getOrbStack(BloodOrb orb) public static ItemStack getOrbStack(BloodOrb orb)
{ {
return new ItemStack(orbItem, 1, getIndexOf(orb)); ItemStack ret = new ItemStack(ORB_ITEM);
} NBTTagCompound tag = new NBTTagCompound();
tag.setString("orb", orb.getRegistryName().toString());
public static List<BloodOrb> getOrbs() ret.setTagCompound(tag);
{ return ret;
return new ArrayList<BloodOrb>(orbs);
} }
public static ArrayListMultimap<Integer, ItemStack> getTierMap() public static ArrayListMultimap<Integer, ItemStack> getTierMap()

View file

@ -6,10 +6,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
@ -21,15 +17,12 @@ import net.minecraft.world.World;
import WayofTime.bloodmagic.api.soul.DemonWillHolder; import WayofTime.bloodmagic.api.soul.DemonWillHolder;
import WayofTime.bloodmagic.api.soul.EnumDemonWillType; import WayofTime.bloodmagic.api.soul.EnumDemonWillType;
import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler; import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler;
import org.apache.commons.lang3.builder.ToStringBuilder;
/** /**
* Abstract class for creating new rituals. Rituals need be registered with * Abstract class for creating new rituals. Rituals need be registered with
* {@link WayofTime.bloodmagic.api.registry.RitualRegistry#registerRitual(Ritual, String)} * {@link WayofTime.bloodmagic.api.registry.RitualRegistry#registerRitual(Ritual, String)}
*/ */
@Getter
@RequiredArgsConstructor
@EqualsAndHashCode(exclude = { "modableRangeMap", "ritualComponents", "renderer", "volumeRangeMap", "horizontalRangeMap", "verticalRangeMap" })
@ToString
public abstract class Ritual public abstract class Ritual
{ {
public final ArrayList<RitualComponent> ritualComponents = new ArrayList<RitualComponent>(); public final ArrayList<RitualComponent> ritualComponents = new ArrayList<RitualComponent>();
@ -44,6 +37,14 @@ public abstract class Ritual
protected final Map<String, Integer> horizontalRangeMap = new HashMap<String, Integer>(); protected final Map<String, Integer> horizontalRangeMap = new HashMap<String, Integer>();
protected final Map<String, Integer> verticalRangeMap = new HashMap<String, Integer>(); protected final Map<String, Integer> verticalRangeMap = new HashMap<String, Integer>();
public Ritual(String name, int crystalLevel, int activationCost, RitualRenderer renderer, String unlocalizedName) {
this.name = name;
this.crystalLevel = crystalLevel;
this.activationCost = activationCost;
this.renderer = renderer;
this.unlocalizedName = unlocalizedName;
}
/** /**
* @param name * @param name
* - The name of the ritual * - The name of the ritual
@ -365,4 +366,84 @@ public abstract class Ritual
} }
public abstract Ritual getNewCopy(); public abstract Ritual getNewCopy();
public ArrayList<RitualComponent> getRitualComponents() {
return ritualComponents;
}
public String getName() {
return name;
}
public int getCrystalLevel() {
return crystalLevel;
}
public int getActivationCost() {
return activationCost;
}
public RitualRenderer getRenderer() {
return renderer;
}
public String getUnlocalizedName() {
return unlocalizedName;
}
public Map<String, AreaDescriptor> getModableRangeMap() {
return modableRangeMap;
}
public Map<String, Integer> getVolumeRangeMap() {
return volumeRangeMap;
}
public Map<String, Integer> getHorizontalRangeMap() {
return horizontalRangeMap;
}
public Map<String, Integer> getVerticalRangeMap() {
return verticalRangeMap;
}
@Override
public String toString() {
return new ToStringBuilder(this)
.append("ritualComponents", ritualComponents)
.append("name", name)
.append("crystalLevel", crystalLevel)
.append("activationCost", activationCost)
.append("renderer", renderer)
.append("unlocalizedName", unlocalizedName)
.append("modableRangeMap", modableRangeMap)
.append("volumeRangeMap", volumeRangeMap)
.append("horizontalRangeMap", horizontalRangeMap)
.append("verticalRangeMap", verticalRangeMap)
.append("refreshTime", getRefreshTime())
.append("listOfRanges", getListOfRanges())
.toString();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Ritual)) return false;
Ritual ritual = (Ritual) o;
if (crystalLevel != ritual.crystalLevel) return false;
if (activationCost != ritual.activationCost) return false;
if (name != null ? !name.equals(ritual.name) : ritual.name != null) return false;
return unlocalizedName != null ? unlocalizedName.equals(ritual.unlocalizedName) : ritual.unlocalizedName == null;
}
@Override
public int hashCode() {
int result = name != null ? name.hashCode() : 0;
result = 31 * result + crystalLevel;
result = 31 * result + activationCost;
result = 31 * result + (unlocalizedName != null ? unlocalizedName.hashCode() : 0);
return result;
}
} }

View file

@ -1,7 +1,5 @@
package WayofTime.bloodmagic.api.ritual; package WayofTime.bloodmagic.api.ritual;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
@ -9,13 +7,16 @@ import net.minecraft.util.math.BlockPos;
* Used to set a {@link EnumRuneType} type to a given {@link BlockPos} for usage * Used to set a {@link EnumRuneType} type to a given {@link BlockPos} for usage
* in Ritual creation. * in Ritual creation.
*/ */
@Getter
@RequiredArgsConstructor
public class RitualComponent public class RitualComponent
{ {
private final BlockPos offset; private final BlockPos offset;
private final EnumRuneType runeType; private final EnumRuneType runeType;
public RitualComponent(BlockPos offset, EnumRuneType runeType) {
this.offset = offset;
this.runeType = runeType;
}
public int getX(EnumFacing direction) public int getX(EnumFacing direction)
{ {
switch (direction) switch (direction)
@ -55,4 +56,12 @@ public class RitualComponent
{ {
return new BlockPos(getX(direction), offset.getY(), getZ(direction)); return new BlockPos(getX(direction), offset.getY(), getZ(direction));
} }
public BlockPos getOffset() {
return offset;
}
public EnumRuneType getRuneType() {
return runeType;
}
} }

View file

@ -1,9 +1,6 @@
package WayofTime.bloodmagic.api.ritual.imperfect; package WayofTime.bloodmagic.api.ritual.imperfect;
import WayofTime.bloodmagic.api.BlockStack; import WayofTime.bloodmagic.api.BlockStack;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -12,9 +9,6 @@ import net.minecraft.world.World;
* registered with * registered with
* {@link WayofTime.bloodmagic.api.registry.ImperfectRitualRegistry#registerRitual(ImperfectRitual)} * {@link WayofTime.bloodmagic.api.registry.ImperfectRitualRegistry#registerRitual(ImperfectRitual)}
*/ */
@RequiredArgsConstructor
@Getter
@EqualsAndHashCode
public abstract class ImperfectRitual public abstract class ImperfectRitual
{ {
@ -24,6 +18,14 @@ public abstract class ImperfectRitual
private final boolean lightshow; private final boolean lightshow;
private final String unlocalizedName; private final String unlocalizedName;
public ImperfectRitual(String name, BlockStack requiredBlock, int activationCost, boolean lightshow, String unlocalizedName) {
this.name = name;
this.requiredBlock = requiredBlock;
this.activationCost = activationCost;
this.lightshow = lightshow;
this.unlocalizedName = unlocalizedName;
}
/** /**
* @param name * @param name
* - The name of the ritual * - The name of the ritual
@ -49,9 +51,54 @@ public abstract class ImperfectRitual
*/ */
public abstract boolean onActivate(IImperfectRitualStone imperfectRitualStone, EntityPlayer player); public abstract boolean onActivate(IImperfectRitualStone imperfectRitualStone, EntityPlayer player);
public String getName() {
return name;
}
public BlockStack getRequiredBlock() {
return requiredBlock;
}
public int getActivationCost() {
return activationCost;
}
public boolean isLightshow() {
return lightshow;
}
public String getUnlocalizedName() {
return unlocalizedName;
}
@Override @Override
public String toString() public String toString()
{ {
return getName() + ":" + getRequiredBlock().toString() + "@" + getActivationCost(); return getName() + ":" + getRequiredBlock().toString() + "@" + getActivationCost();
} }
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof ImperfectRitual)) return false;
ImperfectRitual that = (ImperfectRitual) o;
if (activationCost != that.activationCost) return false;
if (lightshow != that.lightshow) return false;
if (name != null ? !name.equals(that.name) : that.name != null) return false;
if (requiredBlock != null ? !requiredBlock.equals(that.requiredBlock) : that.requiredBlock != null)
return false;
return unlocalizedName != null ? unlocalizedName.equals(that.unlocalizedName) : that.unlocalizedName == null;
}
@Override
public int hashCode() {
int result = name != null ? name.hashCode() : 0;
result = 31 * result + (requiredBlock != null ? requiredBlock.hashCode() : 0);
result = 31 * result + activationCost;
result = 31 * result + (lightshow ? 1 : 0);
result = 31 * result + (unlocalizedName != null ? unlocalizedName.hashCode() : 0);
return result;
}
} }

View file

@ -4,7 +4,7 @@ import WayofTime.bloodmagic.api.util.helper.PlayerHelper;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagList;
import net.minecraft.world.WorldSavedData; import net.minecraft.world.storage.WorldSavedData;
import java.util.*; import java.util.*;

View file

@ -5,7 +5,6 @@ import WayofTime.bloodmagic.api.event.AddToNetworkEvent;
import WayofTime.bloodmagic.api.event.SoulNetworkEvent; import WayofTime.bloodmagic.api.event.SoulNetworkEvent;
import WayofTime.bloodmagic.api.util.helper.PlayerHelper; import WayofTime.bloodmagic.api.util.helper.PlayerHelper;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import lombok.Getter;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.MobEffects; import net.minecraft.init.MobEffects;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
@ -18,7 +17,6 @@ import net.minecraftforge.fml.common.eventhandler.Event;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.UUID; import java.util.UUID;
@Getter
public class SoulNetwork implements INBTSerializable<NBTTagCompound> public class SoulNetwork implements INBTSerializable<NBTTagCompound>
{ {
private BMWorldSavedData parent; private BMWorldSavedData parent;
@ -129,7 +127,7 @@ public class SoulNetwork implements INBTSerializable<NBTTagCompound>
if (!user.capabilities.isCreativeMode) if (!user.capabilities.isCreativeMode)
{ {
user.hurtResistantTime = 0; user.hurtResistantTime = 0;
user.attackEntityFrom(BloodMagicAPI.getDamageSource(), 1.0F); user.attackEntityFrom(BloodMagicAPI.damageSource, 1.0F);
} }
} else if (syphon >= 100) } else if (syphon >= 100)
@ -139,7 +137,7 @@ public class SoulNetwork implements INBTSerializable<NBTTagCompound>
for (int i = 0; i < ((syphon + 99) / 100); i++) for (int i = 0; i < ((syphon + 99) / 100); i++)
{ {
user.hurtResistantTime = 0; user.hurtResistantTime = 0;
user.attackEntityFrom(BloodMagicAPI.getDamageSource(), 1.0F); user.attackEntityFrom(BloodMagicAPI.damageSource, 1.0F);
} }
} }
} }
@ -151,7 +149,7 @@ public class SoulNetwork implements INBTSerializable<NBTTagCompound>
if (getParent() != null) if (getParent() != null)
getParent().markDirty(); getParent().markDirty();
else else
BloodMagicAPI.getLogger().error("A SoulNetwork was created, but a parent was not set to allow saving."); BloodMagicAPI.logger.error("A SoulNetwork was created, but a parent was not set to allow saving.");
} }
@Nullable @Nullable
@ -184,6 +182,26 @@ public class SoulNetwork implements INBTSerializable<NBTTagCompound>
return this; return this;
} }
public BMWorldSavedData getParent() {
return parent;
}
public EntityPlayer getCachedPlayer() {
return cachedPlayer;
}
public UUID getPlayerId() {
return playerId;
}
public int getCurrentEssence() {
return currentEssence;
}
public int getOrbTier() {
return orbTier;
}
// INBTSerializable // INBTSerializable
@Override @Override

View file

@ -15,19 +15,19 @@ public class LogHelper
public void info(String info, Object... format) public void info(String info, Object... format)
{ {
if (BloodMagicAPI.isLoggingEnabled()) if (BloodMagicAPI.loggingEnabled)
logger.info(info, format); logger.info(info, format);
} }
public void error(String error, Object... format) public void error(String error, Object... format)
{ {
if (BloodMagicAPI.isLoggingEnabled()) if (BloodMagicAPI.loggingEnabled)
logger.error(error, format); logger.error(error, format);
} }
public void debug(String debug, Object... format) public void debug(String debug, Object... format)
{ {
if (BloodMagicAPI.isLoggingEnabled()) if (BloodMagicAPI.loggingEnabled)
logger.debug(debug, format); logger.debug(debug, format);
} }

View file

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

View file

@ -1,15 +1,14 @@
package WayofTime.bloodmagic.block; package WayofTime.bloodmagic.block;
import WayofTime.bloodmagic.item.block.ItemBlockAlchemyTable;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.properties.PropertyBool;
import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemBlock;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.EnumBlockRenderType; import net.minecraft.util.EnumBlockRenderType;
@ -24,7 +23,7 @@ import WayofTime.bloodmagic.tile.TileAlchemyTable;
import javax.annotation.Nullable; 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 PropertyBool INVISIBLE = PropertyBool.create("invisible");
public static final PropertyEnum<EnumFacing> DIRECTION = PropertyEnum.<EnumFacing>create("direction", EnumFacing.class); public static final PropertyEnum<EnumFacing> DIRECTION = PropertyEnum.<EnumFacing>create("direction", EnumFacing.class);
@ -34,8 +33,8 @@ public class BlockAlchemyTable extends Block
super(Material.ROCK); super(Material.ROCK);
// this.setDefaultState(this.blockState.getBaseState().withProperty(DIRECTION, EnumFacing.DOWN).withProperty(INVISIBLE, false)); // this.setDefaultState(this.blockState.getBaseState().withProperty(DIRECTION, EnumFacing.DOWN).withProperty(INVISIBLE, false));
setUnlocalizedName(Constants.Mod.MODID + ".alchemyTable"); setUnlocalizedName(BloodMagic.MODID + ".alchemyTable");
setCreativeTab(BloodMagic.tabBloodMagic); setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F); setHardness(2.0F);
setResistance(5.0F); setResistance(5.0F);
setHarvestLevel("pickaxe", 0); 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 org.apache.commons.lang3.tuple.Pair;
import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.altar.IAltarManipulator; import WayofTime.bloodmagic.api.altar.IAltarManipulator;
import WayofTime.bloodmagic.api.iface.IAltarReader; import WayofTime.bloodmagic.api.iface.IAltarReader;
import WayofTime.bloodmagic.api.iface.IBindable; import WayofTime.bloodmagic.api.iface.IBindable;
@ -47,8 +46,8 @@ public class BlockAltar extends Block implements IVariantProvider, IDocumentedBl
{ {
super(Material.ROCK); super(Material.ROCK);
setUnlocalizedName(Constants.Mod.MODID + ".altar"); setUnlocalizedName(BloodMagic.MODID + ".altar");
setCreativeTab(BloodMagic.tabBloodMagic); setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F); setHardness(2.0F);
setResistance(5.0F); setResistance(5.0F);
setHarvestLevel("pickaxe", 1); setHarvestLevel("pickaxe", 1);
@ -73,7 +72,7 @@ public class BlockAltar extends Block implements IVariantProvider, IDocumentedBl
TileAltar altar = (TileAltar) tile; TileAltar altar = (TileAltar) tile;
ItemStack orbStack = altar.getStackInSlot(0); 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) if (orbStack.getItem() instanceof IBloodOrb && orbStack.getItem() instanceof IBindable)
{ {

View file

@ -2,6 +2,7 @@ package WayofTime.bloodmagic.block;
import java.util.Random; import java.util.Random;
import WayofTime.bloodmagic.BloodMagic;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
@ -16,8 +17,7 @@ import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
import WayofTime.bloodmagic.registry.ModItems;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@ -29,7 +29,7 @@ public class BlockBloodLight extends Block
{ {
super(Material.CLOTH); super(Material.CLOTH);
setUnlocalizedName(Constants.Mod.MODID + ".bloodLight"); setUnlocalizedName(BloodMagic.MODID + ".bloodLight");
} }
@Nullable @Nullable
@ -109,7 +109,7 @@ public class BlockBloodLight extends Block
if (rand.nextInt(3) != 0) 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); 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);
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.SoundType;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.block.base.BlockEnum; import WayofTime.bloodmagic.block.base.BlockEnum;
import WayofTime.bloodmagic.block.enums.EnumBloodRune; import WayofTime.bloodmagic.block.enums.EnumBloodRune;
import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.client.IVariantProvider;
import WayofTime.bloodmagic.util.helper.TextHelper; import WayofTime.bloodmagic.util.helper.TextHelper;
public class BlockBloodRune extends BlockEnum<EnumBloodRune> implements IVariantProvider public class BlockBloodRune extends BlockEnum<EnumBloodRune>
{ {
public BlockBloodRune() public BlockBloodRune()
{ {
super(Material.ROCK, EnumBloodRune.class); super(Material.ROCK, EnumBloodRune.class);
setUnlocalizedName(Constants.Mod.MODID + ".rune."); setUnlocalizedName(BloodMagic.MODID + ".rune.");
setCreativeTab(BloodMagic.tabBloodMagic); setCreativeTab(BloodMagic.TAB_BM);
setSoundType(SoundType.STONE); setSoundType(SoundType.STONE);
setHardness(2.0F); setHardness(2.0F);
setResistance(5.0F); setResistance(5.0F);
@ -38,18 +39,9 @@ public class BlockBloodRune extends BlockEnum<EnumBloodRune> implements IVariant
} }
@Override @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")); tooltip.add(TextHelper.localizeEffect("tooltip.bloodmagic.decoration.safe"));
super.addInformation(stack, player, tooltip, advanced); super.addInformation(stack, world, tooltip, tooltipFlag);
}
@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,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; package WayofTime.bloodmagic.block;
import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.block.base.BlockInteger; import WayofTime.bloodmagic.block.base.BlockInteger;
import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.client.IVariantProvider;
import WayofTime.bloodmagic.item.block.ItemBlockBloodTank;
import WayofTime.bloodmagic.tile.TileBloodTank; import WayofTime.bloodmagic.tile.TileBloodTank;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import net.minecraft.block.SoundType; import net.minecraft.block.SoundType;
@ -11,6 +11,7 @@ import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; 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.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; 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); 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"); super(Material.IRON, TileBloodTank.CAPACITIES.length - 1, "tier");
setUnlocalizedName(Constants.Mod.MODID + ".bloodTank"); setUnlocalizedName(BloodMagic.MODID + ".bloodTank");
setHardness(2.0F); setHardness(2.0F);
setResistance(5.0F); setResistance(5.0F);
setSoundType(SoundType.GLASS); setSoundType(SoundType.GLASS);
setHarvestLevel("pickaxe", 1); setHarvestLevel("pickaxe", 1);
setCreativeTab(BloodMagic.tabBloodMagic); setCreativeTab(BloodMagic.TAB_BM);
setLightOpacity(0); setLightOpacity(0);
} }
@ -105,12 +105,9 @@ public class BlockBloodTank extends BlockInteger implements IVariantProvider
@Override @Override
public boolean onBlockActivated(World world, BlockPos blockPos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) 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); boolean success = FluidUtil.interactWithFluidHandler(player, hand, world, blockPos, side);
TileBloodTank fluidHandler = (TileBloodTank) world.getTileEntity(blockPos); if (success)
FluidActionResult result = FluidUtil.interactWithFluidHandler(held, fluidHandler.getTank(), player);
if (result.isSuccess())
{ {
player.setHeldItem(hand, result.getResult());
world.checkLight(blockPos); world.checkLight(blockPos);
world.updateComparatorOutputLevel(blockPos, this); world.updateComparatorOutputLevel(blockPos, this);
world.markAndNotifyBlock(blockPos, world.getChunkFromBlockCoords(blockPos), state, state, 3); world.markAndNotifyBlock(blockPos, world.getChunkFromBlockCoords(blockPos), state, state, 3);
@ -216,14 +213,19 @@ public class BlockBloodTank extends BlockInteger implements IVariantProvider
return true; return true;
} }
@Override
public ItemBlock getItem() {
return new ItemBlockBloodTank(this);
}
// IVariantProvider // IVariantProvider
@Override @Override
public List<Pair<Integer, String>> getVariants() 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++) 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; 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; package WayofTime.bloodmagic.block;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.google.common.collect.Lists;
import net.minecraft.block.SoundType; import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.util.IStringSerializable; import net.minecraft.util.IStringSerializable;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.block.base.BlockEnum; import WayofTime.bloodmagic.block.base.BlockEnum;
import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.client.IVariantProvider;
@ -21,20 +19,11 @@ public class BlockDemonBase<E extends Enum<E> & IStringSerializable> extends Blo
{ {
super(Material.ROCK, enumClass); super(Material.ROCK, enumClass);
setUnlocalizedName(Constants.Mod.MODID + "." + baseName + "."); setUnlocalizedName(BloodMagic.MODID + "." + baseName + ".");
setCreativeTab(BloodMagic.tabBloodMagic); setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F); setHardness(2.0F);
setResistance(5.0F); setResistance(5.0F);
setSoundType(SoundType.STONE); setSoundType(SoundType.STONE);
setHarvestLevel("pickaxe", 2); 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 java.util.List;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer; 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 org.apache.commons.lang3.tuple.Pair;
import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.soul.IDemonWillGem; import WayofTime.bloodmagic.api.soul.IDemonWillGem;
import WayofTime.bloodmagic.api.soul.IDiscreteDemonWill; import WayofTime.bloodmagic.api.soul.IDiscreteDemonWill;
import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.client.IVariantProvider;
@ -36,8 +34,8 @@ public class BlockDemonCrucible extends Block implements IVariantProvider
{ {
super(Material.ROCK); super(Material.ROCK);
setUnlocalizedName(Constants.Mod.MODID + ".demonCrucible"); setUnlocalizedName(BloodMagic.MODID + ".demonCrucible");
setCreativeTab(BloodMagic.tabBloodMagic); setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F); setHardness(2.0F);
setResistance(5.0F); setResistance(5.0F);
setHarvestLevel("pickaxe", 0); setHarvestLevel("pickaxe", 0);

View file

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

View file

@ -10,32 +10,22 @@ import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.block.base.BlockEnum; import WayofTime.bloodmagic.block.base.BlockEnum;
import WayofTime.bloodmagic.block.enums.EnumSubWillType; import WayofTime.bloodmagic.block.enums.EnumSubWillType;
import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.client.IVariantProvider;
public class BlockDemonLight extends BlockEnum<EnumSubWillType> implements IVariantProvider public class BlockDemonLight extends BlockEnum<EnumSubWillType>
{ {
public BlockDemonLight() public BlockDemonLight()
{ {
super(Material.ROCK, EnumSubWillType.class); super(Material.ROCK, EnumSubWillType.class);
setUnlocalizedName(Constants.Mod.MODID + ".demonlight."); setUnlocalizedName(BloodMagic.MODID + ".demonlight.");
setCreativeTab(BloodMagic.tabBloodMagic); setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F); setHardness(2.0F);
setResistance(5.0F); setResistance(5.0F);
setSoundType(SoundType.STONE); setSoundType(SoundType.STONE);
setHarvestLevel("pickaxe", 2); setHarvestLevel("pickaxe", 2);
setLightLevel(1); 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; package WayofTime.bloodmagic.block;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.google.common.collect.Lists;
import net.minecraft.block.SoundType; import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.IStringSerializable; import net.minecraft.util.IStringSerializable;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.block.base.BlockEnumPillar; 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) public BlockDemonPillarBase(String baseName, Material materialIn, Class<E> enumClass)
{ {
super(materialIn, enumClass); super(materialIn, enumClass);
setUnlocalizedName(Constants.Mod.MODID + "." + baseName + "."); setUnlocalizedName(BloodMagic.MODID + "." + baseName + ".");
setCreativeTab(BloodMagic.tabBloodMagic); setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F); setHardness(2.0F);
setResistance(5.0F); setResistance(5.0F);
setSoundType(SoundType.STONE); setSoundType(SoundType.STONE);
@ -33,18 +30,14 @@ public class BlockDemonPillarBase<E extends Enum<E> & IStringSerializable> exten
@Override @Override
public List<Pair<Integer, String>> getVariants() 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 //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 }; EnumFacing.Axis[] axis = new EnumFacing.Axis[] { EnumFacing.Axis.Y, EnumFacing.Axis.X, EnumFacing.Axis.Z };
for (int i = 0; i < 3; i++) for (int i = 0; i < 3; i++)
{
for (int j = 0; j < this.getTypes().length; j++) for (int j = 0; j < this.getTypes().length; j++)
{ ret.add(Pair.of(i * 5 + j, "axis=" + axis[i] + ",type=" + this.getTypes()[j]));
ret.add(new ImmutablePair<Integer, String>(i * 5 + j, "axis=" + axis[i] + ",type=" + this.getTypes()[j]));
}
}
return ret; return ret;
} }

View file

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

View file

@ -16,7 +16,6 @@ import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.client.IVariantProvider;
import WayofTime.bloodmagic.tile.TileDemonPylon; import WayofTime.bloodmagic.tile.TileDemonPylon;
@ -26,8 +25,8 @@ public class BlockDemonPylon extends BlockContainer implements IVariantProvider
{ {
super(Material.ROCK); super(Material.ROCK);
setUnlocalizedName(Constants.Mod.MODID + ".demonPylon"); setUnlocalizedName(BloodMagic.MODID + ".demonPylon");
setCreativeTab(BloodMagic.tabBloodMagic); setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F); setHardness(2.0F);
setResistance(5.0F); setResistance(5.0F);
setHarvestLevel("pickaxe", 0); setHarvestLevel("pickaxe", 0);

View file

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

View file

@ -3,6 +3,7 @@ package WayofTime.bloodmagic.block;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.google.common.collect.Lists;
import net.minecraft.block.SoundType; import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.util.IStringSerializable; import net.minecraft.util.IStringSerializable;
@ -10,18 +11,17 @@ import net.minecraft.util.IStringSerializable;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.block.base.BlockEnumWall; import WayofTime.bloodmagic.block.base.BlockEnumWall;
import WayofTime.bloodmagic.client.IVariantProvider; 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) public BlockDemonWallBase(String baseName, Material materialIn, Class<E> enumClass)
{ {
super(materialIn, enumClass); super(materialIn, enumClass);
setUnlocalizedName(Constants.Mod.MODID + "." + baseName + "."); setUnlocalizedName(BloodMagic.MODID + "." + baseName + ".");
setCreativeTab(BloodMagic.tabBloodMagic); setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F); setHardness(2.0F);
setResistance(5.0F); setResistance(5.0F);
setSoundType(SoundType.STONE); setSoundType(SoundType.STONE);
@ -31,7 +31,7 @@ public class BlockDemonWallBase<E extends Enum<E> & IStringSerializable> extends
@Override @Override
public List<Pair<Integer, String>> getVariants() 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++) 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")); 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.ArrayList;
import java.util.Random; import java.util.Random;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.block.base.BlockInteger; import WayofTime.bloodmagic.block.base.BlockInteger;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
@ -16,7 +17,6 @@ import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
import WayofTime.bloodmagic.api.teleport.PortalLocation; import WayofTime.bloodmagic.api.teleport.PortalLocation;
import WayofTime.bloodmagic.api.teleport.TeleportQueue; import WayofTime.bloodmagic.api.teleport.TeleportQueue;
@ -35,7 +35,7 @@ public class BlockDimensionalPortal extends BlockInteger
public BlockDimensionalPortal() public BlockDimensionalPortal()
{ {
super(Material.PORTAL, 2); super(Material.PORTAL, 2);
setUnlocalizedName(Constants.Mod.MODID + ".dimensionalPortal"); setUnlocalizedName(BloodMagic.MODID + ".dimensionalPortal");
setBlockUnbreakable(); setBlockUnbreakable();
setResistance(2000); setResistance(2000);
setLightOpacity(0); setLightOpacity(0);

View file

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

View file

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

View file

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

View file

@ -14,7 +14,6 @@ import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.block.base.BlockEnum; import WayofTime.bloodmagic.block.base.BlockEnum;
import WayofTime.bloodmagic.block.enums.EnumInversionCap; import WayofTime.bloodmagic.block.enums.EnumInversionCap;
import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.client.IVariantProvider;
@ -25,8 +24,8 @@ public class BlockInversionPillarEnd extends BlockEnum<EnumInversionCap> impleme
{ {
super(Material.ROCK, EnumInversionCap.class); super(Material.ROCK, EnumInversionCap.class);
setUnlocalizedName(Constants.Mod.MODID + ".inversionpillarend."); setUnlocalizedName(BloodMagic.MODID + ".inversionpillarend.");
setCreativeTab(BloodMagic.tabBloodMagic); setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F); setHardness(2.0F);
setResistance(5.0F); setResistance(5.0F);
setSoundType(SoundType.STONE); setSoundType(SoundType.STONE);

View file

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

View file

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

View file

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

View file

@ -1,8 +1,5 @@
package WayofTime.bloodmagic.block; package WayofTime.bloodmagic.block;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import WayofTime.bloodmagic.block.base.BlockEnum; 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.Side;
import net.minecraftforge.fml.relauncher.SideOnly; 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.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.altar.EnumAltarComponent; import WayofTime.bloodmagic.api.altar.EnumAltarComponent;
import WayofTime.bloodmagic.api.altar.IAltarComponent; import WayofTime.bloodmagic.api.altar.IAltarComponent;
import WayofTime.bloodmagic.block.enums.EnumMimic; import WayofTime.bloodmagic.block.enums.EnumMimic;
import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.registry.RegistrarBloodMagicBlocks;
import WayofTime.bloodmagic.registry.ModBlocks;
import WayofTime.bloodmagic.tile.TileMimic; import WayofTime.bloodmagic.tile.TileMimic;
import WayofTime.bloodmagic.util.Utils; 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; public static final int sentientMimicMeta = 4;
@ -47,8 +39,8 @@ public class BlockMimic extends BlockEnum<EnumMimic> implements IVariantProvider
{ {
super(Material.ROCK, EnumMimic.class); super(Material.ROCK, EnumMimic.class);
setUnlocalizedName(Constants.Mod.MODID + ".mimic."); setUnlocalizedName(BloodMagic.MODID + ".mimic.");
setCreativeTab(BloodMagic.tabBloodMagic); setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F); setHardness(2.0F);
setResistance(5.0F); setResistance(5.0F);
setSoundType(SoundType.STONE); setSoundType(SoundType.STONE);
@ -171,7 +163,7 @@ public class BlockMimic extends BlockEnum<EnumMimic> implements IVariantProvider
{ {
if (block.getRenderType(mimicState) == EnumBlockRenderType.ENTITYBLOCK_ANIMATED) 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); return block.getActualState(mimicState, world, pos);
@ -225,15 +217,6 @@ public class BlockMimic extends BlockEnum<EnumMimic> implements IVariantProvider
super.breakBlock(world, blockPos, blockState); 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 @Override
public boolean hasTileEntity(IBlockState state) { public boolean hasTileEntity(IBlockState state) {
return true; return true;

View file

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

View file

@ -6,6 +6,7 @@ import java.util.List;
import net.minecraft.block.SoundType; import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos; 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 org.apache.commons.lang3.tuple.Pair;
import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.incense.IIncensePath; import WayofTime.bloodmagic.api.incense.IIncensePath;
import WayofTime.bloodmagic.block.base.BlockEnum; import WayofTime.bloodmagic.block.base.BlockEnum;
import WayofTime.bloodmagic.block.enums.EnumPath; import WayofTime.bloodmagic.block.enums.EnumPath;
import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.client.IVariantProvider;
import WayofTime.bloodmagic.util.helper.TextHelper; 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() public BlockPath()
{ {
super(Material.ROCK, EnumPath.class); super(Material.ROCK, EnumPath.class);
setUnlocalizedName(Constants.Mod.MODID + ".path."); setUnlocalizedName(BloodMagic.MODID + ".path.");
setCreativeTab(BloodMagic.tabBloodMagic); setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F); setHardness(2.0F);
setResistance(5.0F); setResistance(5.0F);
setSoundType(SoundType.STONE); setSoundType(SoundType.STONE);
@ -46,10 +46,10 @@ public class BlockPath extends BlockEnum<EnumPath> implements IIncensePath, IVar
} }
@Override @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")); tooltip.add(TextHelper.localizeEffect("tooltip.bloodmagic.decoration.safe"));
super.addInformation(stack, player, tooltip, advanced); super.addInformation(stack, world, tooltip, tooltipFlag);
} }
@Override @Override
@ -73,13 +73,4 @@ public class BlockPath extends BlockEnum<EnumPath> implements IIncensePath, IVar
return 0; 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 java.util.Random;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
@ -22,7 +21,6 @@ import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.client.IVariantProvider;
import WayofTime.bloodmagic.tile.TilePhantomBlock; import WayofTime.bloodmagic.tile.TilePhantomBlock;
@ -34,8 +32,8 @@ public class BlockPhantom extends Block implements IVariantProvider
{ {
super(Material.CLOTH); super(Material.CLOTH);
setUnlocalizedName(Constants.Mod.MODID + ".phantom"); setUnlocalizedName(BloodMagic.MODID + ".phantom");
setCreativeTab(BloodMagic.tabBloodMagic); setCreativeTab(BloodMagic.TAB_BM);
} }
@Override @Override

View file

@ -1,8 +1,5 @@
package WayofTime.bloodmagic.block; package WayofTime.bloodmagic.block;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import WayofTime.bloodmagic.api.iface.IBindable; 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.util.text.TextComponentTranslation;
import net.minecraft.world.Explosion; import net.minecraft.world.Explosion;
import net.minecraft.world.World; 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.BloodMagic;
import WayofTime.bloodmagic.api.BlockStack; import WayofTime.bloodmagic.api.BlockStack;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.registry.ImperfectRitualRegistry; import WayofTime.bloodmagic.api.registry.ImperfectRitualRegistry;
import WayofTime.bloodmagic.api.registry.RitualRegistry; import WayofTime.bloodmagic.api.registry.RitualRegistry;
import WayofTime.bloodmagic.api.ritual.Ritual; import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.imperfect.ImperfectRitual; import WayofTime.bloodmagic.api.ritual.imperfect.ImperfectRitual;
import WayofTime.bloodmagic.api.util.helper.RitualHelper; import WayofTime.bloodmagic.api.util.helper.RitualHelper;
import WayofTime.bloodmagic.block.enums.EnumRitualController; import WayofTime.bloodmagic.block.enums.EnumRitualController;
import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
import WayofTime.bloodmagic.registry.ModItems;
import WayofTime.bloodmagic.tile.TileImperfectRitualStone; import WayofTime.bloodmagic.tile.TileImperfectRitualStone;
import WayofTime.bloodmagic.tile.TileMasterRitualStone; import WayofTime.bloodmagic.tile.TileMasterRitualStone;
import WayofTime.bloodmagic.util.ChatUtil;
import amerifrance.guideapi.api.IGuideLinked; import amerifrance.guideapi.api.IGuideLinked;
@Optional.Interface(modid = "guideapi", iface = "amerifrance.guideapi.api.IGuideLinked") public class BlockRitualController extends BlockEnum<EnumRitualController> implements IGuideLinked
public class BlockRitualController extends BlockEnum<EnumRitualController> implements IVariantProvider, IGuideLinked
{ {
public BlockRitualController() public BlockRitualController()
{ {
super(Material.ROCK, EnumRitualController.class); super(Material.ROCK, EnumRitualController.class);
setUnlocalizedName(Constants.Mod.MODID + ".stone.ritual."); setUnlocalizedName(BloodMagic.MODID + ".stone.ritual.");
setCreativeTab(BloodMagic.tabBloodMagic); setCreativeTab(BloodMagic.TAB_BM);
setSoundType(SoundType.STONE); setSoundType(SoundType.STONE);
setHardness(2.0F); setHardness(2.0F);
setResistance(5.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 (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(); IBindable bindable = (IBindable) heldItem.getItem();
if (Strings.isNullOrEmpty(bindable.getOwnerName(heldItem))) 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(); 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 // IGuideLinked
@Override @Override

View file

@ -6,42 +6,45 @@ import java.util.List;
import net.minecraft.block.SoundType; import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; 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.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.ritual.EnumRuneType; import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.IRitualStone; import WayofTime.bloodmagic.api.ritual.IRitualStone;
import WayofTime.bloodmagic.block.base.BlockEnum; import WayofTime.bloodmagic.block.base.BlockEnum;
import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.client.IVariantProvider;
import WayofTime.bloodmagic.registry.ModBlocks; import WayofTime.bloodmagic.registry.RegistrarBloodMagicBlocks;
import WayofTime.bloodmagic.util.helper.TextHelper; 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() public BlockRitualStone()
{ {
super(Material.IRON, EnumRuneType.class); super(Material.IRON, EnumRuneType.class);
setUnlocalizedName(Constants.Mod.MODID + ".ritualStone."); setUnlocalizedName(BloodMagic.MODID + ".ritualStone.");
setCreativeTab(BloodMagic.tabBloodMagic); setCreativeTab(BloodMagic.TAB_BM);
setSoundType(SoundType.STONE); setSoundType(SoundType.STONE);
setHardness(2.0F); setHardness(2.0F);
setResistance(5.0F); setResistance(5.0F);
setHarvestLevel("pickaxe", 2); setHarvestLevel("pickaxe", 2);
} }
@SideOnly(Side.CLIENT)
@Override @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")); tooltip.add(TextHelper.localizeEffect("tooltip.bloodmagic.decoration.safe"));
super.addInformation(stack, player, tooltip, advanced); super.addInformation(stack, world, tooltip, tooltipFlag);
} }
@Override @Override
@ -66,16 +69,7 @@ public class BlockRitualStone extends BlockEnum<EnumRuneType> implements IRitual
public void setRuneType(World world, BlockPos pos, EnumRuneType runeType) public void setRuneType(World world, BlockPos pos, EnumRuneType runeType)
{ {
int meta = runeType.ordinal(); int meta = runeType.ordinal();
IBlockState newState = ModBlocks.RITUAL_STONE.getStateFromMeta(meta); IBlockState newState = RegistrarBloodMagicBlocks.RITUAL_STONE.getStateFromMeta(meta);
world.setBlockState(pos, newState); 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; package WayofTime.bloodmagic.block;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.properties.PropertyBool;
import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.item.ItemBlock;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.EnumBlockRenderType; import net.minecraft.util.EnumBlockRenderType;
@ -18,7 +18,7 @@ import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.tile.routing.TileMasterRoutingNode; import WayofTime.bloodmagic.tile.routing.TileMasterRoutingNode;
import WayofTime.bloodmagic.tile.routing.TileRoutingNode; 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); 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); super(Material.ROCK);
setCreativeTab(BloodMagic.tabBloodMagic); setCreativeTab(BloodMagic.TAB_BM);
setHardness(2.0F); setHardness(2.0F);
setResistance(5.0F); setResistance(5.0F);
setHarvestLevel("pickaxe", 2); setHarvestLevel("pickaxe", 2);
@ -140,4 +140,9 @@ public class BlockRoutingNode extends Block
super.breakBlock(world, pos, blockState); 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 java.util.List;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.SoundType; import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumBlockRenderType; import net.minecraft.util.EnumBlockRenderType;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
@ -37,12 +35,12 @@ public class BlockSoulForge extends Block implements IVariantProvider
{ {
super(Material.IRON); super(Material.IRON);
setUnlocalizedName(Constants.Mod.MODID + ".soulForge"); setUnlocalizedName(BloodMagic.MODID + ".soulForge");
setHardness(2.0F); setHardness(2.0F);
setResistance(5.0F); setResistance(5.0F);
setSoundType(SoundType.METAL); setSoundType(SoundType.METAL);
setHarvestLevel("pickaxe", 1); setHarvestLevel("pickaxe", 1);
setCreativeTab(BloodMagic.tabBloodMagic); setCreativeTab(BloodMagic.TAB_BM);
} }
@Override @Override

View file

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

View file

@ -30,8 +30,8 @@ public class BlockTeleposer extends BlockContainer implements IVariantProvider
{ {
super(Material.ROCK); super(Material.ROCK);
setCreativeTab(BloodMagic.tabBloodMagic); setCreativeTab(BloodMagic.TAB_BM);
setUnlocalizedName(Constants.Mod.MODID + ".teleposer"); setUnlocalizedName(BloodMagic.MODID + ".teleposer");
setHardness(2.0F); setHardness(2.0F);
setResistance(5.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; 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.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item; import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.IStringSerializable; import net.minecraft.util.IStringSerializable;
import net.minecraft.util.NonNullList; import net.minecraft.util.NonNullList;
import net.minecraftforge.fml.relauncher.Side; import org.apache.commons.lang3.tuple.Pair;
import net.minecraftforge.fml.relauncher.SideOnly;
import java.util.List; import java.util.List;
@Getter public class BlockEnum<E extends Enum<E> & IStringSerializable> extends Block implements IBMBlock, IVariantProvider
public class BlockEnum<E extends Enum<E> & IStringSerializable> extends Block
{ {
private final E[] types; private final E[] types;
private final PropertyEnum<E> property; private final PropertyEnum<E> property;
@ -68,16 +69,44 @@ public class BlockEnum<E extends Enum<E> & IStringSerializable> extends Block
return getMetaFromState(state); return getMetaFromState(state);
} }
@SideOnly(Side.CLIENT)
@Override @Override
public void getSubBlocks(Item item, CreativeTabs tab, NonNullList<ItemStack> subBlocks) public void getSubBlocks(CreativeTabs tab, NonNullList<ItemStack> subBlocks)
{ {
for (E type : types) for (E type : types)
subBlocks.add(new ItemStack(item, 1, type.ordinal())); subBlocks.add(new ItemStack(this, 1, type.ordinal()));
} }
protected BlockStateContainer createStateContainer() protected BlockStateContainer createStateContainer()
{ {
return new BlockStateContainer.Builder(this).add(property).build(); 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 @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); state = this.getActualState(state, worldIn, pos);

View file

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

View file

@ -1,6 +1,5 @@
package WayofTime.bloodmagic.block.base; package WayofTime.bloodmagic.block.base;
import lombok.Getter;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.state.BlockStateContainer; 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 * way, each value is {@code toLowerCase()}'ed, so the blockstate JSON needs all
* values to be lowercase. * values to be lowercase.
*/ */
@Getter
public class BlockString extends Block public class BlockString extends Block
{ {
private final int maxMeta; private final int maxMeta;
@ -78,10 +76,10 @@ public class BlockString extends Block
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
@Override @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++) for (int i = 0; i < maxMeta; i++)
subBlocks.add(new ItemStack(item, 1, i)); subBlocks.add(new ItemStack(this, 1, i));
} }
protected BlockStateContainer createStateContainer() protected BlockStateContainer createStateContainer()
@ -91,4 +89,20 @@ public class BlockString extends Block
System.out.println("Number of states: " + ctn.getValidStates().size()); System.out.println("Number of states: " + ctn.getValidStates().size());
return ctn; 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; import net.minecraft.util.IStringSerializable;
public enum EnumBrickSize implements IStringSerializable public enum EnumDecorative implements IStringSerializable
{ {
LARGE, BLOODSTONE_TILE,
BRICK; BLOODSTONE_BRICK,
CRYSTAL_TILE,
CRYSTAL_BRICK,
;
@Override @Override
public String toString() public String toString()
{ {
return name().toLowerCase(Locale.ENGLISH); return name().toLowerCase(Locale.ROOT);
} }
@Override @Override
public String getName() public String getName()
{ {
return this.toString(); return toString();
} }
} }

View file

@ -1,5 +1,6 @@
package WayofTime.bloodmagic.client.gui; package WayofTime.bloodmagic.client.gui;
import WayofTime.bloodmagic.BloodMagic;
import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
@ -8,7 +9,6 @@ import net.minecraft.inventory.Slot;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.tile.TileAlchemyTable; import WayofTime.bloodmagic.tile.TileAlchemyTable;
import WayofTime.bloodmagic.tile.container.ContainerAlchemyTable; import WayofTime.bloodmagic.tile.container.ContainerAlchemyTable;
import WayofTime.bloodmagic.util.helper.TextHelper; import WayofTime.bloodmagic.util.helper.TextHelper;
@ -37,7 +37,7 @@ public class GuiAlchemyTable extends GuiContainer
protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY)
{ {
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
ResourceLocation soulForgeGuiTextures = new ResourceLocation(Constants.Mod.MODID + ":textures/gui/alchemyTable.png"); ResourceLocation soulForgeGuiTextures = new ResourceLocation(BloodMagic.MODID + ":textures/gui/alchemyTable.png");
this.mc.getTextureManager().bindTexture(soulForgeGuiTextures); this.mc.getTextureManager().bindTexture(soulForgeGuiTextures);
int i = (this.width - this.xSize) / 2; int i = (this.width - this.xSize) / 2;
int j = (this.height - this.ySize) / 2; int j = (this.height - this.ySize) / 2;

View file

@ -1,10 +1,10 @@
package WayofTime.bloodmagic.client.gui; package WayofTime.bloodmagic.client.gui;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.item.inventory.ContainerHolding; import WayofTime.bloodmagic.item.inventory.ContainerHolding;
import WayofTime.bloodmagic.item.inventory.InventoryHolding; import WayofTime.bloodmagic.item.inventory.InventoryHolding;
import WayofTime.bloodmagic.item.sigil.ItemSigilHolding; import WayofTime.bloodmagic.item.sigil.ItemSigilHolding;
import WayofTime.bloodmagic.registry.ModItems; import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
import WayofTime.bloodmagic.util.helper.TextHelper; import WayofTime.bloodmagic.util.helper.TextHelper;
import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager;
@ -16,7 +16,7 @@ import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class GuiHolding extends GuiContainer public class GuiHolding extends GuiContainer
{ {
private ResourceLocation texture = new ResourceLocation(Constants.Mod.MODID, "gui/SigilHolding.png"); private ResourceLocation texture = new ResourceLocation(BloodMagic.MODID, "gui/SigilHolding.png");
private EntityPlayer player; private EntityPlayer player;
public GuiHolding(EntityPlayer player, InventoryHolding inventoryHolding) public GuiHolding(EntityPlayer player, InventoryHolding inventoryHolding)
@ -43,7 +43,7 @@ public class GuiHolding extends GuiContainer
int x = (width - xSize) / 2; int x = (width - xSize) / 2;
int y = (height - ySize) / 2; int y = (height - ySize) / 2;
this.drawTexturedModalRect(x, y, 0, 0, xSize, ySize); this.drawTexturedModalRect(x, y, 0, 0, xSize, ySize);
if (player.getHeldItemMainhand() != null && player.getHeldItemMainhand().getItem() == ModItems.SIGIL_HOLDING) if (player.getHeldItemMainhand() != null && player.getHeldItemMainhand().getItem() == RegistrarBloodMagicItems.SIGIL_HOLDING)
{ {
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
this.drawTexturedModalRect(4 + x + 36 * ItemSigilHolding.getCurrentItemOrdinal(player.getHeldItemMainhand()), y + 13, 0, 123, 24, 24); this.drawTexturedModalRect(4 + x + 36 * ItemSigilHolding.getCurrentItemOrdinal(player.getHeldItemMainhand()), y + 13, 0, 123, 24, 24);

View file

@ -2,6 +2,7 @@ package WayofTime.bloodmagic.client.gui;
import java.io.IOException; import java.io.IOException;
import WayofTime.bloodmagic.BloodMagic;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiTextField; import net.minecraft.client.gui.GuiTextField;
@ -15,7 +16,6 @@ import net.minecraft.util.EnumFacing;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.network.BloodMagicPacketHandler; import WayofTime.bloodmagic.network.BloodMagicPacketHandler;
import WayofTime.bloodmagic.network.ItemRouterAmountPacketProcessor; import WayofTime.bloodmagic.network.ItemRouterAmountPacketProcessor;
import WayofTime.bloodmagic.network.ItemRouterButtonPacketProcessor; import WayofTime.bloodmagic.network.ItemRouterButtonPacketProcessor;
@ -211,7 +211,7 @@ public class GuiItemRoutingNode extends GuiContainer
protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY)
{ {
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
ResourceLocation soulForgeGuiTextures = new ResourceLocation(Constants.Mod.MODID + ":textures/gui/routingNode.png"); ResourceLocation soulForgeGuiTextures = new ResourceLocation(BloodMagic.MODID + ":textures/gui/routingNode.png");
this.mc.getTextureManager().bindTexture(soulForgeGuiTextures); this.mc.getTextureManager().bindTexture(soulForgeGuiTextures);
this.drawTexturedModalRect(left, top, 0, 0, this.xSize, this.ySize); this.drawTexturedModalRect(left, top, 0, 0, this.xSize, this.ySize);
GlStateManager.disableLighting(); GlStateManager.disableLighting();

View file

@ -1,6 +1,6 @@
package WayofTime.bloodmagic.client.gui; package WayofTime.bloodmagic.client.gui;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.tile.container.ContainerMasterRoutingNode; import WayofTime.bloodmagic.tile.container.ContainerMasterRoutingNode;
import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager;
@ -35,7 +35,7 @@ public class GuiMasterRoutingNode extends GuiContainer
protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY)
{ {
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
ResourceLocation soulForgeGuiTextures = new ResourceLocation(Constants.Mod.MODID + ":textures/gui/masterRoutingNode.png"); ResourceLocation soulForgeGuiTextures = new ResourceLocation(BloodMagic.MODID + ":textures/gui/masterRoutingNode.png");
this.mc.getTextureManager().bindTexture(soulForgeGuiTextures); this.mc.getTextureManager().bindTexture(soulForgeGuiTextures);
int i = (this.width - this.xSize) / 2; int i = (this.width - this.xSize) / 2;
int j = (this.height - this.ySize) / 2; int j = (this.height - this.ySize) / 2;

View file

@ -1,6 +1,6 @@
package WayofTime.bloodmagic.client.gui; package WayofTime.bloodmagic.client.gui;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.tile.TileSoulForge; import WayofTime.bloodmagic.tile.TileSoulForge;
import WayofTime.bloodmagic.tile.container.ContainerSoulForge; import WayofTime.bloodmagic.tile.container.ContainerSoulForge;
import WayofTime.bloodmagic.util.helper.TextHelper; import WayofTime.bloodmagic.util.helper.TextHelper;
@ -36,7 +36,7 @@ public class GuiSoulForge extends GuiContainer
protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY)
{ {
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
ResourceLocation soulForgeGuiTextures = new ResourceLocation(Constants.Mod.MODID + ":textures/gui/soulForge.png"); ResourceLocation soulForgeGuiTextures = new ResourceLocation(BloodMagic.MODID + ":textures/gui/soulForge.png");
this.mc.getTextureManager().bindTexture(soulForgeGuiTextures); this.mc.getTextureManager().bindTexture(soulForgeGuiTextures);
int i = (this.width - this.xSize) / 2; int i = (this.width - this.xSize) / 2;
int j = (this.height - this.ySize) / 2; int j = (this.height - this.ySize) / 2;

View file

@ -1,6 +1,6 @@
package WayofTime.bloodmagic.client.gui; package WayofTime.bloodmagic.client.gui;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.tile.container.ContainerTeleposer; import WayofTime.bloodmagic.tile.container.ContainerTeleposer;
import WayofTime.bloodmagic.util.helper.TextHelper; import WayofTime.bloodmagic.util.helper.TextHelper;
import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.gui.inventory.GuiContainer;
@ -30,7 +30,7 @@ public class GuiTeleposer extends GuiContainer
protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY)
{ {
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
ResourceLocation teleposerGuiTextures = new ResourceLocation(Constants.Mod.MODID + ":textures/gui/teleposer.png"); ResourceLocation teleposerGuiTextures = new ResourceLocation(BloodMagic.MODID + ":textures/gui/teleposer.png");
this.mc.getTextureManager().bindTexture(teleposerGuiTextures); this.mc.getTextureManager().bindTexture(teleposerGuiTextures);
int i = (this.width - this.xSize) / 2; int i = (this.width - this.xSize) / 2;
int j = (this.height - this.ySize) / 2; int j = (this.height - this.ySize) / 2;

View file

@ -1,7 +1,7 @@
package WayofTime.bloodmagic.client.gui.config; package WayofTime.bloodmagic.client.gui.config;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.ConfigHandler; import WayofTime.bloodmagic.ConfigHandler;
import WayofTime.bloodmagic.api.Constants;
import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreen;
import net.minecraftforge.common.config.ConfigElement; import net.minecraftforge.common.config.ConfigElement;
import net.minecraftforge.fml.client.config.GuiConfig; import net.minecraftforge.fml.client.config.GuiConfig;
@ -15,7 +15,7 @@ public class ConfigGui extends GuiConfig
public ConfigGui(GuiScreen parentScreen) public ConfigGui(GuiScreen parentScreen)
{ {
super(parentScreen, getConfigElements(parentScreen), Constants.Mod.MODID, false, false, "BloodMagic Configuration"); super(parentScreen, getConfigElements(parentScreen), BloodMagic.MODID, false, false, "BloodMagic Configuration");
} }
@SuppressWarnings("rawtypes") @SuppressWarnings("rawtypes")

View file

@ -1,17 +1,13 @@
package WayofTime.bloodmagic.client.hud; package WayofTime.bloodmagic.client.hud;
import WayofTime.bloodmagic.util.handler.event.ClientHandler; import WayofTime.bloodmagic.util.handler.event.ClientHandler;
import lombok.Getter;
import lombok.Setter;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.VertexBuffer;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent;
@Getter
@Setter
public abstract class HUDElement public abstract class HUDElement
{ {
@ -52,12 +48,32 @@ public abstract class HUDElement
float f = 0.00390625F; float f = 0.00390625F;
float f1 = 0.00390625F; float f1 = 0.00390625F;
Tessellator tessellator = Tessellator.getInstance(); Tessellator tessellator = Tessellator.getInstance();
VertexBuffer vertexbuffer = tessellator.getBuffer(); BufferBuilder buffer = tessellator.getBuffer();
vertexbuffer.begin(7, DefaultVertexFormats.POSITION_TEX); buffer.begin(7, DefaultVertexFormats.POSITION_TEX);
vertexbuffer.pos((double) (x + 0), (double) (y + height), 0).tex((double) ((float) (textureX + 0) * f), (double) ((float) (textureY + height) * f1)).endVertex(); buffer.pos(x + 0, y + height, 0).tex((double) ((float) (textureX + 0) * f), (double) ((float) (textureY + height) * f1)).endVertex();
vertexbuffer.pos((double) (x + width), (double) (y + height), 0).tex((double) ((float) (textureX + width) * f), (double) ((float) (textureY + height) * f1)).endVertex(); buffer.pos(x + width, y + height, 0).tex((double) ((float) (textureX + width) * f), (double) ((float) (textureY + height) * f1)).endVertex();
vertexbuffer.pos((double) (x + width), (double) (y + 0), 0).tex((double) ((float) (textureX + width) * f), (double) ((float) (textureY + 0) * f1)).endVertex(); buffer.pos(x + width, y + 0, 0).tex((double) ((float) (textureX + width) * f), (double) ((float) (textureY + 0) * f1)).endVertex();
vertexbuffer.pos((double) (x + 0), (double) (y + 0), 0).tex((double) ((float) (textureX + 0) * f), (double) ((float) (textureY + 0) * f1)).endVertex(); buffer.pos(x + 0, y + 0, 0).tex((double) ((float) (textureX + 0) * f), (double) ((float) (textureY + 0) * f1)).endVertex();
tessellator.draw(); tessellator.draw();
} }
public int getxOffset() {
return xOffset;
}
public int getyOffset() {
return yOffset;
}
public int getxOffsetDefault() {
return xOffsetDefault;
}
public int getyOffsetDefault() {
return yOffsetDefault;
}
public RenderGameOverlayEvent.ElementType getElementType() {
return elementType;
}
} }

View file

@ -3,15 +3,14 @@ package WayofTime.bloodmagic.client.hud;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import WayofTime.bloodmagic.BloodMagic;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.VertexBuffer; import net.minecraft.client.renderer.VertexBuffer;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.soul.EnumDemonWillType; import WayofTime.bloodmagic.api.soul.EnumDemonWillType;
import WayofTime.bloodmagic.proxy.ClientProxy; import WayofTime.bloodmagic.proxy.ClientProxy;
import WayofTime.bloodmagic.util.Utils; import WayofTime.bloodmagic.util.Utils;
@ -41,7 +40,7 @@ public class HUDElementDemonWillAura extends HUDElement
return; return;
} }
minecraft.getTextureManager().bindTexture(new ResourceLocation(Constants.Mod.MODID, "textures/hud/bars.png")); minecraft.getTextureManager().bindTexture(new ResourceLocation(BloodMagic.MODID, "textures/hud/bars.png"));
GlStateManager.color(1.0F, 1.0F, 1.0F); GlStateManager.color(1.0F, 1.0F, 1.0F);
this.drawTexturedModalRect(getXOffset(), getYOffset(), 0, 105 * 2, 80, 46); this.drawTexturedModalRect(getXOffset(), getYOffset(), 0, 105 * 2, 80, 46);
@ -52,7 +51,7 @@ public class HUDElementDemonWillAura extends HUDElement
{ {
i++; i++;
GlStateManager.color(1.0F, 1.0F, 1.0F); GlStateManager.color(1.0F, 1.0F, 1.0F);
minecraft.getTextureManager().bindTexture(new ResourceLocation(Constants.Mod.MODID, "textures/hud/bars.png")); minecraft.getTextureManager().bindTexture(new ResourceLocation(BloodMagic.MODID, "textures/hud/bars.png"));
int textureXOffset = (i > 3) ? (i - 3) : (3 - i); int textureXOffset = (i > 3) ? (i - 3) : (3 - i);
int maxBarSize = 30 - 2 * textureXOffset; int maxBarSize = 30 - 2 * textureXOffset;

View file

@ -1,8 +1,8 @@
package WayofTime.bloodmagic.client.hud; package WayofTime.bloodmagic.client.hud;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.item.sigil.ItemSigilHolding; import WayofTime.bloodmagic.item.sigil.ItemSigilHolding;
import WayofTime.bloodmagic.registry.ModItems; import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Gui; import net.minecraft.client.gui.Gui;
import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.gui.ScaledResolution;
@ -28,15 +28,15 @@ public class HUDElementHolding extends HUDElement
{ {
ItemStack sigilHolding = minecraft.player.getHeldItemMainhand(); ItemStack sigilHolding = minecraft.player.getHeldItemMainhand();
// Check mainhand for Sigil of Holding // Check mainhand for Sigil of Holding
if (!(sigilHolding.getItem() == ModItems.SIGIL_HOLDING)) if (!(sigilHolding.getItem() == RegistrarBloodMagicItems.SIGIL_HOLDING))
sigilHolding = minecraft.player.getHeldItemOffhand(); sigilHolding = minecraft.player.getHeldItemOffhand();
// Check offhand for Sigil of Holding // Check offhand for Sigil of Holding
if (!(sigilHolding.getItem() == ModItems.SIGIL_HOLDING)) if (!(sigilHolding.getItem() == RegistrarBloodMagicItems.SIGIL_HOLDING))
return; return;
Gui ingameGui = minecraft.ingameGUI; Gui ingameGui = minecraft.ingameGUI;
minecraft.getTextureManager().bindTexture(new ResourceLocation(Constants.Mod.MODID, "textures/gui/widgets.png")); minecraft.getTextureManager().bindTexture(new ResourceLocation(BloodMagic.MODID, "textures/gui/widgets.png"));
GlStateManager.color(1.0F, 1.0F, 1.0F); GlStateManager.color(1.0F, 1.0F, 1.0F);
ingameGui.drawTexturedModalRect(resolution.getScaledWidth() / 2 + 100 + getXOffset(), resolution.getScaledHeight() - 22 + getYOffset(), 0, 0, 102, 22); ingameGui.drawTexturedModalRect(resolution.getScaledWidth() / 2 + 100 + getXOffset(), resolution.getScaledHeight() - 22 + getYOffset(), 0, 0, 102, 22);
int currentSlot = ItemSigilHolding.getCurrentItemOrdinal(sigilHolding); int currentSlot = ItemSigilHolding.getCurrentItemOrdinal(sigilHolding);

View file

@ -1,6 +1,6 @@
package WayofTime.bloodmagic.client.key; package WayofTime.bloodmagic.client.key;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.BloodMagic;
import net.minecraft.client.settings.KeyBinding; import net.minecraft.client.settings.KeyBinding;
import net.minecraftforge.fml.client.registry.ClientRegistry; import net.minecraftforge.fml.client.registry.ClientRegistry;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
@ -11,7 +11,7 @@ public class KeyBindingBloodMagic extends KeyBinding
{ {
public KeyBindingBloodMagic(KeyBindings key) public KeyBindingBloodMagic(KeyBindings key)
{ {
super(key.getDescription(), key.getKeyConflictContext(), key.getKeyModifier(), key.getKeyCode(), Constants.Mod.NAME); super(key.getDescription(), key.getKeyConflictContext(), key.getKeyModifier(), key.getKeyCode(), BloodMagic.NAME);
ClientRegistry.registerKeyBinding(this); ClientRegistry.registerKeyBinding(this);
} }

View file

@ -1,6 +1,6 @@
package WayofTime.bloodmagic.client.key; package WayofTime.bloodmagic.client.key;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.item.sigil.ItemSigilHolding; import WayofTime.bloodmagic.item.sigil.ItemSigilHolding;
import WayofTime.bloodmagic.network.BloodMagicPacketHandler; import WayofTime.bloodmagic.network.BloodMagicPacketHandler;
import WayofTime.bloodmagic.network.KeyProcessor; import WayofTime.bloodmagic.network.KeyProcessor;
@ -106,6 +106,6 @@ public enum KeyBindings
public String getDescription() public String getDescription()
{ {
return Constants.Mod.MODID + ".keybind." + name().toLowerCase(Locale.ENGLISH); return BloodMagic.MODID + ".keybind." + name().toLowerCase(Locale.ENGLISH);
} }
} }

View file

@ -1,6 +1,6 @@
package WayofTime.bloodmagic.client.mesh; package WayofTime.bloodmagic.client.mesh;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.iface.IActivatable; import WayofTime.bloodmagic.api.iface.IActivatable;
import net.minecraft.client.renderer.ItemMeshDefinition; import net.minecraft.client.renderer.ItemMeshDefinition;
import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.client.renderer.block.model.ModelResourceLocation;
@ -21,8 +21,8 @@ public class CustomMeshDefinitionActivatable implements ItemMeshDefinition
{ {
if (stack != null && stack.getItem() instanceof IActivatable) if (stack != null && stack.getItem() instanceof IActivatable)
if (((IActivatable) stack.getItem()).getActivated(stack)) if (((IActivatable) stack.getItem()).getActivated(stack))
return new ModelResourceLocation(new ResourceLocation(Constants.Mod.MODID, "item/" + name), "active=true"); return new ModelResourceLocation(new ResourceLocation(BloodMagic.MODID, "item/" + name), "active=true");
return new ModelResourceLocation(new ResourceLocation(Constants.Mod.MODID, "item/" + name), "active=false"); return new ModelResourceLocation(new ResourceLocation(BloodMagic.MODID, "item/" + name), "active=false");
} }
} }

View file

@ -1,10 +1,10 @@
package WayofTime.bloodmagic.client.mesh; package WayofTime.bloodmagic.client.mesh;
import WayofTime.bloodmagic.BloodMagic;
import net.minecraft.client.renderer.ItemMeshDefinition; import net.minecraft.client.renderer.ItemMeshDefinition;
import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.iface.IMultiWillTool; import WayofTime.bloodmagic.api.iface.IMultiWillTool;
import WayofTime.bloodmagic.api.soul.EnumDemonWillType; import WayofTime.bloodmagic.api.soul.EnumDemonWillType;
@ -23,9 +23,9 @@ public class CustomMeshDefinitionMultiWill implements ItemMeshDefinition
if (stack != null && stack.getItem() instanceof IMultiWillTool) if (stack != null && stack.getItem() instanceof IMultiWillTool)
{ {
EnumDemonWillType type = ((IMultiWillTool) stack.getItem()).getCurrentType(stack); EnumDemonWillType type = ((IMultiWillTool) stack.getItem()).getCurrentType(stack);
return new ModelResourceLocation(new ResourceLocation(Constants.Mod.MODID, "item/" + name), "type=" + type.getName().toLowerCase()); return new ModelResourceLocation(new ResourceLocation(BloodMagic.MODID, "item/" + name), "type=" + type.getName().toLowerCase());
} }
return new ModelResourceLocation(new ResourceLocation(Constants.Mod.MODID, "item/" + name), "type=default"); return new ModelResourceLocation(new ResourceLocation(BloodMagic.MODID, "item/" + name), "type=default");
} }
} }

View file

@ -1,13 +1,13 @@
package WayofTime.bloodmagic.client.mesh; package WayofTime.bloodmagic.client.mesh;
import WayofTime.bloodmagic.BloodMagic;
import net.minecraft.client.renderer.ItemMeshDefinition; import net.minecraft.client.renderer.ItemMeshDefinition;
import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.soul.EnumDemonWillType; import WayofTime.bloodmagic.api.soul.EnumDemonWillType;
import WayofTime.bloodmagic.item.soul.ItemSoulGem; import WayofTime.bloodmagic.item.soul.ItemSoulGem;
import WayofTime.bloodmagic.registry.ModItems; import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
public class CustomMeshDefinitionWillGem implements ItemMeshDefinition public class CustomMeshDefinitionWillGem implements ItemMeshDefinition
{ {
@ -21,12 +21,12 @@ public class CustomMeshDefinitionWillGem implements ItemMeshDefinition
@Override @Override
public ModelResourceLocation getModelLocation(ItemStack stack) public ModelResourceLocation getModelLocation(ItemStack stack)
{ {
if (stack != null && stack.getItem() == ModItems.SOUL_GEM) if (stack != null && stack.getItem() == RegistrarBloodMagicItems.SOUL_GEM)
{ {
EnumDemonWillType type = ((ItemSoulGem) stack.getItem()).getCurrentType(stack); EnumDemonWillType type = ((ItemSoulGem) stack.getItem()).getCurrentType(stack);
return new ModelResourceLocation(new ResourceLocation(Constants.Mod.MODID, "item/" + name), "type=" + ItemSoulGem.names[stack.getItemDamage()] + "_" + type.getName().toLowerCase()); return new ModelResourceLocation(new ResourceLocation(BloodMagic.MODID, "item/" + name), "type=" + ItemSoulGem.names[stack.getItemDamage()] + "_" + type.getName().toLowerCase());
} }
return new ModelResourceLocation(new ResourceLocation(Constants.Mod.MODID, "item/" + name), "type=petty_default"); return new ModelResourceLocation(new ResourceLocation(BloodMagic.MODID, "item/" + name), "type=petty_default");
} }
} }

View file

@ -1,6 +1,6 @@
package WayofTime.bloodmagic.client.render; package WayofTime.bloodmagic.client.render;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.item.armour.ItemLivingArmour; import WayofTime.bloodmagic.item.armour.ItemLivingArmour;
import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.livingArmour.LivingArmour;
import net.minecraft.client.entity.AbstractClientPlayer; import net.minecraft.client.entity.AbstractClientPlayer;
@ -31,7 +31,7 @@ public class LayerBloodElytra implements LayerRenderer<AbstractClientPlayer>
if (LivingArmour.hasFullSet(clientPlayer)) if (LivingArmour.hasFullSet(clientPlayer))
{ {
ItemStack chestStack = clientPlayer.getItemStackFromSlot(EntityEquipmentSlot.CHEST); ItemStack chestStack = clientPlayer.getItemStackFromSlot(EntityEquipmentSlot.CHEST);
if (ItemLivingArmour.hasUpgrade(Constants.Mod.MODID + ".upgrade.elytra", chestStack)) if (ItemLivingArmour.hasUpgrade(BloodMagic.MODID + ".upgrade.elytra", chestStack))
{ {
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
GlStateManager.enableBlend(); GlStateManager.enableBlend();

View file

@ -50,7 +50,7 @@ public class AttractorAlchemyCircleRenderer extends AlchemyCircleRenderer
{ {
if (craftTime < secondaryOffset) if (craftTime < secondaryOffset)
{ {
float modifier = 90 * (craftTime - offset) / (float) (secondaryOffset - offset); float modifier = 90 * (craftTime - offset) / (secondaryOffset - offset);
return modifier; return modifier;
} else } else
{ {

View file

@ -96,7 +96,7 @@ public class BindingAlchemyCircleRenderer extends AlchemyCircleRenderer
float offset = 2; float offset = 2;
if (circle == -1) if (circle == -1)
{ {
return (float) (craftTime * 360 * 2 / 5 / sweepTime); return craftTime * 360 * 2 / 5 / sweepTime;
} }
if (craftTime >= offset) if (craftTime >= offset)
{ {

View file

@ -1,7 +1,7 @@
package WayofTime.bloodmagic.client.render.block; package WayofTime.bloodmagic.client.render.block;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.ConfigHandler; import WayofTime.bloodmagic.ConfigHandler;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.iface.INodeRenderer; import WayofTime.bloodmagic.api.iface.INodeRenderer;
import WayofTime.bloodmagic.client.helper.ShaderHelper; import WayofTime.bloodmagic.client.helper.ShaderHelper;
import WayofTime.bloodmagic.tile.routing.TileRoutingNode; import WayofTime.bloodmagic.tile.routing.TileRoutingNode;
@ -20,7 +20,7 @@ import java.util.List;
public class RenderItemRoutingNode extends TileEntitySpecialRenderer<TileRoutingNode> public class RenderItemRoutingNode extends TileEntitySpecialRenderer<TileRoutingNode>
{ {
private static final ResourceLocation beamTexture = new ResourceLocation(Constants.Mod.MODID, "textures/entities/nodeBeam.png"); private static final ResourceLocation beamTexture = new ResourceLocation(BloodMagic.MODID, "textures/entities/nodeBeam.png");
private static final Minecraft mc = Minecraft.getMinecraft(); private static final Minecraft mc = Minecraft.getMinecraft();
// private static final ResourceLocation test = new ResourceLocation("luminescence:textures/models/InputMirror.png"); // private static final ResourceLocation test = new ResourceLocation("luminescence:textures/models/InputMirror.png");
@ -71,11 +71,11 @@ public class RenderItemRoutingNode extends TileEntitySpecialRenderer<TileRouting
double d23 = width / 2; double d23 = width / 2;
double d24 = width / 2; double d24 = width / 2;
double d25 = width / 2; double d25 = width / 2;
double d26 = (double) (distance * f1); double d26 = distance * f1;
double d27 = 0.0D; double d27 = 0.0D;
double d28 = 1.0D; double d28 = 1.0D;
double d29 = (double) (f3) + test; double d29 = (double) (f3) + test;
double d30 = (double) (distance * f1) + d29; double d30 = distance * f1 + d29;
GlStateManager.translate(x + 0.5, y + 0.5, z + 0.5); GlStateManager.translate(x + 0.5, y + 0.5, z + 0.5);

View file

@ -1,11 +1,11 @@
package WayofTime.bloodmagic.client.render.entity; package WayofTime.bloodmagic.client.render.entity;
import WayofTime.bloodmagic.BloodMagic;
import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelBase;
import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.client.render.model.ModelMeteor; import WayofTime.bloodmagic.client.render.model.ModelMeteor;
import WayofTime.bloodmagic.entity.projectile.EntityMeteor; import WayofTime.bloodmagic.entity.projectile.EntityMeteor;
@ -13,7 +13,7 @@ public class RenderEntityMeteor extends Render<EntityMeteor>
{ {
public ModelBase model = new ModelMeteor(); public ModelBase model = new ModelMeteor();
private float scale = 1; private float scale = 1;
private static final ResourceLocation resource = new ResourceLocation(Constants.Mod.MODID, "textures/models/Meteor.png"); private static final ResourceLocation resource = new ResourceLocation(BloodMagic.MODID, "textures/models/Meteor.png");
public RenderEntityMeteor(RenderManager renderManagerIn) public RenderEntityMeteor(RenderManager renderManagerIn)
{ {

View file

@ -82,7 +82,7 @@ public class RenderEntityMimic extends RenderLiving<EntityMimic>
if (!StringUtils.isNullOrEmpty(s)) if (!StringUtils.isNullOrEmpty(s))
{ {
gameprofile = TileEntitySkull.updateGameprofile(new GameProfile((UUID) null, s)); gameprofile = TileEntitySkull.updateGameprofile(new GameProfile(null, s));
nbttagcompound.setTag("SkullOwner", NBTUtil.writeGameProfile(new NBTTagCompound(), gameprofile)); nbttagcompound.setTag("SkullOwner", NBTUtil.writeGameProfile(new NBTTagCompound(), gameprofile));
} }
} }

View file

@ -1,7 +1,7 @@
package WayofTime.bloodmagic.client.render.entity; package WayofTime.bloodmagic.client.render.entity;
import WayofTime.bloodmagic.entity.projectile.EntitySoulSnare; import WayofTime.bloodmagic.entity.projectile.EntitySoulSnare;
import WayofTime.bloodmagic.registry.ModItems; import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.RenderItem; import net.minecraft.client.renderer.RenderItem;
@ -30,7 +30,7 @@ public class RenderEntitySoulSnare extends Render<EntitySoulSnare>
GlStateManager.rotate(-this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); GlStateManager.rotate(-this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F);
GlStateManager.rotate(this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); GlStateManager.rotate(this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F);
this.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); this.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
this.renderItem.renderItem(new ItemStack(ModItems.SOUL_SNARE), ItemCameraTransforms.TransformType.GROUND); this.renderItem.renderItem(new ItemStack(RegistrarBloodMagicItems.SOUL_SNARE), ItemCameraTransforms.TransformType.GROUND);
GlStateManager.disableRescaleNormal(); GlStateManager.disableRescaleNormal();
GlStateManager.popMatrix(); GlStateManager.popMatrix();
super.doRender(entity, x, y, z, entityYaw, partialTicks); super.doRender(entity, x, y, z, entityYaw, partialTicks);

View file

@ -35,7 +35,7 @@ public class LayerAlchemyCircle<T extends EntityCorruptedSheep> implements Layer
VertexBuffer wr = tessellator.getBuffer(); VertexBuffer wr = tessellator.getBuffer();
GlStateManager.pushMatrix(); GlStateManager.pushMatrix();
float rot = (float) this.rotationspeed * (partialTicks + demon.ticksExisted); float rot = this.rotationspeed * (partialTicks + demon.ticksExisted);
float secondaryRot = 0; float secondaryRot = 0;
float size = 3.0F; float size = 3.0F;

View file

@ -1,59 +0,0 @@
package WayofTime.bloodmagic.compat;
/**
* Implement on all primary compatibility classes.
*/
public interface ICompatibility
{
/**
* Called during each initialization phase after the given
* {@link #getModId()} has been verified as loaded.
*
* @param phase
* - The load phase at which this method is being called.
*/
void loadCompatibility(InitializationPhase phase);
/**
* @return The {@code modid} of the mod we are adding compatibility for.
*/
String getModId();
/**
* Whether or not compatibility should be loaded even if the mod were to be
* found.
*
* Generally a determined by a config option.
*
* @return If Compatibility should load.
*/
boolean enableCompat();
/**
* Represents a given mod initialization state.
*/
enum InitializationPhase
{
/**
* Represents
* {@link net.minecraftforge.fml.common.event.FMLPreInitializationEvent}
*/
PRE_INIT,
/**
* Represents
* {@link net.minecraftforge.fml.common.event.FMLInitializationEvent}
*/
INIT,
/**
* Represents
* {@link net.minecraftforge.fml.common.event.FMLPostInitializationEvent}
*/
POST_INIT,
/**
* Represents
* {@link net.minecraftforge.fml.common.event.FMLModIdMappingEvent}
*/
MAPPING,
;
}
}

View file

@ -1,60 +1,55 @@
package WayofTime.bloodmagic.compat.guideapi; package WayofTime.bloodmagic.compat.guideapi;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.compat.guideapi.book.*; import WayofTime.bloodmagic.compat.guideapi.book.*;
import WayofTime.bloodmagic.registry.ModBlocks; import WayofTime.bloodmagic.registry.RegistrarBloodMagicBlocks;
import WayofTime.bloodmagic.registry.ModItems; import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
import amerifrance.guideapi.api.GuideAPI; import amerifrance.guideapi.api.GuideAPI;
import amerifrance.guideapi.api.GuideBook; import amerifrance.guideapi.api.GuideBook;
import amerifrance.guideapi.api.IGuideBook; import amerifrance.guideapi.api.IGuideBook;
import amerifrance.guideapi.api.impl.Book; import amerifrance.guideapi.api.impl.Book;
import amerifrance.guideapi.category.CategoryItemStack; import amerifrance.guideapi.category.CategoryItemStack;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.eventhandler.EventPriority;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.oredict.ShapelessOreRecipe; import net.minecraftforge.oredict.ShapelessOreRecipe;
import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.awt.Color; import java.awt.Color;
@GuideBook @GuideBook(priority = EventPriority.HIGHEST)
public class GuideBloodMagic implements IGuideBook public class GuideBloodMagic implements IGuideBook {
{
public static Book guideBook; public static final Book GUIDE_BOOK = new Book();
@Nullable @Nullable
@Override @Override
public Book buildBook() { public Book buildBook() {
guideBook = new Book(); GUIDE_BOOK.setTitle("guide.bloodmagic.title");
guideBook.setTitle("guide.bloodmagic.title"); GUIDE_BOOK.setDisplayName("guide.bloodmagic.display");
guideBook.setDisplayName("guide.bloodmagic.display"); GUIDE_BOOK.setWelcomeMessage("guide.bloodmagic.welcome");
guideBook.setWelcomeMessage("guide.bloodmagic.welcome"); GUIDE_BOOK.setAuthor("guide.bloodmagic.author");
guideBook.setAuthor("guide.bloodmagic.author"); GUIDE_BOOK.setRegistryName(new ResourceLocation(BloodMagic.MODID, "guide"));
guideBook.setRegistryName(new ResourceLocation(Constants.Mod.MODID, "guide")); GUIDE_BOOK.setColor(Color.RED);
guideBook.setColor(Color.RED);
return guideBook; return GUIDE_BOOK;
}
@Override
public void handleModel(ItemStack bookStack) {
GuideAPI.setModel(guideBook);
} }
@Override @Override
public void handlePost(ItemStack bookStack) { public void handlePost(ItemStack bookStack) {
if (FMLCommonHandler.instance().getSide() == Side.CLIENT) { GUIDE_BOOK.addCategory(new CategoryItemStack(CategoryAlchemy.buildCategory(), "guide.bloodmagic.category.alchemy", new ItemStack(RegistrarBloodMagicItems.ARCANE_ASHES)));
guideBook.addCategory(new CategoryItemStack(CategoryAlchemy.buildCategory(), "guide.bloodmagic.category.alchemy", new ItemStack(ModItems.ARCANE_ASHES))); GUIDE_BOOK.addCategory(new CategoryItemStack(CategoryArchitect.buildCategory(), "guide.bloodmagic.category.architect", new ItemStack(RegistrarBloodMagicItems.SIGIL_DIVINATION)));
guideBook.addCategory(new CategoryItemStack(CategoryArchitect.buildCategory(), "guide.bloodmagic.category.architect", new ItemStack(ModItems.SIGIL_DIVINATION))); GUIDE_BOOK.addCategory(new CategoryItemStack(CategoryDemon.buildCategory(), "guide.bloodmagic.category.demon", new ItemStack(RegistrarBloodMagicItems.BLOOD_SHARD)));
guideBook.addCategory(new CategoryItemStack(CategoryDemon.buildCategory(), "guide.bloodmagic.category.demon", new ItemStack(ModItems.BLOOD_SHARD))); GUIDE_BOOK.addCategory(new CategoryItemStack(CategoryRitual.buildCategory(), "guide.bloodmagic.category.ritual", new ItemStack(RegistrarBloodMagicBlocks.RITUAL_CONTROLLER)));
guideBook.addCategory(new CategoryItemStack(CategoryRitual.buildCategory(), "guide.bloodmagic.category.ritual", new ItemStack(ModBlocks.RITUAL_CONTROLLER)));
// guideBook.addCategory(new CategoryItemStack(CategorySpell.buildCategory(), "guide.bloodmagic.category.spell", new ItemStack(ModItems.ritualDiviner))); // guideBook.addCategory(new CategoryItemStack(CategorySpell.buildCategory(), "guide.bloodmagic.category.spell", new ItemStack(ModItems.ritualDiviner)));
} }
GameRegistry.addRecipe(new ShapelessOreRecipe(GuideAPI.getStackFromBook(GuideBloodMagic.guideBook), new ItemStack(Items.BOOK), Blocks.GLASS, Items.FEATHER)); @Nullable
@Override
public IRecipe getRecipe(@Nonnull ItemStack bookStack) {
return new ShapelessOreRecipe(new ResourceLocation(BloodMagic.MODID, "guide"), GuideAPI.getStackFromBook(GUIDE_BOOK), new ItemStack(Items.BOOK), "glass", "feather");
} }
} }

View file

@ -1,12 +1,12 @@
package WayofTime.bloodmagic.compat.guideapi.book; package WayofTime.bloodmagic.compat.guideapi.book;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.recipe.TartaricForgeRecipe; import WayofTime.bloodmagic.api.recipe.TartaricForgeRecipe;
import WayofTime.bloodmagic.compat.guideapi.BookUtils; import WayofTime.bloodmagic.compat.guideapi.BookUtils;
import WayofTime.bloodmagic.compat.guideapi.entry.EntryText; import WayofTime.bloodmagic.compat.guideapi.entry.EntryText;
import WayofTime.bloodmagic.compat.guideapi.page.PageAlchemyArray; import WayofTime.bloodmagic.compat.guideapi.page.PageAlchemyArray;
import WayofTime.bloodmagic.compat.guideapi.page.PageTartaricForgeRecipe; import WayofTime.bloodmagic.compat.guideapi.page.PageTartaricForgeRecipe;
import WayofTime.bloodmagic.registry.ModItems; import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
import WayofTime.bloodmagic.util.helper.RecipeHelper; import WayofTime.bloodmagic.util.helper.RecipeHelper;
import WayofTime.bloodmagic.util.helper.TextHelper; import WayofTime.bloodmagic.util.helper.TextHelper;
import amerifrance.guideapi.api.IPage; import amerifrance.guideapi.api.IPage;
@ -27,7 +27,7 @@ public class CategoryAlchemy
public static Map<ResourceLocation, EntryAbstract> buildCategory() public static Map<ResourceLocation, EntryAbstract> buildCategory()
{ {
Map<ResourceLocation, EntryAbstract> entries = new LinkedHashMap<ResourceLocation, EntryAbstract>(); Map<ResourceLocation, EntryAbstract> entries = new LinkedHashMap<ResourceLocation, EntryAbstract>();
String keyBase = "guide." + Constants.Mod.MODID + ".entry.alchemy."; String keyBase = "guide." + BloodMagic.MODID + ".entry.alchemy.";
List<IPage> introPages = new ArrayList<IPage>(); List<IPage> introPages = new ArrayList<IPage>();
introPages.addAll(PageHelper.pagesForLongText(TextHelper.localize(keyBase + "intro" + ".info"), 370)); introPages.addAll(PageHelper.pagesForLongText(TextHelper.localize(keyBase + "intro" + ".info"), 370));
@ -35,7 +35,7 @@ public class CategoryAlchemy
List<IPage> ashPages = new ArrayList<IPage>(); List<IPage> ashPages = new ArrayList<IPage>();
TartaricForgeRecipe ashRecipe = RecipeHelper.getForgeRecipeForOutput(new ItemStack(ModItems.ARCANE_ASHES)); TartaricForgeRecipe ashRecipe = RecipeHelper.getForgeRecipeForOutput(new ItemStack(RegistrarBloodMagicItems.ARCANE_ASHES));
if (ashRecipe != null) if (ashRecipe != null)
{ {
ashPages.add(new PageTartaricForgeRecipe(ashRecipe)); ashPages.add(new PageTartaricForgeRecipe(ashRecipe));

View file

@ -6,10 +6,10 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import WayofTime.bloodmagic.BloodMagic;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe; import net.minecraft.item.crafting.IRecipe;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.recipe.TartaricForgeRecipe; import WayofTime.bloodmagic.api.recipe.TartaricForgeRecipe;
import WayofTime.bloodmagic.api.registry.AltarRecipeRegistry.AltarRecipe; import WayofTime.bloodmagic.api.registry.AltarRecipeRegistry.AltarRecipe;
import WayofTime.bloodmagic.api.registry.OrbRegistry; import WayofTime.bloodmagic.api.registry.OrbRegistry;
@ -19,8 +19,8 @@ import WayofTime.bloodmagic.compat.guideapi.page.PageAlchemyArray;
import WayofTime.bloodmagic.compat.guideapi.page.PageAltarRecipe; import WayofTime.bloodmagic.compat.guideapi.page.PageAltarRecipe;
import WayofTime.bloodmagic.compat.guideapi.page.PageTartaricForgeRecipe; import WayofTime.bloodmagic.compat.guideapi.page.PageTartaricForgeRecipe;
import WayofTime.bloodmagic.item.ItemComponent; import WayofTime.bloodmagic.item.ItemComponent;
import WayofTime.bloodmagic.registry.ModBlocks; import WayofTime.bloodmagic.registry.RegistrarBloodMagicBlocks;
import WayofTime.bloodmagic.registry.ModItems; import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
import WayofTime.bloodmagic.util.helper.RecipeHelper; import WayofTime.bloodmagic.util.helper.RecipeHelper;
import WayofTime.bloodmagic.util.helper.TextHelper; import WayofTime.bloodmagic.util.helper.TextHelper;
import amerifrance.guideapi.api.IPage; import amerifrance.guideapi.api.IPage;
@ -33,7 +33,7 @@ public class CategoryArchitect
public static Map<ResourceLocation, EntryAbstract> buildCategory() public static Map<ResourceLocation, EntryAbstract> buildCategory()
{ {
Map<ResourceLocation, EntryAbstract> entries = new LinkedHashMap<ResourceLocation, EntryAbstract>(); Map<ResourceLocation, EntryAbstract> entries = new LinkedHashMap<ResourceLocation, EntryAbstract>();
String keyBase = "guide." + Constants.Mod.MODID + ".entry.architect."; String keyBase = "guide." + BloodMagic.MODID + ".entry.architect.";
List<IPage> introPages = new ArrayList<IPage>(); List<IPage> introPages = new ArrayList<IPage>();
introPages.addAll(PageHelper.pagesForLongText(TextHelper.localize(keyBase + "intro" + ".info"), 370)); introPages.addAll(PageHelper.pagesForLongText(TextHelper.localize(keyBase + "intro" + ".info"), 370));
@ -42,7 +42,7 @@ public class CategoryArchitect
List<IPage> altarPages = new ArrayList<IPage>(); List<IPage> altarPages = new ArrayList<IPage>();
IRecipe altarRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(ModBlocks.ALTAR)); IRecipe altarRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(RegistrarBloodMagicBlocks.ALTAR));
if (altarRecipe != null) if (altarRecipe != null)
{ {
altarPages.add(BookUtils.getPageForRecipe(altarRecipe)); altarPages.add(BookUtils.getPageForRecipe(altarRecipe));
@ -50,7 +50,7 @@ public class CategoryArchitect
altarPages.addAll(PageHelper.pagesForLongText(TextHelper.localize(keyBase + "bloodaltar" + ".info.1"), 370)); altarPages.addAll(PageHelper.pagesForLongText(TextHelper.localize(keyBase + "bloodaltar" + ".info.1"), 370));
IRecipe daggerRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(ModItems.SACRIFICIAL_DAGGER)); IRecipe daggerRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(RegistrarBloodMagicItems.SACRIFICIAL_DAGGER));
if (daggerRecipe != null) if (daggerRecipe != null)
{ {
altarPages.add(BookUtils.getPageForRecipe(daggerRecipe)); altarPages.add(BookUtils.getPageForRecipe(daggerRecipe));
@ -61,7 +61,7 @@ public class CategoryArchitect
List<IPage> ashPages = new ArrayList<IPage>(); List<IPage> ashPages = new ArrayList<IPage>();
TartaricForgeRecipe ashRecipe = RecipeHelper.getForgeRecipeForOutput(new ItemStack(ModItems.ARCANE_ASHES)); TartaricForgeRecipe ashRecipe = RecipeHelper.getForgeRecipeForOutput(new ItemStack(RegistrarBloodMagicItems.ARCANE_ASHES));
if (ashRecipe != null) if (ashRecipe != null)
{ {
ashPages.add(new PageTartaricForgeRecipe(ashRecipe)); ashPages.add(new PageTartaricForgeRecipe(ashRecipe));
@ -71,7 +71,7 @@ public class CategoryArchitect
List<IPage> divinationPages = new ArrayList<IPage>(); List<IPage> divinationPages = new ArrayList<IPage>();
PageAlchemyArray divinationRecipePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.SIGIL_DIVINATION)); PageAlchemyArray divinationRecipePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.SIGIL_DIVINATION));
if (divinationRecipePage != null) if (divinationRecipePage != null)
{ {
divinationPages.add(divinationRecipePage); divinationPages.add(divinationRecipePage);
@ -88,7 +88,7 @@ public class CategoryArchitect
List<IPage> weakorbPages = new ArrayList<IPage>(); List<IPage> weakorbPages = new ArrayList<IPage>();
weakorbPages.addAll(PageHelper.pagesForLongText(TextHelper.localize(keyBase + "weakorb" + ".info.1"), 370)); weakorbPages.addAll(PageHelper.pagesForLongText(TextHelper.localize(keyBase + "weakorb" + ".info.1"), 370));
AltarRecipe weakorbRecipe = RecipeHelper.getAltarRecipeForOutput(OrbRegistry.getOrbStack(ModItems.ORB_WEAK)); AltarRecipe weakorbRecipe = RecipeHelper.getAltarRecipeForOutput(OrbRegistry.getOrbStack(RegistrarBloodMagicItems.ORB_WEAK));
if (weakorbRecipe != null) if (weakorbRecipe != null)
{ {
weakorbPages.add(new PageAltarRecipe(weakorbRecipe)); weakorbPages.add(new PageAltarRecipe(weakorbRecipe));
@ -99,7 +99,7 @@ public class CategoryArchitect
List<IPage> incensePages = new ArrayList<IPage>(); List<IPage> incensePages = new ArrayList<IPage>();
IRecipe incenseRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(ModBlocks.INCENSE_ALTAR)); IRecipe incenseRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(RegistrarBloodMagicBlocks.INCENSE_ALTAR));
if (incenseRecipe != null) if (incenseRecipe != null)
{ {
incensePages.add(BookUtils.getPageForRecipe(incenseRecipe)); incensePages.add(BookUtils.getPageForRecipe(incenseRecipe));
@ -107,7 +107,7 @@ public class CategoryArchitect
incensePages.addAll(PageHelper.pagesForLongText(TextHelper.localize(keyBase + "incense" + ".info.1"), 370)); incensePages.addAll(PageHelper.pagesForLongText(TextHelper.localize(keyBase + "incense" + ".info.1"), 370));
IRecipe woodPathRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(ModBlocks.PATH_BLOCK, 1, 0)); IRecipe woodPathRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(RegistrarBloodMagicBlocks.PATH, 1, 0));
if (woodPathRecipe != null) if (woodPathRecipe != null)
{ {
incensePages.add(BookUtils.getPageForRecipe(woodPathRecipe)); incensePages.add(BookUtils.getPageForRecipe(woodPathRecipe));
@ -118,7 +118,7 @@ public class CategoryArchitect
List<IPage> runePages = new ArrayList<IPage>(); List<IPage> runePages = new ArrayList<IPage>();
IRecipe runeRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(ModBlocks.BLOOD_RUNE, 1, 0)); IRecipe runeRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(RegistrarBloodMagicBlocks.BLOOD_RUNE, 1, 0));
if (runeRecipe != null) if (runeRecipe != null)
{ {
runePages.add(BookUtils.getPageForRecipe(runeRecipe)); runePages.add(BookUtils.getPageForRecipe(runeRecipe));
@ -129,7 +129,7 @@ public class CategoryArchitect
List<IPage> inspectPages = new ArrayList<IPage>(); List<IPage> inspectPages = new ArrayList<IPage>();
AltarRecipe inspectRecipe = RecipeHelper.getAltarRecipeForOutput(new ItemStack(ModItems.SANGUINE_BOOK)); AltarRecipe inspectRecipe = RecipeHelper.getAltarRecipeForOutput(new ItemStack(RegistrarBloodMagicItems.SANGUINE_BOOK));
if (inspectRecipe != null) if (inspectRecipe != null)
{ {
inspectPages.add(new PageAltarRecipe(inspectRecipe)); inspectPages.add(new PageAltarRecipe(inspectRecipe));
@ -140,7 +140,7 @@ public class CategoryArchitect
List<IPage> speedRunePages = new ArrayList<IPage>(); List<IPage> speedRunePages = new ArrayList<IPage>();
IRecipe speedRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(ModBlocks.BLOOD_RUNE, 1, 1)); IRecipe speedRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(RegistrarBloodMagicBlocks.BLOOD_RUNE, 1, 1));
if (speedRecipe != null) if (speedRecipe != null)
{ {
speedRunePages.add(BookUtils.getPageForRecipe(speedRecipe)); speedRunePages.add(BookUtils.getPageForRecipe(speedRecipe));
@ -157,7 +157,7 @@ public class CategoryArchitect
waterPages.add(new PageTartaricForgeRecipe(waterRecipe)); waterPages.add(new PageTartaricForgeRecipe(waterRecipe));
} }
PageAlchemyArray waterRecipePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.SIGIL_WATER)); PageAlchemyArray waterRecipePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.SIGIL_WATER));
if (waterRecipePage != null) if (waterRecipePage != null)
{ {
waterPages.add(waterRecipePage); waterPages.add(waterRecipePage);
@ -174,7 +174,7 @@ public class CategoryArchitect
lavaPages.add(new PageTartaricForgeRecipe(lavaRecipe)); lavaPages.add(new PageTartaricForgeRecipe(lavaRecipe));
} }
PageAlchemyArray lavaRecipePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.SIGIL_LAVA)); PageAlchemyArray lavaRecipePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.SIGIL_LAVA));
if (lavaRecipePage != null) if (lavaRecipePage != null)
{ {
lavaPages.add(lavaRecipePage); lavaPages.add(lavaRecipePage);
@ -185,7 +185,7 @@ public class CategoryArchitect
List<IPage> lavaCrystalPages = new ArrayList<IPage>(); List<IPage> lavaCrystalPages = new ArrayList<IPage>();
IRecipe lavaCrystalRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(ModItems.LAVA_CRYSTAL)); IRecipe lavaCrystalRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(RegistrarBloodMagicItems.LAVA_CRYSTAL));
if (lavaCrystalRecipe != null) if (lavaCrystalRecipe != null)
{ {
lavaCrystalPages.add(BookUtils.getPageForRecipe(lavaCrystalRecipe)); lavaCrystalPages.add(BookUtils.getPageForRecipe(lavaCrystalRecipe));
@ -196,7 +196,7 @@ public class CategoryArchitect
List<IPage> apprenticeorbPages = new ArrayList<IPage>(); List<IPage> apprenticeorbPages = new ArrayList<IPage>();
AltarRecipe apprenticeorbRecipe = RecipeHelper.getAltarRecipeForOutput(OrbRegistry.getOrbStack(ModItems.ORB_APPRENTICE)); AltarRecipe apprenticeorbRecipe = RecipeHelper.getAltarRecipeForOutput(OrbRegistry.getOrbStack(RegistrarBloodMagicItems.ORB_APPRENTICE));
if (apprenticeorbRecipe != null) if (apprenticeorbRecipe != null)
{ {
apprenticeorbPages.add(new PageAltarRecipe(apprenticeorbRecipe)); apprenticeorbPages.add(new PageAltarRecipe(apprenticeorbRecipe));
@ -207,7 +207,7 @@ public class CategoryArchitect
List<IPage> daggerPages = new ArrayList<IPage>(); List<IPage> daggerPages = new ArrayList<IPage>();
AltarRecipe daggerOfSacrificeRecipe = RecipeHelper.getAltarRecipeForOutput(new ItemStack(ModItems.DAGGER_OF_SACRIFICE)); AltarRecipe daggerOfSacrificeRecipe = RecipeHelper.getAltarRecipeForOutput(new ItemStack(RegistrarBloodMagicItems.DAGGER_OF_SACRIFICE));
if (daggerOfSacrificeRecipe != null) if (daggerOfSacrificeRecipe != null)
{ {
daggerPages.add(new PageAltarRecipe(daggerOfSacrificeRecipe)); daggerPages.add(new PageAltarRecipe(daggerOfSacrificeRecipe));
@ -218,7 +218,7 @@ public class CategoryArchitect
List<IPage> runeSacrificePages = new ArrayList<IPage>(); List<IPage> runeSacrificePages = new ArrayList<IPage>();
IRecipe runeSacrificeRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(ModBlocks.BLOOD_RUNE, 1, 3)); IRecipe runeSacrificeRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(RegistrarBloodMagicBlocks.BLOOD_RUNE, 1, 3));
if (runeSacrificeRecipe != null) if (runeSacrificeRecipe != null)
{ {
runeSacrificePages.add(BookUtils.getPageForRecipe(runeSacrificeRecipe)); runeSacrificePages.add(BookUtils.getPageForRecipe(runeSacrificeRecipe));
@ -229,7 +229,7 @@ public class CategoryArchitect
List<IPage> runeSelfSacrificePages = new ArrayList<IPage>(); List<IPage> runeSelfSacrificePages = new ArrayList<IPage>();
IRecipe runeSelfSacrificeRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(ModBlocks.BLOOD_RUNE, 1, 4)); IRecipe runeSelfSacrificeRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(RegistrarBloodMagicBlocks.BLOOD_RUNE, 1, 4));
if (runeSelfSacrificeRecipe != null) if (runeSelfSacrificeRecipe != null)
{ {
runeSelfSacrificePages.add(BookUtils.getPageForRecipe(runeSelfSacrificeRecipe)); runeSelfSacrificePages.add(BookUtils.getPageForRecipe(runeSelfSacrificeRecipe));
@ -246,7 +246,7 @@ public class CategoryArchitect
holdingPages.add(new PageTartaricForgeRecipe(holdingRecipe)); holdingPages.add(new PageTartaricForgeRecipe(holdingRecipe));
} }
PageAlchemyArray holdingRecipePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.SIGIL_HOLDING)); PageAlchemyArray holdingRecipePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.SIGIL_HOLDING));
if (holdingRecipePage != null) if (holdingRecipePage != null)
{ {
holdingPages.add(holdingRecipePage); holdingPages.add(holdingRecipePage);
@ -263,7 +263,7 @@ public class CategoryArchitect
airPages.add(new PageTartaricForgeRecipe(airRecipe)); airPages.add(new PageTartaricForgeRecipe(airRecipe));
} }
PageAlchemyArray airRecipePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.SIGIL_AIR)); PageAlchemyArray airRecipePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.SIGIL_AIR));
if (airRecipePage != null) if (airRecipePage != null)
{ {
airPages.add(airRecipePage); airPages.add(airRecipePage);
@ -280,7 +280,7 @@ public class CategoryArchitect
voidPages.add(new PageTartaricForgeRecipe(voidRecipe)); voidPages.add(new PageTartaricForgeRecipe(voidRecipe));
} }
PageAlchemyArray voidRecipePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.SIGIL_VOID)); PageAlchemyArray voidRecipePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.SIGIL_VOID));
if (voidRecipePage != null) if (voidRecipePage != null)
{ {
voidPages.add(voidRecipePage); voidPages.add(voidRecipePage);
@ -297,7 +297,7 @@ public class CategoryArchitect
greenGrovePages.add(new PageTartaricForgeRecipe(greenGroveRecipe)); greenGrovePages.add(new PageTartaricForgeRecipe(greenGroveRecipe));
} }
PageAlchemyArray greenGroveRecipePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.SIGIL_GREEN_GROVE)); PageAlchemyArray greenGroveRecipePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.SIGIL_GREEN_GROVE));
if (greenGroveRecipePage != null) if (greenGroveRecipePage != null)
{ {
greenGrovePages.add(greenGroveRecipePage); greenGrovePages.add(greenGroveRecipePage);
@ -314,7 +314,7 @@ public class CategoryArchitect
fastMinerPages.add(new PageTartaricForgeRecipe(fastMinerRecipe)); fastMinerPages.add(new PageTartaricForgeRecipe(fastMinerRecipe));
} }
PageAlchemyArray fastMinerRecipePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.SIGIL_FAST_MINER)); PageAlchemyArray fastMinerRecipePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.SIGIL_FAST_MINER));
if (fastMinerRecipePage != null) if (fastMinerRecipePage != null)
{ {
fastMinerPages.add(fastMinerRecipePage); fastMinerPages.add(fastMinerRecipePage);
@ -331,7 +331,7 @@ public class CategoryArchitect
seerPages.add(new PageTartaricForgeRecipe(seerRecipe)); seerPages.add(new PageTartaricForgeRecipe(seerRecipe));
} }
PageAlchemyArray seerRecipePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.SIGIL_SEER)); PageAlchemyArray seerRecipePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.SIGIL_SEER));
if (seerRecipePage != null) if (seerRecipePage != null)
{ {
seerPages.add(seerRecipePage); seerPages.add(seerRecipePage);
@ -342,7 +342,7 @@ public class CategoryArchitect
List<IPage> magicianOrbPages = new ArrayList<IPage>(); List<IPage> magicianOrbPages = new ArrayList<IPage>();
AltarRecipe magicianOrbRecipe = RecipeHelper.getAltarRecipeForOutput(OrbRegistry.getOrbStack(ModItems.ORB_MAGICIAN)); AltarRecipe magicianOrbRecipe = RecipeHelper.getAltarRecipeForOutput(OrbRegistry.getOrbStack(RegistrarBloodMagicItems.ORB_MAGICIAN));
if (magicianOrbRecipe != null) if (magicianOrbRecipe != null)
{ {
magicianOrbPages.add(new PageAltarRecipe(magicianOrbRecipe)); magicianOrbPages.add(new PageAltarRecipe(magicianOrbRecipe));
@ -353,7 +353,7 @@ public class CategoryArchitect
List<IPage> capacityPages = new ArrayList<IPage>(); List<IPage> capacityPages = new ArrayList<IPage>();
IRecipe capacityRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(ModBlocks.BLOOD_RUNE, 1, 4)); IRecipe capacityRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(RegistrarBloodMagicBlocks.BLOOD_RUNE, 1, 4));
if (capacityRecipe != null) if (capacityRecipe != null)
{ {
capacityPages.add(BookUtils.getPageForRecipe(capacityRecipe)); capacityPages.add(BookUtils.getPageForRecipe(capacityRecipe));
@ -364,7 +364,7 @@ public class CategoryArchitect
List<IPage> displacementPages = new ArrayList<IPage>(); List<IPage> displacementPages = new ArrayList<IPage>();
IRecipe displacementRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(ModBlocks.BLOOD_RUNE, 1, 4)); IRecipe displacementRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(RegistrarBloodMagicBlocks.BLOOD_RUNE, 1, 4));
if (displacementRecipe != null) if (displacementRecipe != null)
{ {
displacementPages.add(BookUtils.getPageForRecipe(displacementRecipe)); displacementPages.add(BookUtils.getPageForRecipe(displacementRecipe));
@ -381,7 +381,7 @@ public class CategoryArchitect
affinityPages.add(new PageTartaricForgeRecipe(affinityRecipe)); affinityPages.add(new PageTartaricForgeRecipe(affinityRecipe));
} }
PageAlchemyArray affinityRecipePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.SIGIL_ELEMENTAL_AFFINITY)); PageAlchemyArray affinityRecipePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.SIGIL_ELEMENTAL_AFFINITY));
if (affinityRecipePage != null) if (affinityRecipePage != null)
{ {
affinityPages.add(affinityRecipePage); affinityPages.add(affinityRecipePage);
@ -398,7 +398,7 @@ public class CategoryArchitect
lampPages.add(new PageTartaricForgeRecipe(lampRecipe)); lampPages.add(new PageTartaricForgeRecipe(lampRecipe));
} }
PageAlchemyArray lampRecipePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.SIGIL_BLOOD_LIGHT)); PageAlchemyArray lampRecipePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.SIGIL_BLOOD_LIGHT));
if (lampRecipePage != null) if (lampRecipePage != null)
{ {
lampPages.add(lampRecipePage); lampPages.add(lampRecipePage);
@ -415,7 +415,7 @@ public class CategoryArchitect
magnetismPages.add(new PageTartaricForgeRecipe(magnetismRecipe)); magnetismPages.add(new PageTartaricForgeRecipe(magnetismRecipe));
} }
PageAlchemyArray magnetismRecipePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.SIGIL_MAGNETISM)); PageAlchemyArray magnetismRecipePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.SIGIL_MAGNETISM));
if (magnetismRecipePage != null) if (magnetismRecipePage != null)
{ {
magnetismPages.add(magnetismRecipePage); magnetismPages.add(magnetismRecipePage);
@ -426,7 +426,7 @@ public class CategoryArchitect
List<IPage> peritiaPages = new ArrayList<IPage>(); List<IPage> peritiaPages = new ArrayList<IPage>();
IRecipe peritiaRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(ModItems.EXPERIENCE_TOME)); IRecipe peritiaRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(RegistrarBloodMagicItems.EXPERIENCE_TOME));
if (peritiaRecipe != null) if (peritiaRecipe != null)
{ {
peritiaPages.add(BookUtils.getPageForRecipe(peritiaRecipe)); peritiaPages.add(BookUtils.getPageForRecipe(peritiaRecipe));
@ -443,25 +443,25 @@ public class CategoryArchitect
livingArmourPages.add(new PageTartaricForgeRecipe(bindingRecipe)); livingArmourPages.add(new PageTartaricForgeRecipe(bindingRecipe));
} }
PageAlchemyArray bindingRecipePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.LIVING_ARMOUR_CHEST)); PageAlchemyArray bindingRecipePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.LIVING_ARMOUR_CHEST));
if (bindingRecipePage != null) if (bindingRecipePage != null)
{ {
livingArmourPages.add(bindingRecipePage); livingArmourPages.add(bindingRecipePage);
} }
bindingRecipePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.LIVING_ARMOUR_HELMET)); bindingRecipePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.LIVING_ARMOUR_HELMET));
if (bindingRecipePage != null) if (bindingRecipePage != null)
{ {
livingArmourPages.add(bindingRecipePage); livingArmourPages.add(bindingRecipePage);
} }
bindingRecipePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.LIVING_ARMOUR_LEGS)); bindingRecipePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.LIVING_ARMOUR_LEGS));
if (bindingRecipePage != null) if (bindingRecipePage != null)
{ {
livingArmourPages.add(bindingRecipePage); livingArmourPages.add(bindingRecipePage);
} }
bindingRecipePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.LIVING_ARMOUR_BOOTS)); bindingRecipePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.LIVING_ARMOUR_BOOTS));
if (bindingRecipePage != null) if (bindingRecipePage != null)
{ {
livingArmourPages.add(bindingRecipePage); livingArmourPages.add(bindingRecipePage);
@ -482,13 +482,13 @@ public class CategoryArchitect
List<IPage> teleposerPages = new ArrayList<IPage>(); List<IPage> teleposerPages = new ArrayList<IPage>();
AltarRecipe teleposerFocusRecipe = RecipeHelper.getAltarRecipeForOutput(new ItemStack(ModItems.TELEPOSITION_FOCUS)); AltarRecipe teleposerFocusRecipe = RecipeHelper.getAltarRecipeForOutput(new ItemStack(RegistrarBloodMagicItems.TELEPOSITION_FOCUS));
if (teleposerFocusRecipe != null) if (teleposerFocusRecipe != null)
{ {
teleposerPages.add(new PageAltarRecipe(teleposerFocusRecipe)); teleposerPages.add(new PageAltarRecipe(teleposerFocusRecipe));
} }
IRecipe teleposerRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(ModBlocks.TELEPOSER)); IRecipe teleposerRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(RegistrarBloodMagicBlocks.TELEPOSER));
if (teleposerRecipe != null) if (teleposerRecipe != null)
{ {
teleposerPages.add(BookUtils.getPageForRecipe(teleposerRecipe)); teleposerPages.add(BookUtils.getPageForRecipe(teleposerRecipe));
@ -499,7 +499,7 @@ public class CategoryArchitect
List<IPage> boundBladePages = new ArrayList<IPage>(); List<IPage> boundBladePages = new ArrayList<IPage>();
PageAlchemyArray boundBladePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.BOUND_SWORD)); PageAlchemyArray boundBladePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.BOUND_SWORD));
if (boundBladePage != null) if (boundBladePage != null)
{ {
boundBladePages.add(boundBladePage); boundBladePages.add(boundBladePage);
@ -510,19 +510,19 @@ public class CategoryArchitect
List<IPage> boundToolPages = new ArrayList<IPage>(); List<IPage> boundToolPages = new ArrayList<IPage>();
PageAlchemyArray boundToolPage = BookUtils.getAlchemyPage(new ItemStack(ModItems.BOUND_PICKAXE)); PageAlchemyArray boundToolPage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.BOUND_PICKAXE));
if (boundToolPage != null) if (boundToolPage != null)
{ {
boundToolPages.add(boundToolPage); boundToolPages.add(boundToolPage);
} }
boundToolPage = BookUtils.getAlchemyPage(new ItemStack(ModItems.BOUND_AXE)); boundToolPage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.BOUND_AXE));
if (boundToolPage != null) if (boundToolPage != null)
{ {
boundToolPages.add(boundToolPage); boundToolPages.add(boundToolPage);
} }
boundToolPage = BookUtils.getAlchemyPage(new ItemStack(ModItems.BOUND_SHOVEL)); boundToolPage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.BOUND_SHOVEL));
if (boundToolPage != null) if (boundToolPage != null)
{ {
boundToolPages.add(boundToolPage); boundToolPages.add(boundToolPage);
@ -538,7 +538,7 @@ public class CategoryArchitect
List<IPage> masterOrbPages = new ArrayList<IPage>(); List<IPage> masterOrbPages = new ArrayList<IPage>();
AltarRecipe masterOrbRecipe = RecipeHelper.getAltarRecipeForOutput(OrbRegistry.getOrbStack(ModItems.ORB_MASTER)); AltarRecipe masterOrbRecipe = RecipeHelper.getAltarRecipeForOutput(OrbRegistry.getOrbStack(RegistrarBloodMagicItems.ORB_MASTER));
if (magicianOrbRecipe != null) if (magicianOrbRecipe != null)
{ {
masterOrbPages.add(new PageAltarRecipe(masterOrbRecipe)); masterOrbPages.add(new PageAltarRecipe(masterOrbRecipe));
@ -549,7 +549,7 @@ public class CategoryArchitect
List<IPage> orbRunePages = new ArrayList<IPage>(); List<IPage> orbRunePages = new ArrayList<IPage>();
IRecipe orbRuneRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(ModBlocks.BLOOD_RUNE, 1, 8)); IRecipe orbRuneRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(RegistrarBloodMagicBlocks.BLOOD_RUNE, 1, 8));
if (orbRuneRecipe != null) if (orbRuneRecipe != null)
{ {
orbRunePages.add(BookUtils.getPageForRecipe(orbRuneRecipe)); orbRunePages.add(BookUtils.getPageForRecipe(orbRuneRecipe));
@ -560,7 +560,7 @@ public class CategoryArchitect
List<IPage> augmentedCapacityPages = new ArrayList<IPage>(); List<IPage> augmentedCapacityPages = new ArrayList<IPage>();
IRecipe augmentedCapacityRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(ModBlocks.BLOOD_RUNE, 1, 7)); IRecipe augmentedCapacityRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(RegistrarBloodMagicBlocks.BLOOD_RUNE, 1, 7));
if (orbRuneRecipe != null) if (orbRuneRecipe != null)
{ {
augmentedCapacityPages.add(BookUtils.getPageForRecipe(augmentedCapacityRecipe)); augmentedCapacityPages.add(BookUtils.getPageForRecipe(augmentedCapacityRecipe));
@ -571,7 +571,7 @@ public class CategoryArchitect
List<IPage> chargingPages = new ArrayList<IPage>(); List<IPage> chargingPages = new ArrayList<IPage>();
IRecipe chargingRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(ModBlocks.BLOOD_RUNE, 1, 10)); IRecipe chargingRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(RegistrarBloodMagicBlocks.BLOOD_RUNE, 1, 10));
if (orbRuneRecipe != null) if (orbRuneRecipe != null)
{ {
chargingPages.add(BookUtils.getPageForRecipe(chargingRecipe)); chargingPages.add(BookUtils.getPageForRecipe(chargingRecipe));
@ -582,7 +582,7 @@ public class CategoryArchitect
List<IPage> accelerationPages = new ArrayList<IPage>(); List<IPage> accelerationPages = new ArrayList<IPage>();
IRecipe accelerationRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(ModBlocks.BLOOD_RUNE, 1, 9)); IRecipe accelerationRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(RegistrarBloodMagicBlocks.BLOOD_RUNE, 1, 9));
if (orbRuneRecipe != null) if (orbRuneRecipe != null)
{ {
accelerationPages.add(BookUtils.getPageForRecipe(accelerationRecipe)); accelerationPages.add(BookUtils.getPageForRecipe(accelerationRecipe));
@ -599,7 +599,7 @@ public class CategoryArchitect
suppressionPages.add(new PageTartaricForgeRecipe(suppressionRecipe)); suppressionPages.add(new PageTartaricForgeRecipe(suppressionRecipe));
} }
PageAlchemyArray suppressionRecipePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.SIGIL_SUPPRESSION)); PageAlchemyArray suppressionRecipePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.SIGIL_SUPPRESSION));
if (suppressionRecipePage != null) if (suppressionRecipePage != null)
{ {
suppressionPages.add(suppressionRecipePage); suppressionPages.add(suppressionRecipePage);
@ -616,7 +616,7 @@ public class CategoryArchitect
hastePages.add(new PageTartaricForgeRecipe(hasteRecipe)); hastePages.add(new PageTartaricForgeRecipe(hasteRecipe));
} }
PageAlchemyArray hasteRecipePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.SIGIL_HASTE)); PageAlchemyArray hasteRecipePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.SIGIL_HASTE));
if (hasteRecipePage != null) if (hasteRecipePage != null)
{ {
hastePages.add(hasteRecipePage); hastePages.add(hasteRecipePage);
@ -633,7 +633,7 @@ public class CategoryArchitect
severancePages.add(new PageTartaricForgeRecipe(severanceRecipe)); severancePages.add(new PageTartaricForgeRecipe(severanceRecipe));
} }
PageAlchemyArray severanceRecipePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.SIGIL_ENDER_SEVERANCE)); PageAlchemyArray severanceRecipePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.SIGIL_ENDER_SEVERANCE));
if (severanceRecipePage != null) if (severanceRecipePage != null)
{ {
severancePages.add(severanceRecipePage); severancePages.add(severanceRecipePage);
@ -650,7 +650,7 @@ public class CategoryArchitect
telepositionPages.add(new PageTartaricForgeRecipe(telepositionRecipe)); telepositionPages.add(new PageTartaricForgeRecipe(telepositionRecipe));
} }
PageAlchemyArray telepositionRecipePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.SIGIL_TELEPOSITION)); PageAlchemyArray telepositionRecipePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.SIGIL_TELEPOSITION));
if (telepositionRecipePage != null) if (telepositionRecipePage != null)
{ {
telepositionPages.add(telepositionRecipePage); telepositionPages.add(telepositionRecipePage);
@ -667,7 +667,7 @@ public class CategoryArchitect
compressionPages.add(new PageTartaricForgeRecipe(compressionRecipe)); compressionPages.add(new PageTartaricForgeRecipe(compressionRecipe));
} }
PageAlchemyArray compressionRecipePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.SIGIL_COMPRESSION)); PageAlchemyArray compressionRecipePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.SIGIL_COMPRESSION));
if (compressionRecipePage != null) if (compressionRecipePage != null)
{ {
compressionPages.add(compressionRecipePage); compressionPages.add(compressionRecipePage);
@ -684,7 +684,7 @@ public class CategoryArchitect
bridgePages.add(new PageTartaricForgeRecipe(bridgeRecipe)); bridgePages.add(new PageTartaricForgeRecipe(bridgeRecipe));
} }
PageAlchemyArray bridgeRecipePage = BookUtils.getAlchemyPage(new ItemStack(ModItems.SIGIL_PHANTOM_BRIDGE)); PageAlchemyArray bridgeRecipePage = BookUtils.getAlchemyPage(new ItemStack(RegistrarBloodMagicItems.SIGIL_PHANTOM_BRIDGE));
if (bridgeRecipePage != null) if (bridgeRecipePage != null)
{ {
bridgePages.add(bridgeRecipePage); bridgePages.add(bridgeRecipePage);
@ -695,7 +695,7 @@ public class CategoryArchitect
List<IPage> mimicPages = new ArrayList<IPage>(); List<IPage> mimicPages = new ArrayList<IPage>();
IRecipe mimicRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(ModBlocks.MIMIC, 1, 1)); IRecipe mimicRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(RegistrarBloodMagicBlocks.MIMIC, 1, 1));
if (mimicRecipe != null) if (mimicRecipe != null)
{ {
mimicPages.add(BookUtils.getPageForRecipe(mimicRecipe)); mimicPages.add(BookUtils.getPageForRecipe(mimicRecipe));

Some files were not shown because too many files have changed in this diff Show more