Skip to content

Commit

Permalink
Finish controls on travel gear
Browse files Browse the repository at this point in the history
  • Loading branch information
mDiyo committed Jul 21, 2014
1 parent ea634c1 commit d891a26
Show file tree
Hide file tree
Showing 20 changed files with 204 additions and 117 deletions.
10 changes: 1 addition & 9 deletions resources/assets/tinker/manuals/firstday.xml
Expand Up @@ -234,7 +234,7 @@ Note: The Smeltery is required to process all metals, including iron.</text>
</page>

<page type="crafting">
<text>Vision</text>
<text>Dodge</text>
<recipe>
<name>dodge</name>
<size>two</size>
Expand Down Expand Up @@ -298,14 +298,6 @@ Note: The Smeltery is required to process all metals, including iron.</text>
<recipe>glovehaste</recipe>
</page>

<page type="crafting">
<text>Flesh</text>
<recipe>
<name>gloveclimb</name>
<size>two</size>
</recipe>
</page>

<page type="modifier">
<tooltype>travelgloves</tooltype>
<recipe>gloveknuckles</recipe>
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/tconstruct/TConstruct.java
Expand Up @@ -26,7 +26,7 @@
import tconstruct.util.EnvironmentChecks;
import tconstruct.util.config.DimensionBlacklist;
import tconstruct.util.config.PHConstruct;
import tconstruct.util.network.packet.PacketPipeline;
import tconstruct.util.network.PacketPipeline;
import tconstruct.world.TinkerWorld;
import tconstruct.world.gen.SlimeIslandGen;
import tconstruct.world.village.ComponentSmeltery;
Expand Down
44 changes: 30 additions & 14 deletions src/main/java/tconstruct/armor/ArmorProxyClient.java
Expand Up @@ -25,12 +25,14 @@
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World;
import net.minecraftforge.client.GuiIngameForge;
import net.minecraftforge.client.event.FOVUpdateEvent;
import net.minecraftforge.client.event.RenderGameOverlayEvent;
import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType;
import net.minecraftforge.client.event.RenderPlayerEvent;
import net.minecraftforge.common.MinecraftForge;
import tconstruct.armor.gui.ArmorExtendedGui;
import tconstruct.armor.gui.KnapsackGui;
import tconstruct.armor.items.TravelGear;
import tconstruct.armor.model.BeltModel;
import tconstruct.armor.model.BootBump;
import tconstruct.armor.model.HiddenPlayerModel;
Expand Down Expand Up @@ -75,40 +77,39 @@ public void initialize ()
MinecraftForge.EVENT_BUS.register(this);
FMLCommonHandler.instance().bus().register(new ArmorAbilitiesClient(mc, controlInstance));
}

private void registerManualRecipes ()
{
ItemStack feather = new ItemStack(Items.feather);
ItemStack redstone = new ItemStack(Items.redstone);
ItemStack goggles = new ItemStack(TinkerArmor.travelGoggles);
MantleClientRegistry.registerManualIcon("travelgoggles", goggles);
TConstructClientRegistry.registerManualModifier("nightvision", goggles.copy(), new ItemStack(Items.flint_and_steel), new ItemStack(Items.potionitem, 1, 8198));
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 vest = new ItemStack(TinkerArmor.travelVest);
ItemStack vest = TinkerArmor.travelVest.getDefaultItem();
System.out.println("Travel Vest Item: "+vest);
MantleClientRegistry.registerManualIcon("travelvest", vest);
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(Blocks.ice), new ItemStack(Items.ender_eye), new ItemStack(Items.potionitem, 1, 8206), 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));

ItemStack wings = new ItemStack(TinkerArmor.travelWings);
MantleClientRegistry.registerManualIcon("travelwings", wings);
MantleClientRegistry.registerManualSmallRecipe("doublejump", 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);
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 = new ItemStack(TinkerArmor.travelBoots);
ItemStack boots = TinkerArmor.travelBoots.getDefaultItem();
MantleClientRegistry.registerManualIcon("travelboots", boots);
MantleClientRegistry.registerManualSmallRecipe("doublejumpboots", boots.copy(), new ItemStack(Items.ghast_tear), new ItemStack(TinkerWorld.slimeGel, 1, 1), new ItemStack(Blocks.piston),
null);
MantleClientRegistry.registerManualSmallRecipe("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));

ItemStack gloves = new ItemStack(TinkerArmor.travelGlove);
ItemStack gloves = TinkerArmor.travelGlove.getDefaultItem();
MantleClientRegistry.registerManualIcon("travelgloves", gloves);
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);
//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));

}

