2013-07-26 21:18:53 -07:00
|
|
|
package tconstruct.client;
|
|
|
|
|
|
2014-06-01 21:20:12 -04:00
|
|
|
import mantle.common.network.AbstractPacket;
|
2013-07-26 21:18:53 -07:00
|
|
|
import net.minecraft.client.Minecraft;
|
2014-02-05 10:28:54 -05:00
|
|
|
import net.minecraft.client.gui.inventory.GuiContainer;
|
|
|
|
|
import net.minecraft.client.gui.inventory.GuiInventory;
|
2013-07-26 21:18:53 -07:00
|
|
|
import net.minecraft.client.settings.KeyBinding;
|
2014-06-30 22:26:00 -08:00
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
|
import net.minecraft.nbt.NBTTagCompound;
|
2014-02-08 13:30:19 -05:00
|
|
|
import net.minecraft.potion.Potion;
|
2014-02-01 17:28:41 +11:00
|
|
|
import tconstruct.TConstruct;
|
2014-06-06 19:46:05 -08:00
|
|
|
import tconstruct.armor.ArmorProxyCommon;
|
2013-08-23 22:20:53 -07:00
|
|
|
import tconstruct.client.event.EventCloakRender;
|
2013-08-15 01:31:12 -04:00
|
|
|
import tconstruct.client.tabs.TabRegistry;
|
2014-02-01 17:28:41 +11:00
|
|
|
import tconstruct.util.network.packet.PacketDoubleJump;
|
2014-02-26 20:30:13 +11:00
|
|
|
import tconstruct.util.network.packet.PacketExtendedInventory;
|
2014-07-02 23:37:28 -08:00
|
|
|
import cpw.mods.fml.client.registry.ClientRegistry;
|
2014-06-30 22:26:00 -08:00
|
|
|
import cpw.mods.fml.common.gameevent.TickEvent.Type;
|
2013-07-26 21:18:53 -07:00
|
|
|
|
|
|
|
|
public class TControls extends TKeyHandler
|
|
|
|
|
{
|
2014-07-02 23:37:28 -08:00
|
|
|
public static final String keybindCategory = "tconstruct.keybindings";
|
2014-02-26 12:23:11 +11:00
|
|
|
public static KeyBinding armorKey = new KeyBinding("key.tarmor", 24, keybindCategory);
|
|
|
|
|
public static KeyBinding refreshCapes = new KeyBinding("key.tcapes.reload", 88, keybindCategory);
|
2014-06-30 22:26:00 -08:00
|
|
|
public static KeyBinding toggleGoggles = new KeyBinding("key.tgoggles", 34, keybindCategory);
|
|
|
|
|
public static KeyBinding beltSwap = new KeyBinding("key.tbelt", 48, keybindCategory);
|
2014-07-06 22:59:44 -08:00
|
|
|
public static KeyBinding zoomKey = new KeyBinding("key.tzoom", 44, keybindCategory); //TODO: Make this hold, not toggle
|
2013-07-26 21:18:53 -07:00
|
|
|
static KeyBinding jumpKey;
|
|
|
|
|
static KeyBinding invKey;
|
|
|
|
|
static Minecraft mc;
|
|
|
|
|
|
|
|
|
|
boolean jumping;
|
2014-02-08 13:30:19 -05:00
|
|
|
int midairJumps = 0;
|
2013-07-26 21:18:53 -07:00
|
|
|
boolean climbing = false;
|
|
|
|
|
boolean onGround = false;
|
|
|
|
|
boolean onStilts = false;
|
2014-06-30 22:26:00 -08:00
|
|
|
public static boolean zoom = false;
|
2013-07-26 21:18:53 -07:00
|
|
|
|
|
|
|
|
int currentTab = 1;
|
|
|
|
|
|
2014-02-16 14:23:50 -05:00
|
|
|
// boolean onStilts = false;
|
2013-07-26 21:18:53 -07:00
|
|
|
|
|
|
|
|
public TControls()
|
|
|
|
|
{
|
2014-06-30 22:26:00 -08:00
|
|
|
super(new KeyBinding[] { armorKey, refreshCapes, toggleGoggles, beltSwap, zoomKey }, new boolean[] { false, false, false, false, false }, getVanillaKeyBindings(), new boolean[] { false, false });
|
2014-07-06 22:59:44 -08:00
|
|
|
/*ClientRegistry.registerKeyBinding(armorKey);
|
2014-07-02 23:37:28 -08:00
|
|
|
ClientRegistry.registerKeyBinding(refreshCapes);
|
|
|
|
|
ClientRegistry.registerKeyBinding(toggleGoggles);
|
|
|
|
|
ClientRegistry.registerKeyBinding(beltSwap);
|
2014-07-06 22:59:44 -08:00
|
|
|
ClientRegistry.registerKeyBinding(zoomKey);*/
|
2013-07-26 21:18:53 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static KeyBinding[] getVanillaKeyBindings ()
|
|
|
|
|
{
|
|
|
|
|
mc = Minecraft.getMinecraft();
|
|
|
|
|
jumpKey = mc.gameSettings.keyBindJump;
|
2014-02-05 08:28:53 -05:00
|
|
|
invKey = mc.gameSettings.keyBindInventory;
|
2013-07-26 21:18:53 -07:00
|
|
|
return new KeyBinding[] { jumpKey, invKey };
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
2014-02-02 12:06:48 -05:00
|
|
|
public void keyDown (Type types, KeyBinding kb, boolean tickEnd, boolean isRepeat)
|
2013-07-26 21:18:53 -07:00
|
|
|
{
|
|
|
|
|
if (tickEnd && mc.theWorld != null)
|
|
|
|
|
{
|
2014-02-16 14:23:50 -05:00
|
|
|
if (kb == armorKey && mc.currentScreen == null) // Extended Armor
|
2013-07-26 21:18:53 -07:00
|
|
|
{
|
2014-02-16 14:23:50 -05:00
|
|
|
openArmorGui();// mc.thePlayer.username);
|
2013-07-26 21:18:53 -07:00
|
|
|
}
|
2014-02-16 14:23:50 -05:00
|
|
|
if (kb == invKey && mc.currentScreen != null && mc.currentScreen.getClass() == GuiInventory.class)// &&
|
|
|
|
|
// !mc.playerController.isInCreativeMode())
|
2013-07-26 21:18:53 -07:00
|
|
|
{
|
2013-08-15 01:31:12 -04:00
|
|
|
TabRegistry.addTabsToInventory((GuiContainer) mc.currentScreen);
|
2013-07-26 21:18:53 -07:00
|
|
|
}
|
2013-08-31 05:13:31 -07:00
|
|
|
if (kb == refreshCapes && mc.currentScreen == null)
|
|
|
|
|
{
|
|
|
|
|
EventCloakRender.instance.refreshCapes();
|
2013-08-23 22:20:53 -07:00
|
|
|
}
|
2014-02-16 14:23:50 -05:00
|
|
|
if (kb == jumpKey) // Double jump
|
2013-07-26 21:18:53 -07:00
|
|
|
{
|
2013-11-14 14:26:37 -08:00
|
|
|
if (mc.thePlayer.capabilities.isCreativeMode)
|
|
|
|
|
return;
|
|
|
|
|
|
2014-02-11 21:35:05 -05:00
|
|
|
if (jumping && midairJumps > 0)
|
|
|
|
|
{
|
|
|
|
|
mc.thePlayer.motionY = 0.42D;
|
|
|
|
|
mc.thePlayer.fallDistance = 0;
|
2013-07-26 21:18:53 -07:00
|
|
|
|
2014-02-11 21:35:05 -05:00
|
|
|
if (mc.thePlayer.isPotionActive(Potion.jump))
|
|
|
|
|
{
|
|
|
|
|
mc.thePlayer.motionY += (double) ((float) (mc.thePlayer.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F);
|
|
|
|
|
}
|
2013-07-26 21:18:53 -07:00
|
|
|
|
2014-02-11 21:35:05 -05:00
|
|
|
midairJumps--;
|
2014-02-26 20:30:13 +11:00
|
|
|
resetFallDamage();
|
2014-02-11 21:35:05 -05:00
|
|
|
}
|
2013-07-26 21:18:53 -07:00
|
|
|
|
2014-02-11 21:35:05 -05:00
|
|
|
if (!jumping)
|
2014-06-30 22:26:00 -08:00
|
|
|
{
|
2014-02-11 21:35:05 -05:00
|
|
|
jumping = mc.thePlayer.isAirBorne;
|
2014-06-30 22:26:00 -08:00
|
|
|
ItemStack shoes = mc.thePlayer.getCurrentArmor(0);
|
|
|
|
|
if (shoes != null && shoes.hasTagCompound() && shoes.getTagCompound().hasKey("TinkerArmor"))
|
|
|
|
|
{
|
|
|
|
|
NBTTagCompound shoeTag = shoes.getTagCompound().getCompoundTag("TinkerArmor");
|
|
|
|
|
midairJumps += shoeTag.getInteger("Double-Jump");
|
|
|
|
|
}
|
|
|
|
|
ItemStack wings = mc.thePlayer.getCurrentArmor(1);
|
|
|
|
|
if (wings != null && wings.hasTagCompound() && wings.getTagCompound().hasKey("TinkerArmor"))
|
|
|
|
|
{
|
|
|
|
|
NBTTagCompound shoeTag = wings.getTagCompound().getCompoundTag("TinkerArmor");
|
|
|
|
|
midairJumps += shoeTag.getInteger("Double-Jump");
|
|
|
|
|
}
|
|
|
|
|
}
|
2014-02-08 13:30:19 -05:00
|
|
|
}
|
2014-06-30 22:26:00 -08:00
|
|
|
|
|
|
|
|
/*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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (kb == beltSwap)
|
|
|
|
|
{
|
|
|
|
|
TPlayerStats stats = TConstruct.playerTracker.getPlayerStats(mc.thePlayer.username);
|
|
|
|
|
if (stats.armor.inventory[3] != null)
|
|
|
|
|
{
|
|
|
|
|
//PlayerAbilityHelper.swapBelt(mc.thePlayer, stats);
|
|
|
|
|
updateServer((byte) 8);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (kb == zoomKey)
|
|
|
|
|
zoom = !zoom;
|
|
|
|
|
}*/
|
2013-07-26 21:18:53 -07:00
|
|
|
}
|
2014-02-16 14:23:50 -05:00
|
|
|
/*
|
|
|
|
|
* 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; } }
|
|
|
|
|
*/
|
2013-07-26 21:18:53 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
2014-02-02 12:06:48 -05:00
|
|
|
public void keyUp (Type types, KeyBinding kb, boolean tickEnd)
|
2013-07-26 21:18:53 -07:00
|
|
|
{
|
2014-02-16 14:23:50 -05:00
|
|
|
// landOnGround();
|
2013-07-26 21:18:53 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void landOnGround ()
|
|
|
|
|
{
|
2014-02-08 13:30:19 -05:00
|
|
|
midairJumps = 0;
|
2013-07-26 21:18:53 -07:00
|
|
|
jumping = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void resetControls ()
|
|
|
|
|
{
|
2014-02-08 13:30:19 -05:00
|
|
|
midairJumps = 0;
|
2013-07-26 21:18:53 -07:00
|
|
|
jumping = false;
|
|
|
|
|
climbing = false;
|
|
|
|
|
onGround = false;
|
|
|
|
|
onStilts = false;
|
|
|
|
|
}
|
|
|
|
|
|
2014-04-03 22:28:37 -04:00
|
|
|
void resetFallDamage ()
|
2013-07-26 21:18:53 -07:00
|
|
|
{
|
2014-02-26 20:30:13 +11:00
|
|
|
AbstractPacket packet = new PacketDoubleJump();
|
|
|
|
|
updateServer(packet);
|
2013-07-26 21:18:53 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void updateSize (String name, float size)
|
|
|
|
|
{
|
2014-02-26 20:30:13 +11:00
|
|
|
/*ByteArrayOutputStream bos = new ByteArrayOutputStream(8);
|
2013-07-26 21:18:53 -07:00
|
|
|
DataOutputStream outputStream = new DataOutputStream(bos);
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
outputStream.writeByte(11);
|
|
|
|
|
outputStream.writeUTF(name);
|
|
|
|
|
outputStream.writeFloat(size);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
ex.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
|
2014-02-26 20:30:13 +11:00
|
|
|
updateServer(bos);*/
|
|
|
|
|
|
|
|
|
|
//TODO: Enable code with right packet
|
|
|
|
|
//AbstractPacket packet = new ();
|
|
|
|
|
//updateServer(packet);
|
2013-07-26 21:18:53 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void openArmorGui ()
|
|
|
|
|
{
|
2014-06-06 19:46:05 -08:00
|
|
|
AbstractPacket packet = new PacketExtendedInventory(ArmorProxyCommon.armorGuiID);
|
2014-02-26 20:30:13 +11:00
|
|
|
updateServer(packet);
|
2013-07-26 21:18:53 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void openKnapsackGui ()
|
|
|
|
|
{
|
2014-06-06 19:46:05 -08:00
|
|
|
AbstractPacket packet = new PacketExtendedInventory(ArmorProxyCommon.knapsackGuiID);
|
2014-02-26 20:30:13 +11:00
|
|
|
updateServer(packet);
|
2013-07-26 21:18:53 -07:00
|
|
|
}
|
|
|
|
|
|
2014-02-26 20:30:13 +11:00
|
|
|
static void updateServer (AbstractPacket abstractPacket)
|
2013-07-26 21:18:53 -07:00
|
|
|
{
|
2014-02-26 20:30:13 +11:00
|
|
|
TConstruct.packetPipeline.sendToServer(abstractPacket);
|
2013-07-26 21:18:53 -07:00
|
|
|
}
|
2014-02-02 12:06:48 -05:00
|
|
|
|
2013-07-26 21:18:53 -07:00
|
|
|
}
|