Minetweaker support

Added MT support, various housekeeping
This commit is contained in:
JAWolfe04 2016-02-06 02:12:30 -06:00
parent 3dc658a78e
commit 980bc6e0b1
21 changed files with 660 additions and 21 deletions

View File

@ -1 +1,3 @@
gradlew.bat setupdecompworkspace eclipse
gradlew.bat setupdecompworkspace eclipse
pause

View File

@ -39,7 +39,7 @@ allprojects
group = config.group_name
version = config.mod_version
archivesBaseName = "[${config.minecraft_version}]${config.mod_id}"
archivesBaseName = config.mod_id + "-" + config.minecraft_version
minecraft
{

View File

@ -1,6 +1,6 @@
minecraft_version=1.7.10
forge_version=10.13.4.1558-1.7.10
tfc_version=0.79.27
mod_version=1.03
mod_version=1.05
mod_id=TerraFirmaPunkTweaks
group_name=com.onewolfe.tfptweaks
group_name=com.JAWolfe.tfptweaks

View File

@ -0,0 +1,51 @@
//========================================================================
// Heating items
//========================================================================
//Add Recipe
//OutputStack, InputStack or InputOre, MeltingTemp(Default: 600, Normal Range 0-2000)[Optional], SpecificHeat(Default: 1, Normal Range 0-1)[Optional]
//mods.tfptweaks.ItemHeat.addRecipe(<minecraft:coal:1>,<terrafirmacraft:item.Log>);
//mods.tfptweaks.ItemHeat.addRecipe(<minecraft:coal:1>,<terrafirmacraft:item.Log>, 40);
//mods.tfptweaks.ItemHeat.addRecipe(<minecraft:coal:1>,<terrafirmacraft:item.Log>, 40, 1);
//mods.tfptweaks.ItemHeat.addRecipe(<minecraft:coal:1>,<ore:logWood>);
//mods.tfptweaks.ItemHeat.addRecipe(<minecraft:coal:1>,<ore:logWood>, 40);
//mods.tfptweaks.ItemHeat.addRecipe(<minecraft:coal:1>,<ore:logWood>, 40, 1);
//Remove Recipe
//InputStack
//mods.tfptweaks.ItemHeat.removeRecipe(<terrafirmacraft:Sand>);
//========================================================================
// Loom Recipes
//========================================================================
//Add Recipe
//OutputStack, InputStack, CosmeticLoomOverlay (Range 1-3: 1-String, 2-Silk, 3-Rope)[Optional]
//mods.tfptweaks.Loom.addRecipe(<minecraft:wool>, <terrafirmacraft:item.WoolCloth> * 4);
//mods.tfptweaks.Loom.addRecipe(<minecraft:wool>, <terrafirmacraft:item.WoolCloth> * 4, 1);
//OutputStack, InputStack, ImageOverlayLocation("modID:location")
//mods.tfptweaks.Loom.addRecipe(<minecraft:wool:11>, <terrafirmacraft:item.WoolCloth> * 4, "minecraft:blocks/wool_colored_blue");
//Remove Recipe
//InputStack {Stack size must be the same as the recipe to be removed}
//mods.tfptweaks.Loom.removeRecipe(<terrafirmacraft:item.WoolYarn> * 16);
//========================================================================
// Quern Recipes
//========================================================================
//Add Recipe
//OutputStack, InputStack
//mods.tfptweaks.Quern.addRecipe(<minecraft:dye:15> * 3, <minecraft:bone>);
//Remove Recipe
//OutputStack, InputStack {Stack sizes must be the same as the recipe to be removed}
//mods.tfptweaks.Quern.removeRecipe(<terrafirmacraft:item.dyePowder:15> * 2, <minecraft:bone>);
//mods.tfptweaks.Quern.removeRecipe(<terrafirmacraft:item.dyePowder:15>, <minecraft:bone>);

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,4 +1,4 @@
package com.onewolfe.tfptweaks;
package com.JAWolfe.tfptweaks;
import cpw.mods.fml.common.FMLLog;
import org.apache.logging.log4j.Level;

View File

@ -1,4 +1,4 @@
package com.onewolfe.tfptweaks;
package com.JAWolfe.tfptweaks;
import codechicken.nei.api.API;
import codechicken.nei.api.IConfigureNEI;

View File

@ -1,13 +1,16 @@
package com.onewolfe.tfptweaks;
package com.JAWolfe.tfptweaks;
import java.util.List;
import cpw.mods.fml.common.Loader;
import flaxbeard.steamcraft.SteamcraftItems;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.IRecipe;
import net.minecraftforge.oredict.OreDictionary;
import steamcraft.common.init.InitBlocks;
import steamcraft.common.init.InitItems;
public class RecipeTweaks
{
@ -27,6 +30,16 @@ public class RecipeTweaks
recipes.remove(i--);
}
}
OreDictionary.registerOre("itemAxe", new ItemStack(InitItems.axeSteam, 1, OreDictionary.WILDCARD_VALUE));
}
}
public static void RecipeFixes()
{
if(Loader.isModLoaded("Steamcraft"))
{
OreDictionary.registerOre("itemAxe", new ItemStack(SteamcraftItems.steamAxe, 1, OreDictionary.WILDCARD_VALUE));
}
}
}