@Override
Expand Down Expand Up @@ -188,6 +189,21 @@ public void uploadKeyBindingsToGame (GameSettings settings, TKeyHandler keyhandl
int updateCounter = 0;

GameSettings gs = Minecraft.getMinecraft().gameSettings;

@SubscribeEvent
public void goggleZoom (FOVUpdateEvent event)
{
if (TControls.zoom)
{
ItemStack helmet = event.entity.getCurrentArmor(3);
if (helmet != null && helmet.getItem() instanceof TravelGear)
{
event.newfov = 0.3f;
}
}
//ItemStack feet = player.getCurrentArmor(0);
//event.newfov = 1.0f;
}

/* HUD */
@SubscribeEvent
Expand Down
19 changes: 11 additions & 8 deletions src/main/java/tconstruct/armor/PlayerAbilityHelper.java
@@ -1,20 +1,23 @@
package tconstruct.armor;

import net.minecraft.entity.Entity;
import net.minecraft.entity.player.*;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.*;
import net.minecraft.potion.*;
import tconstruct.TConstruct;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import tconstruct.armor.player.ArmorExtended;
import tconstruct.armor.player.TPlayerStats;

public class PlayerAbilityHelper
{

public static void toggleGoggles (EntityPlayer player)
public static void toggleGoggles (EntityPlayer player, boolean active)
{
TPlayerStats stats = TPlayerStats.get(player);
stats.activeGoggles = !stats.activeGoggles;
stats.activeGoggles = active;
if (!stats.activeGoggles)
{
player.removePotionEffect(Potion.nightVision.id);
Expand All @@ -25,7 +28,7 @@ public static void toggleGoggles (EntityPlayer player)
}
}

public static void swapBelt (EntityPlayer player, TPlayerStats stats)
public static void swapBelt (EntityPlayer player, ArmorExtended armor)
{
NBTTagList slots = new NBTTagList();
InventoryPlayer hotbar = player.inventory;
Expand All @@ -44,7 +47,7 @@ public static void swapBelt (EntityPlayer player, TPlayerStats stats)
hotbar.mainInventory[i] = null;
}

ItemStack belt = stats.armor.inventory[3];
ItemStack belt = armor.inventory[3];
NBTTagList replaceSlots = belt.getTagCompound().getTagList("Inventory", 10);
for (int i = 0; i < replaceSlots.tagCount(); ++i)
{
Expand Down
14 changes: 7 additions & 7 deletions src/main/java/tconstruct/armor/TinkerArmor.java
Expand Up @@ -206,8 +206,8 @@ private void craftingTableRecipes ()
GameRegistry.addRecipe(new ItemStack(TinkerArmor.knapsack, 1, 0), "###", "rmr", "###", '#', new ItemStack(Items.leather), 'r', new ItemStack(TinkerTools.toughRod, 1, 2), 'm', aluBrass);
// Drying Rack Recipes
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(TinkerArmor.dryingRack, 1, 0), "bbb", 'b', "slabWood"));
//Temporary recipes

//Temporary recipes
ItemStack leather = new ItemStack(Items.leather);
ItemStack glass = new ItemStack(Blocks.glass);
ItemStack string = new ItemStack(Items.string);
Expand Down Expand Up @@ -250,14 +250,14 @@ private void registerModifiers ()
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, 8198) }, "\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, 0),
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"));
ModifyBuilder.registerModifier(new AModBoolean(1, "Stealth", EnumSet.of(ArmorPart.Chest), new ItemStack[] { new ItemStack(Blocks.ice), new ItemStack(Items.ender_eye),
new ItemStack(Items.potionitem, 1, 8206) }, "\u00a78", "Stealth"));
ModifyBuilder.registerModifier(new AModBoolean(1, "Stealth", EnumSet.of(ArmorPart.Chest), new ItemStack[] { new ItemStack(Items.fermented_spider_eye), new ItemStack(Items.ender_eye),
new ItemStack(Items.potionitem, 1, 0), new ItemStack(Items.golden_carrot) }, "\u00a78", "Stealth"));

