mirror of
https://github.com/GTNewHorizons/TinkersConstruct.git
synced 2026-11-13 17:04:24 +00:00
Add armor modifiers rendering in books.
This commit is contained in:
1 parent
1e44b110ba
commit
26de0a42b5
6 files changed
+117
-24
No files matched your search
@@ -33,6 +33,7 @@ import tconstruct.common.TProxyCommon;
|
||||
import tconstruct.library.accessory.IAccessoryModel;
|
||||
import tconstruct.library.client.TConstructClientRegistry;
|
||||
import tconstruct.library.crafting.ModifyBuilder;
|
||||
import tconstruct.tools.TinkerTools;
|
||||
import tconstruct.world.TinkerWorld;
|
||||
|
||||
public class ArmorProxyClient extends ArmorProxyCommon
|
||||
@@ -72,22 +73,19 @@ public class ArmorProxyClient extends ArmorProxyCommon
|
||||
ItemStack feather = new ItemStack(Items.feather);
|
||||
ItemStack redstone = new ItemStack(Items.redstone);
|
||||
ItemStack goggles = TinkerArmor.travelGoggles.getDefaultItem();
|
||||
//MantleClientRegistry.registerManualSmallRecipe("nightvision", goggles.copy(), new ItemStack(Items.flint_and_steel), new ItemStack(Items.potionitem, 1, 0), new ItemStack(Items.golden_carrot), null);
|
||||
ItemStack g2 = goggles.copy();
|
||||
|
||||
g2 = ModifyBuilder.instance.modifyItem(g2, new ItemStack[] { new ItemStack(Items.flint_and_steel), new ItemStack(Items.potionitem, 1, 0), new ItemStack(Items.golden_carrot)});
|
||||
MantleClientRegistry.registerManualSmallRecipe("nightvision", g2, new ItemStack(Items.flint_and_steel), new ItemStack(Items.potionitem, 1, 8198), new ItemStack(Items.golden_carrot), null);
|
||||
TConstructClientRegistry.registerManualModifier("nightvision", goggles.copy(), new ItemStack(Items.flint_and_steel), new ItemStack(Items.potionitem, 1, 8198), new ItemStack(Items.golden_carrot), null);
|
||||
|
||||
ItemStack vest = TinkerArmor.travelVest.getDefaultItem();
|
||||
MantleClientRegistry.registerManualSmallRecipe("dodge", vest.copy(), new ItemStack(Items.ender_eye), new ItemStack(Items.ender_pearl), new ItemStack(Items.sugar), null);
|
||||
MantleClientRegistry.registerManualSmallRecipe("stealth", vest.copy(), new ItemStack(Items.fermented_spider_eye), new ItemStack(Items.ender_eye), new ItemStack(Items.potionitem, 1, 0), new ItemStack(Items.golden_carrot));
|
||||
TConstructClientRegistry.registerManualModifier("dodge", vest.copy(), new ItemStack(Items.ender_eye), new ItemStack(Items.ender_pearl), new ItemStack(Items.sugar), null);
|
||||
TConstructClientRegistry.registerManualModifier("stealth", vest.copy(), new ItemStack(Items.fermented_spider_eye), new ItemStack(Items.ender_eye), new ItemStack(Items.potionitem, 1, 0), new ItemStack(Items.golden_carrot));
|
||||
|
||||
ItemStack wings = new ItemStack(TinkerArmor.travelWings);
|
||||
MantleClientRegistry.registerManualSmallRecipe("doublejump", wings.copy(), new ItemStack(Items.ghast_tear), new ItemStack(TinkerWorld.slimeGel, 1, 0), new ItemStack(Blocks.piston), null);
|
||||
ItemStack wings = TinkerArmor.travelWings.getDefaultItem();
|
||||
TConstructClientRegistry.registerManualModifier("doublejumpwings", wings.copy(), new ItemStack(Items.ghast_tear), new ItemStack(TinkerWorld.slimeGel, 1, 0), new ItemStack(Blocks.piston), null);
|
||||
MantleClientRegistry.registerManualLargeRecipe("featherfall", wings.copy(), new ItemStack(TinkerWorld.slimeGel, 1, 0), feather, feather, feather, wings.copy(), feather, feather, new ItemStack(Items.ender_pearl), feather);
|
||||
|
||||
ItemStack boots = TinkerArmor.travelBoots.getDefaultItem();
|
||||
MantleClientRegistry.registerManualSmallRecipe("doublejumpboots", boots.copy(), new ItemStack(Items.ghast_tear), new ItemStack(TinkerWorld.slimeGel, 1, 1), new ItemStack(Blocks.piston), null);
|
||||
TConstructClientRegistry.registerManualModifier("doublejumpboots", boots.copy(), new ItemStack(Items.ghast_tear), new ItemStack(TinkerWorld.slimeGel, 1, 1), new ItemStack(Blocks.piston), null);
|
||||
TConstructClientRegistry.registerManualModifier("waterwalk", boots.copy(), new ItemStack(Blocks.waterlily), new ItemStack(Blocks.waterlily));
|
||||
TConstructClientRegistry.registerManualModifier("leadboots", boots.copy(), new ItemStack(Blocks.iron_block));
|
||||
TConstructClientRegistry.registerManualModifier("slimysoles", boots.copy(), new ItemStack(TinkerWorld.slimePad, 1, 0), new ItemStack(TinkerWorld.slimePad, 1, 0));
|
||||
@@ -96,6 +94,13 @@ public class ArmorProxyClient extends ArmorProxyCommon
|
||||
TConstructClientRegistry.registerManualModifier("glovehaste", gloves.copy(), redstone, new ItemStack(Blocks.redstone_block));
|
||||
//MantleClientRegistry.registerManualSmallRecipe("gloveclimb", gloves.copy(), new ItemStack(Items.slime_ball), new ItemStack(Blocks.web), new ItemStack(TinkerTools.materials, 1, 25), null);
|
||||
TConstructClientRegistry.registerManualModifier("gloveknuckles", gloves.copy(), new ItemStack(Items.quartz), new ItemStack(Blocks.quartz_block, 1, Short.MAX_VALUE));
|
||||
|
||||
// moss
|
||||
ItemStack moss = new ItemStack(TinkerTools.materials, 1, 6);
|
||||
TConstructClientRegistry.registerManualModifier("mossgoggles", goggles.copy(), moss.copy());
|
||||
TConstructClientRegistry.registerManualModifier("mossvest", vest.copy(), moss.copy());
|
||||
TConstructClientRegistry.registerManualModifier("mosswings", wings.copy(), moss.copy());
|
||||
TConstructClientRegistry.registerManualModifier("mossboots", boots.copy(), moss.copy());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -226,7 +226,7 @@ public class TinkerArmor
|
||||
TConstructRegistry.registerActiveArmorMod(new ActiveTinkerArmor());
|
||||
|
||||
//Head
|
||||
ModifyBuilder.registerModifier(new AModBoolean(0, "Night Vision", EnumSet.of(ArmorPart.Head), new ItemStack[] { new ItemStack(Items.flint_and_steel), new ItemStack(Items.potionitem, 1, 0), new ItemStack(Items.golden_carrot) }, "\u00a78", "Night Vision"));
|
||||
ModifyBuilder.registerModifier(new AModBoolean(0, "Night Vision", EnumSet.of(ArmorPart.Head), new ItemStack[] { new ItemStack(Items.flint_and_steel), new ItemStack(Items.potionitem, 1, 8198), new ItemStack(Items.golden_carrot) }, "\u00a78", "Night Vision"));
|
||||
|
||||
//Chest
|
||||
ModifyBuilder.registerModifier(new AModInteger(0, "Perfect Dodge", EnumSet.of(ArmorPart.Chest), new ItemStack[] { new ItemStack(Items.ender_eye), new ItemStack(Items.ender_pearl), new ItemStack(Items.sugar) }, 1, "\u00a7d", "Perfect Dodge"));
|
||||
|
||||
@@ -8,10 +8,18 @@ import net.minecraft.util.*;
|
||||
import org.lwjgl.opengl.*;
|
||||
import org.w3c.dom.*;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
public class ModifierPage extends BookPage
|
||||
{
|
||||
String type;
|
||||
ItemStack[] icons;
|
||||
ItemStack[][] iconsMulti;
|
||||
ItemStack[] toolMulti;
|
||||
|
||||
long lastUpdate;
|
||||
int counter;
|
||||
|
||||
@Override
|
||||
public void readPageFromXML (Element element)
|
||||
@@ -21,14 +29,45 @@ public class ModifierPage extends BookPage
|
||||
type = nodes.item(0).getTextContent();
|
||||
|
||||
nodes = element.getElementsByTagName("recipe");
|
||||
if (nodes != null)
|
||||
icons = MantleClientRegistry.getRecipeIcons(nodes.item(0).getTextContent());
|
||||
if (nodes != null) {
|
||||
String recipe = nodes.item(0).getTextContent();
|
||||
icons = MantleClientRegistry.getRecipeIcons(recipe);
|
||||
|
||||
if(type.equals("travelmulti"))
|
||||
{
|
||||
List<ItemStack[]> stacks = new LinkedList<ItemStack[]>();
|
||||
List<String> tools = new LinkedList<String>();
|
||||
String[] suffixes = new String[] { "goggles", "vest", "wings", "boots", "glove", "belt" };
|
||||
for(String suffix : suffixes)
|
||||
{
|
||||
ItemStack[] icons2 = MantleClientRegistry.getRecipeIcons(nodes.item(0).getTextContent() + suffix);
|
||||
if(icons2 != null) {
|
||||
stacks.add(icons2);
|
||||
tools.add(suffix);
|
||||
}
|
||||
}
|
||||
|
||||
iconsMulti = new ItemStack[stacks.size()][];
|
||||
toolMulti = new ItemStack[stacks.size()];
|
||||
for(int i = 0; i < stacks.size(); i++) {
|
||||
iconsMulti[i] = stacks.get(i);
|
||||
toolMulti[i] = MantleClientRegistry.getManualIcon("travel" + tools.get(i));
|
||||
}
|
||||
|
||||
icons = iconsMulti[0];
|
||||
|
||||
lastUpdate = System.currentTimeMillis();
|
||||
counter = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderContentLayer (int localWidth, int localHeight, boolean isTranslatable)
|
||||
{
|
||||
String tStation = new String("Tool Station");
|
||||
if(icons.length > 3)
|
||||
tStation = new String("Tool Forge");
|
||||
if (isTranslatable)
|
||||
tStation = StatCollector.translateToLocal(tStation);
|
||||
manual.fonts.drawString("\u00a7n" + tStation, localWidth + 60, localHeight + 4, 0);
|
||||
@@ -51,13 +90,38 @@ public class ModifierPage extends BookPage
|
||||
toolstack = MantleClientRegistry.getManualIcon("travelbelt");
|
||||
if(type.equals("travelglove"))
|
||||
toolstack = MantleClientRegistry.getManualIcon("travelglove");
|
||||
if(type.equals("travelmulti"))
|
||||
toolstack = toolMulti[counter];
|
||||
|
||||
// update displayed item
|
||||
if(iconsMulti != null && iconsMulti.length > 0 && type.equals("travelmulti") && System.currentTimeMillis() - lastUpdate > 1000)
|
||||
{
|
||||
lastUpdate = System.currentTimeMillis();
|
||||
counter++;
|
||||
if(counter >= iconsMulti.length)
|
||||
counter = 0;
|
||||
icons = iconsMulti[counter];
|
||||
toolstack = toolMulti[counter];
|
||||
}
|
||||
|
||||
manual.renderitem.zLevel = 100;
|
||||
manual.renderitem.renderItemAndEffectIntoGUI(manual.fonts, manual.getMC().renderEngine, toolstack, (localWidth + 54) / 2, (localHeight + 54) / 2);
|
||||
manual.renderitem.renderItemAndEffectIntoGUI(manual.fonts, manual.getMC().renderEngine, icons[0], (localWidth + 130) / 2, (localHeight + 54) / 2);
|
||||
manual.renderitem.renderItemAndEffectIntoGUI(manual.fonts, manual.getMC().renderEngine, icons[1], (localWidth + 18) / 2, (localHeight + 36) / 2);
|
||||
if (icons[2] != null)
|
||||
manual.renderitem.renderItemAndEffectIntoGUI(manual.fonts, manual.getMC().renderEngine, icons[2], (localWidth + 18) / 2, (localHeight + 74) / 2);
|
||||
if(icons.length < 4) {
|
||||
manual.renderitem.renderItemAndEffectIntoGUI(manual.fonts, manual.getMC().renderEngine, toolstack, (localWidth + 54) / 2, (localHeight + 54) / 2);
|
||||
manual.renderitem.renderItemAndEffectIntoGUI(manual.fonts, manual.getMC().renderEngine, icons[0], (localWidth + 130) / 2, (localHeight + 54) / 2);
|
||||
manual.renderitem.renderItemAndEffectIntoGUI(manual.fonts, manual.getMC().renderEngine, icons[1], (localWidth + 18) / 2, (localHeight + 36) / 2);
|
||||
if (icons[2] != null)
|
||||
manual.renderitem.renderItemAndEffectIntoGUI(manual.fonts, manual.getMC().renderEngine, icons[2], (localWidth + 18) / 2, (localHeight + 74) / 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
manual.renderitem.renderItemAndEffectIntoGUI(manual.fonts, manual.getMC().renderEngine, toolstack, (localWidth + 74) / 2, (localHeight + 54) / 2);
|
||||
manual.renderitem.renderItemAndEffectIntoGUI(manual.fonts, manual.getMC().renderEngine, icons[0], (localWidth + 140) / 2, (localHeight + 54) / 2);
|
||||
manual.renderitem.renderItemAndEffectIntoGUI(manual.fonts, manual.getMC().renderEngine, icons[1], (localWidth - 2) / 2, (localHeight + 36) / 2);
|
||||
manual.renderitem.renderItemAndEffectIntoGUI(manual.fonts, manual.getMC().renderEngine, icons[2], (localWidth - 2) / 2, (localHeight + 74) / 2);
|
||||
manual.renderitem.renderItemAndEffectIntoGUI(manual.fonts, manual.getMC().renderEngine, icons[3], (localWidth + 36) / 2, (localHeight + 36) / 2);
|
||||
if(icons[4] != null)
|
||||
manual.renderitem.renderItemAndEffectIntoGUI(manual.fonts, manual.getMC().renderEngine, icons[4], (localWidth + 36) / 2, (localHeight + 74) / 2);
|
||||
}
|
||||
manual.renderitem.zLevel = 0;
|
||||
|
||||
GL11.glScalef(0.5F, 0.5F, 0.5F);
|
||||
@@ -71,6 +135,9 @@ public class ModifierPage extends BookPage
|
||||
public void renderBackgroundLayer (int localWidth, int localHeight)
|
||||
{
|
||||
manual.getMC().getTextureManager().bindTexture(background);
|
||||
manual.drawTexturedModalRect(localWidth + 12, localHeight + 32, 0, 0, 154, 78);
|
||||
if(icons.length > 3)
|
||||
manual.drawTexturedModalRect(localWidth - 7, localHeight + 32, 0, 80, 182, 78);
|
||||
else
|
||||
manual.drawTexturedModalRect(localWidth + 12, localHeight + 32, 0, 0, 154, 78);
|
||||
}
|
||||
}
|
||||
@@ -92,6 +92,22 @@ public class TConstructClientRegistry
|
||||
MantleClientRegistry.recipeIcons.put(name, recipe);
|
||||
}
|
||||
|
||||
public static void registerManualModifier (String name, ItemStack output, ItemStack input1, ItemStack input2, ItemStack input3)
|
||||
{
|
||||
registerManualModifier(name, output, input1, input2, input3, null);
|
||||
}
|
||||
|
||||
public static void registerManualModifier (String name, ItemStack output, ItemStack input1, ItemStack input2, ItemStack input3, ItemStack input4)
|
||||
{
|
||||
ItemStack[] recipe = new ItemStack[5];
|
||||
recipe[0] = ModifyBuilder.instance.modifyItem(output, new ItemStack[] { input1, input2, input3, input4 });
|
||||
recipe[1] = input1;
|
||||
recipe[2] = input2;
|
||||
recipe[3] = input3;
|
||||
recipe[4] = input4;
|
||||
MantleClientRegistry.recipeIcons.put(name, recipe);
|
||||
}
|
||||
|
||||
public static void registerManualSmeltery (String name, ItemStack output, ItemStack liquid, ItemStack cast)
|
||||
{
|
||||
ItemStack[] recipe = new ItemStack[3];
|
||||
|
||||
Reference in new issue
Block a user