View File

@ -1,4 +1,4 @@
package com.onewolfe.tfptweaks;
package com.JAWolfe.tfptweaks;
public class References
{

View File

@ -1,28 +1,36 @@
package com.onewolfe.tfptweaks;
package com.JAWolfe.tfptweaks;
import com.JAWolfe.tfptweaks.handlers.*;
import com.JAWolfe.tfptweaks.minetweaker.TFCTweaker;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.common.MinecraftForge;
@Mod(modid = References.ModID, name = References.ModName, version = References.ModVersion, dependencies = References.ModDependencies)
public class TerraFirmaPunkTweaks
{
@EventHandler
public void init(FMLInitializationEvent event)
public void preInit(FMLPreInitializationEvent event)
{
}
@EventHandler
public void initialize(FMLInitializationEvent event)
{
{
RecipeTweaks.RecipeFixes();
MinecraftForge.EVENT_BUS.register(new PlayerHandler());
}
@EventHandler
public void postInit(FMLPostInitializationEvent event)
{
TFCTweaker.postInit();
RecipeTweaks.SC2RecipeTweaks();
}
}

View File

@ -1,9 +1,7 @@
package com.onewolfe.tfptweaks;
package com.JAWolfe.tfptweaks.handlers;
import java.util.Random;
import com.bioxx.tfc.TerraFirmaCraft;
import com.bioxx.tfc.Handlers.EntityDamageHandler;
import com.bioxx.tfc.Items.ItemTFCArmor;
import com.bioxx.tfc.api.TFCBlocks;
import com.bioxx.tfc.api.Enums.EnumDamageType;
@ -12,7 +10,6 @@ import com.bioxx.tfc.api.Interfaces.ICausesDamage;
import com.bioxx.tfc.api.Interfaces.IInnateArmor;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.SharedMonsterAttributes;
@ -58,9 +55,7 @@ public class PlayerHandler
public void onDamaged(LivingHurtEvent event)
{
if(event.entity instanceof EntityPlayer)
{
//LogHelper.info(event.source.getDamageType() + " " + event.ammount);
{
if (event.source == DamageSource.onFire || event.source == DamageSource.fall || event.source == DamageSource.drown ||
event.source == DamageSource.lava || event.source == DamageSource.inWall || event.source == DamageSource.fallingBlock ||
event.source.isExplosion() || event.source == DamageSource.inFire || event.source == DamageSource.starve)
@ -80,7 +75,6 @@ public class PlayerHandler
}
else if(event.source.isUnblockable() && event.source.getSourceOfDamage() instanceof EntityLivingBase)
{
LogHelper.info("Unblockable");
float damage = (float)((EntityLivingBase)event.source.getSourceOfDamage()).getEntityAttribute(SharedMonsterAttributes.attackDamage).getAttributeValue();
if(damage <= 20)
@ -184,7 +178,7 @@ public class PlayerHandler
//6. Apply the damage to the player
EntityArmorCalcEvent eventPost = new EntityArmorCalcEvent(entity, damage, EntityArmorCalcEvent.EventType.POST);
MinecraftForge.EVENT_BUS.post(eventPost);
LogHelper.info(entity.getClass() + " " + source.getDamageType() +", "+eventPre.incomingDamage+", "+eventPost.incomingDamage);
//LogHelper.info(entity + " " + source.getDamageType() +", "+eventPre.incomingDamage+", "+eventPost.incomingDamage);
float hasHealth = entity.getHealth();
entity.setHealth(entity.getHealth()-eventPost.incomingDamage);
entity.func_110142_aN().func_94547_a(source, hasHealth, eventPost.incomingDamage);

View File

@ -0,0 +1,197 @@
package com.JAWolfe.tfptweaks.minetweaker;
import java.util.List;
import com.bioxx.tfc.api.HeatIndex;
import com.bioxx.tfc.api.HeatRegistry;
import minetweaker.IUndoableAction;
import minetweaker.MineTweakerAPI;
import minetweaker.api.item.IItemStack;
import minetweaker.api.minecraft.MineTweakerMC;
import minetweaker.api.oredict.IOreDictEntry;
import net.minecraft.item.ItemStack;
import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenMethod;
@ZenClass("mods.tfptweaks.ItemHeat")
public class ItemHeat
{
@ZenMethod
public static void addRecipe(IItemStack output, IItemStack input, int heat, int specHeat)
{
ItemStack inputStack = MineTweakerMC.getItemStack(input);
ItemStack outputStack = MineTweakerMC.getItemStack(output);
if(inputStack == null || inputStack.getItem() == null)
MineTweakerAPI.logError("Missing InputStack");
else if(outputStack == null || outputStack.getItem() == null)
MineTweakerAPI.logError("Missing OutputStack");
else if(heat < 0)
MineTweakerAPI.logError("Item melting point cannot be less than 0");
else if(specHeat < 0)
MineTweakerAPI.logError("Item specific heat cannot be less than 0");
else
MineTweakerAPI.apply(new addHeatingAction(outputStack, inputStack, heat, specHeat));
}
@ZenMethod
public static void addRecipe(IItemStack output, IItemStack input, int heat)
{
addRecipe(output, input, heat, 1);
}
@ZenMethod
public static void addRecipe(IItemStack output, IItemStack input)
{
addRecipe(output, input, 600);
}
@ZenMethod
public static void addRecipe(IItemStack output, IOreDictEntry oredictentry, int heat, int specHeat)
{
if (oredictentry != null && oredictentry.getAmount() > 0)
{
List<IItemStack> oreEntries = oredictentry.getItems();
for(int i = 0; i < oreEntries.size(); i++)
{
addRecipe(output, oreEntries.get(i), heat, specHeat);
}
}
}
@ZenMethod
public static void addRecipe(IItemStack output, IOreDictEntry oredictentry, int heat)
{
addRecipe(output, oredictentry, heat, 1);
}
@ZenMethod
public static void addRecipe(IItemStack output, IOreDictEntry oredictentry)
{
addRecipe(output, oredictentry, 600);
}
@ZenMethod
public static void removeRecipe(IItemStack input)
{
ItemStack inputStack = MineTweakerMC.getItemStack(input);
if(inputStack == null || inputStack.getItem() == null)
MineTweakerAPI.logError("Missing InputStack");
else
MineTweakerAPI.apply(new removeHeatingAction(inputStack));
}
private static class addHeatingAction implements IUndoableAction
{
private ItemStack inputStack;
private ItemStack outputStack;
private int meltingPoint;
private int specificHeat;
public addHeatingAction(ItemStack output, ItemStack input, int heat, int specHeat)
{
this.outputStack = output;
this.inputStack = input;
this.meltingPoint = heat;
this.specificHeat = specHeat;
}
@Override
public void apply()
{
HeatRegistry.getInstance().addIndex(new HeatIndex(inputStack, specificHeat, meltingPoint, outputStack).setMinMax(outputStack.getItemDamage()));
}
@Override
public String describe()
{
return "Adding item '" + inputStack.getDisplayName() + "' to heated items with melting point '" + meltingPoint
+ "' and specific heat '" + specificHeat + "' to yeild '" + outputStack.getDisplayName() + "'";
}
@Override
public boolean canUndo()
{
return true;
}
@Override
public void undo()
{
List<HeatIndex> heatList = HeatRegistry.getInstance().getHeatList();
for (int i = 0; i < heatList.size(); i++)
{
if (heatList.get(i) != null)
{
if (heatList.get(i).matches(inputStack) && heatList.get(i).getOutputItem() == outputStack.getItem()
&& heatList.get(i).meltTemp == meltingPoint && heatList.get(i).specificHeat == specificHeat)
heatList.remove(i--);
}
}
}
@Override
public String describeUndo()
{
return "Removing item '" + inputStack.getDisplayName() + "' from heated items with melting point '" + meltingPoint
+ "' and specific heat '" + specificHeat + "' yeilding '" + outputStack.getDisplayName() + "'";
}
@Override
public Object getOverrideKey() {
return null;
}
}
private static class removeHeatingAction implements IUndoableAction
{
private ItemStack inputStack;
public removeHeatingAction(ItemStack input)
{
this.inputStack = input;
}
@Override
public void apply()
{
List<HeatIndex> heatList = HeatRegistry.getInstance().getHeatList();
for (int i = 0; i < heatList.size(); i++)
{
if (heatList.get(i) != null)
{
if (heatList.get(i).matches(inputStack))
heatList.remove(i--);
}
}
}
@Override
public String describe() {
return "Removing item '" + inputStack.getDisplayName() + "' from Heated Items.'";
}
@Override
public boolean canUndo() {
return false;
}
@Override
public void undo() {
//Cannot undo
}
@Override
public String describeUndo() {
//Cannot undo
return null;
}
@Override
public Object getOverrideKey() {
return null;
}
}
}

View File

@ -0,0 +1,174 @@
package com.JAWolfe.tfptweaks.minetweaker;
import java.util.List;
import com.bioxx.tfc.Reference;
import com.bioxx.tfc.api.Crafting.LoomManager;
import com.bioxx.tfc.api.Crafting.LoomRecipe;
import minetweaker.IUndoableAction;
import minetweaker.MineTweakerAPI;
import minetweaker.api.item.IItemStack;
import minetweaker.api.minecraft.MineTweakerMC;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenMethod;
@ZenClass("mods.tfptweaks.Loom")
public class Loom
{
@ZenMethod
public static void addRecipe(IItemStack output, IItemStack input, String resource)
{
ItemStack inputStack = MineTweakerMC.getItemStack(input);
ItemStack outputStack = MineTweakerMC.getItemStack(output);
if(inputStack == null || inputStack.getItem() == null)
MineTweakerAPI.logError("Missing InputStack");
else if(outputStack == null || outputStack.getItem() == null)
MineTweakerAPI.logError("Missing OutputStack");
else if(resource != null && resource.length() == 0)
MineTweakerAPI.logError("Missing Resource Location");
else
MineTweakerAPI.apply(new addLoomAction(outputStack, inputStack, resource));
}
@ZenMethod
public static void addRecipe(IItemStack output, IItemStack input, int overlay)
{
switch(overlay)
{
case 1: addRecipe(output, input, Reference.MOD_ID + ":" + "blocks/String"); break;
case 2: addRecipe(output, input, Reference.MOD_ID + ":" + "blocks/Silk"); break;
case 3: addRecipe(output, input, Reference.MOD_ID + ":" + "blocks/Rope"); break;
default: addRecipe(output, input, Reference.MOD_ID + ":" + "blocks/String"); break;
}
}
@ZenMethod
public static void addRecipe(IItemStack output, IItemStack input)
{
addRecipe(output, input, 1);
}
@ZenMethod
public static void removeRecipe(IItemStack input)
{
ItemStack inputStack = MineTweakerMC.getItemStack(input);
if(inputStack == null || inputStack.getItem() == null)
MineTweakerAPI.logError("Missing InputStack");
else
MineTweakerAPI.apply(new removeLoomAction(inputStack));
}
private static class addLoomAction implements IUndoableAction
{
private ItemStack inputStack;
private ItemStack outputStack;
private String modid;
private String pathLocation;
public addLoomAction(ItemStack output, ItemStack input, String location)
{
this.inputStack = input;
this.outputStack = output;
String[] itemresource = location.split(":");
this.modid = itemresource[0];
this.pathLocation = "textures/" + itemresource[1] + ".png";
}
@Override
public void apply()
{
LoomManager.getInstance().addRecipe(new LoomRecipe(inputStack, outputStack), new ResourceLocation(modid, pathLocation));
}
@Override
public String describe()
{
return "Adding item '" + inputStack.getDisplayName() + "' to loom yeilding '" + outputStack.getDisplayName()
+ "' with the resource location of '" + modid +":" + pathLocation + "'";
}
@Override
public boolean canUndo()
{
return true;
}
@Override
public void undo()
{
List<LoomRecipe> LoomList = LoomManager.getInstance().getRecipes();
for (int i = 0; i < LoomList.size(); i++)
{
if (LoomList.get(i) != null)
{
if (LoomList.get(i).matches(inputStack))
LoomList.remove(i--);
}
}
}
@Override
public String describeUndo() {
return "Removing item '" + inputStack.getDisplayName() + "' from loom'";
}
@Override
public Object getOverrideKey() {
return null;
}
}
private static class removeLoomAction implements IUndoableAction
{
private ItemStack inputStack;
public removeLoomAction(ItemStack input)
{
this.inputStack = input;
}
@Override
public void apply()
{
List<LoomRecipe> LoomList = LoomManager.getInstance().getRecipes();
for (int i = 0; i < LoomList.size(); i++)
{
if (LoomList.get(i) != null)
{
if (LoomList.get(i).matches(inputStack))
LoomList.remove(i--);
}
}
}
@Override
public String describe() {
return "Removing item '" + inputStack.getDisplayName() + "' from loom'";
}
@Override
public boolean canUndo() {
return false;
}
@Override
public void undo() {
}
@Override
public String describeUndo() {
return null;
}
@Override
public Object getOverrideKey() {
return null;
}
}
}

View File

@ -0,0 +1,183 @@
package com.JAWolfe.tfptweaks.minetweaker;
import java.util.List;
import com.bioxx.tfc.api.Crafting.QuernManager;
import com.bioxx.tfc.api.Crafting.QuernRecipe;
import minetweaker.IUndoableAction;
import minetweaker.MineTweakerAPI;
import minetweaker.api.item.IItemStack;
import minetweaker.api.minecraft.MineTweakerMC;
import net.minecraft.item.ItemStack;
import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenMethod;
@ZenClass("mods.tfptweaks.Quern")
public class Quern
{
@ZenMethod
public static void addRecipe(IItemStack output, IItemStack input)
{
ItemStack inputStack = MineTweakerMC.getItemStack(input);
ItemStack outputStack = MineTweakerMC.getItemStack(output);
if(inputStack == null || inputStack.getItem() == null)
MineTweakerAPI.logError("Missing InputStack");
else if(outputStack == null || outputStack.getItem() == null)
MineTweakerAPI.logError("Missing OutputStack");
else
MineTweakerAPI.apply(new addQuernAction(outputStack, inputStack));
}
@ZenMethod
public static void removeRecipe(IItemStack output, IItemStack input)
{
ItemStack inputStack = MineTweakerMC.getItemStack(input);
ItemStack outputStack = MineTweakerMC.getItemStack(output);
if(inputStack == null || inputStack.getItem() == null)
MineTweakerAPI.logError("Missing InputStack");
else if(outputStack == null || outputStack.getItem() == null)
MineTweakerAPI.logError("Missing OutputStack");
else
MineTweakerAPI.apply(new removeQuernAction(outputStack, inputStack));
}
private static class addQuernAction implements IUndoableAction
{
private ItemStack inputStack;
private ItemStack outputStack;
public addQuernAction(ItemStack output, ItemStack input)
{
this.outputStack = output;
this.inputStack = input;
}
@Override
public void apply()
{
QuernManager.getInstance().addRecipe(new QuernRecipe(inputStack, outputStack));
}
@Override
public String describe()
{
return "Adding item '" + inputStack.getDisplayName() + "' to the Quern to yeild '" + outputStack.getDisplayName() + "'";
}
@Override
public boolean canUndo()
{
return true;
}
@Override
public void undo()
{
List<QuernRecipe> quernList = QuernManager.getInstance().getRecipes();
for (int i = 0; i < quernList.size(); i++)
{
if (quernList.get(i) != null)
{
if (quernList.get(i).isInItem(inputStack) && ItemStack.areItemStacksEqual(quernList.get(i).getResult(), outputStack))
quernList.remove(i--);
}
}
if(QuernManager.getInstance().findMatchingRecipe(inputStack) == null && QuernManager.getInstance().isValidItem(inputStack))
{
List<ItemStack> validItemsList = QuernManager.getInstance().getValidItems();
for (int i = 0; i < validItemsList.size(); i++)
{
if (validItemsList.get(i) != null)
{
if (ItemStack.areItemStacksEqual(validItemsList.get(i), inputStack))
validItemsList.remove(i--);
}
}
}
}
@Override
public String describeUndo()
{
return "Removing item '" + inputStack.getDisplayName() + "' from the Quern yeilding '" + outputStack.getDisplayName() + "'";
}
@Override
public Object getOverrideKey() {
return null;
}
}
private static class removeQuernAction implements IUndoableAction
{
private ItemStack inputStack;
private ItemStack outputStack;
public removeQuernAction(ItemStack output, ItemStack input)
{
this.outputStack = output;
this.inputStack = input;
}
@Override
public void apply()
{
List<QuernRecipe> quernList = QuernManager.getInstance().getRecipes();
for (int i = 0; i < quernList.size(); i++)
{
if (quernList.get(i) != null)
{
if (quernList.get(i).isInItem(inputStack) && ItemStack.areItemStacksEqual(quernList.get(i).getResult(), outputStack))
quernList.remove(i--);
}
}
if(QuernManager.getInstance().findMatchingRecipe(inputStack) == null && QuernManager.getInstance().isValidItem(inputStack))
{
List<ItemStack> validItemsList = QuernManager.getInstance().getValidItems();
for (int i = 0; i < validItemsList.size(); i++)
{
if (validItemsList.get(i) != null)
{
if (ItemStack.areItemStacksEqual(validItemsList.get(i), inputStack))
validItemsList.remove(i--);
}
}
}
}
@Override
public String describe()
{
return "Removing item '" + inputStack.getDisplayName() + "' from the Quern yeilding '" + outputStack.getDisplayName() + "'";
}
@Override
public boolean canUndo()
{
return true;
}
@Override
public void undo()
{
QuernManager.getInstance().addRecipe(new QuernRecipe(inputStack, outputStack));
}
@Override
public String describeUndo()
{
return "Adding item '" + inputStack.getDisplayName() + "' to the Quern to yeild '" + outputStack.getDisplayName() + "'";
}
@Override
public Object getOverrideKey() {
return null;
}
}
}

View File

@ -0,0 +1,17 @@
package com.JAWolfe.tfptweaks.minetweaker;
import cpw.mods.fml.common.Loader;
import minetweaker.MineTweakerAPI;
public class TFCTweaker
{
public static void postInit()
{
if (Loader.isModLoaded("MineTweaker3"))
{
MineTweakerAPI.registerClass(ItemHeat.class);
MineTweakerAPI.registerClass(Loom.class);
MineTweakerAPI.registerClass(Quern.class);
}
}
}

View File

@ -8,7 +8,7 @@
"mcversion": "${minecraft_version}",
"url": "",
"updateUrl": "",
"authorList": [""],
"authorList": ["JAWolfe, OneWolfe"],
"credits": "",
"logoFile": "",
"screenshots": [],