//Wings
ItemStack feather = new ItemStack(Items.feather);
Expand All @@ -275,7 +275,7 @@ private void registerModifiers ()

//Glove
ModifyBuilder.registerModifier(new GloveSpeed(1, new ItemStack[] { redstoneItem, redstoneBlock }, new int[] { 1, 9 }));
ModifyBuilder.registerModifier(new GloveClimb(new ItemStack[] { new ItemStack(Items.slime_ball), new ItemStack(Blocks.web), new ItemStack(TinkerTools.materials, 1, 25) }));
//ModifyBuilder.registerModifier(new GloveClimb(new ItemStack[] { new ItemStack(Items.slime_ball), new ItemStack(Blocks.web), new ItemStack(TinkerTools.materials, 1, 25) }));
this.modAttackGlove = new ModAttack("Quartz", 2, new ItemStack[] { new ItemStack(Items.quartz), new ItemStack(Blocks.quartz_block, 1, Short.MAX_VALUE) }, new int[] { 1, 4 }, 50, 50,
"Accessory");
ModifyBuilder.registerModifier(this.modAttackGlove);
Expand Down
9 changes: 8 additions & 1 deletion src/main/java/tconstruct/armor/items/Knapsack.java
Expand Up @@ -7,10 +7,11 @@
import net.minecraft.item.ItemStack;
import net.minecraft.util.StatCollector;
import tconstruct.library.TConstructRegistry;
import tconstruct.library.accessory.IAccessory;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class Knapsack extends CraftingItem
public class Knapsack extends CraftingItem implements IAccessory
{

public Knapsack()
Expand All @@ -31,6 +32,12 @@ public void addInformation (ItemStack stack, EntityPlayer player, List list, boo
}
}

@Override
public boolean canEquipAccessory (ItemStack item, int slot)
{
return slot == 2;
}

// TODO feel fix this so that stuff ticks in backpacks
/*
* @Override public void onArmorTickUpdate (World world, EntityPlayer
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/tconstruct/armor/items/TravelGear.java
Expand Up @@ -175,7 +175,7 @@ public void addInformation (ItemStack stack, EntityPlayer player, List list, boo
switch (armorPart)
{
case Head:
list.add("\u00a76Ability: Zoom with");
list.add("\u00a76Ability: Zoom with " + GameSettings.getKeyDisplayString(tconstruct.client.TControls.zoomKey.getKeyCode()));
list.add("\u00a76Toggle Abilities: " + GameSettings.getKeyDisplayString(tconstruct.client.TControls.toggleGoggles.getKeyCode()));
break;
case Chest:
Expand Down
75 changes: 30 additions & 45 deletions src/main/java/tconstruct/client/TControls.java
Expand Up @@ -9,12 +9,16 @@
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.potion.Potion;
import tconstruct.TConstruct;
import tconstruct.armor.ArmorProxyClient;
import tconstruct.armor.ArmorProxyCommon;
import tconstruct.armor.PlayerAbilityHelper;
import tconstruct.armor.items.TravelGear;
import tconstruct.client.event.EventCloakRender;
import tconstruct.client.tabs.TabRegistry;
import tconstruct.util.network.packet.PacketDoubleJump;
import tconstruct.util.network.packet.PacketExtendedInventory;
import cpw.mods.fml.client.registry.ClientRegistry;
import tconstruct.util.network.AccessoryInventoryPacket;
import tconstruct.util.network.BeltPacket;
import tconstruct.util.network.DoubleJumpPacket;
import tconstruct.util.network.GogglePacket;
import cpw.mods.fml.common.gameevent.TickEvent.Type;

public class TControls extends TKeyHandler
Expand All @@ -33,8 +37,8 @@ public class TControls extends TKeyHandler
int midairJumps = 0;
boolean climbing = false;
boolean onGround = false;
boolean onStilts = false;
public static boolean zoom = false;
boolean activeGoggles = false; //TODO: Set this on server login

int currentTab = 1;

Expand Down Expand Up @@ -113,37 +117,29 @@ public void keyDown (Type types, KeyBinding kb, boolean tickEnd, boolean isRepea
}
}

/*if (mc.currentScreen == null)
if (mc.currentScreen == null)
{
if (kb == toggleGoggles)
{
ItemStack goggles = mc.thePlayer.getCurrentArmor(3);
if (goggles != null && goggles.getItem() instanceof TravelGear) //TODO: Genericize this
{
PlayerAbilityHelper.toggleGoggles(mc.thePlayer);
updateServer((byte) 9);
activeGoggles = !activeGoggles;
toggleGoggles();
}
}
if (kb == beltSwap)
{
TPlayerStats stats = TConstruct.playerTracker.getPlayerStats(mc.thePlayer.username);
if (stats.armor.inventory[3] != null)
if (ArmorProxyClient.armorExtended.inventory[3] != null)
{
//PlayerAbilityHelper.swapBelt(mc.thePlayer, stats);
updateServer((byte) 8);
PlayerAbilityHelper.swapBelt(mc.thePlayer, ArmorProxyClient.armorExtended);
toggleBelt();
}
}
if (kb == zoomKey)
zoom = !zoom;
}*/
}
}
/*
* else if (kb == stiltsKey) //Stilts { float size = 1.8F; if
* (!onStilts) size = 0.8F;
* TConstruct.playerTracker.updateSize(mc.thePlayer.username, size);
* onStilts = !onStilts; //updateServer(mc.thePlayer.username, (byte)
* 11); if (onStilts) { onStilts = false; } else { onStilts = true; } }
*/
}

@Override
Expand All @@ -164,46 +160,35 @@ public void resetControls ()
jumping = false;
climbing = false;
onGround = false;
onStilts = false;
}

void resetFallDamage ()
{
AbstractPacket packet = new PacketDoubleJump();
AbstractPacket packet = new DoubleJumpPacket();
updateServer(packet);
}

void updateSize (String name, float size)
{
/*ByteArrayOutputStream bos = new ByteArrayOutputStream(8);
DataOutputStream outputStream = new DataOutputStream(bos);
try
{
outputStream.writeByte(11);
outputStream.writeUTF(name);
outputStream.writeFloat(size);
}
catch (Exception ex)
{
ex.printStackTrace();
}
updateServer(bos);*/

//TODO: Enable code with right packet
//AbstractPacket packet = new ();
//updateServer(packet);
}

public static void openArmorGui ()
{
AbstractPacket packet = new PacketExtendedInventory(ArmorProxyCommon.armorGuiID);
AbstractPacket packet = new AccessoryInventoryPacket(ArmorProxyCommon.armorGuiID);
updateServer(packet);
}

public static void openKnapsackGui ()
{
AbstractPacket packet = new PacketExtendedInventory(ArmorProxyCommon.knapsackGuiID);
AbstractPacket packet = new AccessoryInventoryPacket(ArmorProxyCommon.knapsackGuiID);
updateServer(packet);
}

private void toggleGoggles()
{
AbstractPacket packet = new GogglePacket(activeGoggles);
updateServer(packet);
}

private void toggleBelt()
{
AbstractPacket packet = new BeltPacket();
updateServer(packet);
}

Expand Down
Expand Up @@ -8,6 +8,7 @@
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import tconstruct.library.TConstructRegistry;
import tconstruct.library.crafting.ModifyBuilder;
import tconstruct.library.crafting.ToolBuilder;
import tconstruct.library.tools.ToolCore;

Expand Down Expand Up @@ -87,7 +88,7 @@ public static void registerManualModifier (String name, ItemStack output, ItemSt
public static void registerManualModifier (String name, ItemStack output, ItemStack topinput, ItemStack bottominput)
{
ItemStack[] recipe = new ItemStack[3];
recipe[0] = ToolBuilder.instance.buildTool(output, topinput, bottominput, "");
recipe[0] = ModifyBuilder.instance.modifyItem(output, new ItemStack[] {topinput, bottominput});//ToolBuilder.instance.buildTool(output, topinput, bottominput, "");
recipe[1] = topinput;
recipe[2] = bottominput;
MantleClientRegistry.recipeIcons.put(name, recipe);
Expand Down

0 comments on commit d891a26

Please sign in to comment.