1
0
Эх сурвалжийг харах

taking nbt in favour of capabilities (much easier, auto sync), network tests

Kajetan Johannes Hammerle 7 жил өмнө
parent
commit
5a723c2dd9

+ 3 - 1
src/main/java/me/km/KajetansMod.java

@@ -15,6 +15,7 @@ import me.km.effects.EffectUtils;
 import me.km.events.CustomEventCaller;
 import me.km.fluids.ModFluids;
 import me.km.jobsystem.JobAPI;
+import me.km.networking.ModPacketHandler;
 import me.km.permissions.PermissionManager;
 import me.km.playerbank.PlayerBank;
 import me.km.playerbank.PlayerManager;
@@ -72,7 +73,7 @@ public class KajetansMod
 
     public static final String MODID = "km";
     public static final String NAME = "Kajetans Mod";
-    public static final String VERSION = "0.0.10";
+    public static final String VERSION = "0.0.11";
 
     @Mod.Instance(MODID)
     public static KajetansMod instance;
@@ -91,6 +92,7 @@ public class KajetansMod
     public void preInit(FMLPreInitializationEvent e) 
     {
         System.out.println(NAME + " is loading!");
+        ModPacketHandler.init();
         ModFluids.init();
         GameRegistry.registerWorldGenerator(new ModWorldGeneration(), 3);
         

+ 34 - 40
src/main/java/me/km/capabilities/CapabilitiesEvents.java

@@ -1,79 +1,73 @@
 package me.km.capabilities;
 
 import java.util.List;
-import me.km.KajetansMod;
 import me.km.items.ItemGun;
 import me.km.items.ItemKey;
 import net.minecraft.item.Item;
 import net.minecraft.item.ItemArmor;
 import net.minecraft.item.ItemStack;
-import net.minecraft.util.ResourceLocation;
+import net.minecraft.nbt.NBTTagCompound;
 import net.minecraft.util.text.TextFormatting;
-import net.minecraftforge.common.capabilities.CapabilityManager;
 import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
-import net.minecraftforge.event.AttachCapabilitiesEvent;
 import net.minecraftforge.event.entity.player.ItemTooltipEvent;
 import net.minecraftforge.fml.relauncher.Side;
 import net.minecraftforge.fml.relauncher.SideOnly;
 
 public class CapabilitiesEvents 
 {
-    public static final ResourceLocation DEFENSE_CAP = new ResourceLocation(KajetansMod.MODID, "defense");
-    public static final ResourceLocation CHEST_KEY_CAP = new ResourceLocation(KajetansMod.MODID, "chestkey");
-    public static final ResourceLocation GUN_LOAD_CAP = new ResourceLocation(KajetansMod.MODID, "gunload");
+    //public static final ResourceLocation DEFENSE_CAP = new ResourceLocation(KajetansMod.MODID, "defense");
+    //public static final ResourceLocation CHEST_KEY_CAP = new ResourceLocation(KajetansMod.MODID, "chestkey");
+    //public static final ResourceLocation GUN_LOAD_CAP = new ResourceLocation(KajetansMod.MODID, "gunload");
     
     public static void init()
     {
-        CapabilityManager.INSTANCE.register(IDefense.class, new DefenseStorage(), ItemDefenseStats.class);
-        CapabilityManager.INSTANCE.register(IChestKey.class, new ChestKeyStorage(), ItemChestKey.class);
-        CapabilityManager.INSTANCE.register(IGunLoad.class, new GunLoadStorage(), ItemGunLoad.class);
+        //CapabilityManager.INSTANCE.register(IDefense.class, new DefenseStorage(), ItemDefenseStats.class);
+        //CapabilityManager.INSTANCE.register(IChestKey.class, new ChestKeyStorage(), ItemChestKey.class);
+        //CapabilityManager.INSTANCE.register(IGunLoad.class, new GunLoadStorage(), ItemGunLoad.class);
     }
     
-    @SubscribeEvent
-    public void attachDefenseData(AttachCapabilitiesEvent<ItemStack> e) 
+    /*@SubscribeEvent
+    public void attachData(AttachCapabilitiesEvent<ItemStack> e) 
     {
-        Item item = e.getObject().getItem();
-        if(item instanceof ItemArmor)
+        if(e.getObject().getItem() instanceof ItemSword)
         {
-            e.addCapability(DEFENSE_CAP, new DefenseProvider());
+            ItemStack stack = e.getObject();
+            System.out.println("DICK");
+            ItemStackUtils.addAttribute(stack, ItemStackUtils.Attribute.ATTACK_SPEED, 
+                    EntityEquipmentSlot.MAINHAND, -2.7d, ItemStackUtils.Operation.ADD);
         }
-        else if(item.getClass() == ItemKey.class)
-        {
-            e.addCapability(CHEST_KEY_CAP, new ChestKeyProvider());
-        }
-        else if(item.getClass() == ItemGun.class)
-        {
-            e.addCapability(GUN_LOAD_CAP, new GunLoadProvider());
-        }
-    }
+    }*/
     
     @SideOnly(Side.CLIENT)
     @SubscribeEvent
     public void showingTooltip(ItemTooltipEvent e) 
     {
         ItemStack stack = e.getItemStack();
-        if(stack.hasCapability(DefenseProvider.DEFENSE_CAP, null))
+        Item item = stack.getItem();
+        if(item instanceof ItemArmor)
         {
-            IDefense defense = stack.getCapability(DefenseProvider.DEFENSE_CAP, null);
-            int magic = defense.getMagicDefense();
-            if(magic != 0)
+            NBTTagCompound com = stack.getTagCompound();
+            if(com != null && com.hasKey("magic"))
             {
-                List<String> list = e.getToolTip();
-                String s = TextFormatting.BLUE + " +";
-                for(int i = 0; i < list.size(); i++)
+                int magic = com.getInteger("magic");
+                if(magic != 0)
                 {
-                    if(list.get(i).startsWith(s))
+                    List<String> list = e.getToolTip();
+                    String s = TextFormatting.BLUE + " +";
+                    for(int i = 0; i < list.size(); i++)
                     {
-                        list.add(i, TextFormatting.BLUE + " +" + magic + " Magic Armor");
-                        break;
+                        if(list.get(i).startsWith(s))
+                        {
+                            list.add(i, TextFormatting.BLUE + " +" + magic + " Magic Armor");
+                            break;
+                        }
                     }
                 }
             }
         }
-        else if(stack.hasCapability(GunLoadProvider.GUN_LOAD_CAP, null))
+        else if(item.getClass() == ItemGun.class)
         {
-            IGunLoad gunLoad = stack.getCapability(GunLoadProvider.GUN_LOAD_CAP, null);
-            int load = gunLoad.getCurrentLoad();
+            int load = ItemGun.getLoad(stack);
             if(load >= 0)
             {
                 List<String> list = e.getToolTip();
@@ -87,11 +81,11 @@ public class CapabilitiesEvents
                 }
             }
         }
-        else if(stack.hasCapability(ChestKeyProvider.CHEST_KEY_CAP, null))
+        else if(item.getClass() == ItemKey.class)
         {
-            IChestKey key = stack.getCapability(ChestKeyProvider.CHEST_KEY_CAP, null);
+            String s = ItemKey.getKey(stack);
             List<String> list = e.getToolTip();
-            if(key.getKey().isEmpty())
+            if(s.isEmpty())
             {
                 list.set(0, TextFormatting.RED + list.get(0));
             }

+ 1 - 1
src/main/java/me/km/capabilities/IGunLoad.java

@@ -1,6 +1,6 @@
 package me.km.capabilities;
 
-public interface IGunLoad 
+public interface IGunLoad
 {
     public int getCurrentLoad();
     public void setCurrentLoad(int load);

+ 5 - 0
src/main/java/me/km/capabilities/ItemGunLoad.java

@@ -9,6 +9,11 @@ public class ItemGunLoad implements IGunLoad
         load = 0;
     }
     
+    public ItemGunLoad(int load)
+    {
+        this.load = load;
+    }
+    
     @Override
     public int getCurrentLoad() 
     {

+ 39 - 23
src/main/java/me/km/commands/CommandTest.java

@@ -9,6 +9,8 @@ import me.km.permissions.Permissions;
 import net.minecraft.command.ICommandSender;
 import net.minecraft.entity.player.EntityPlayerMP;
 import net.minecraft.item.ItemStack;
+import net.minecraft.network.play.server.SPacketSetSlot;
+import net.minecraft.util.text.TextComponentString;
 
 public class CommandTest extends ModuleCommand
 {
@@ -29,38 +31,52 @@ public class CommandTest extends ModuleCommand
             return true;
         }
         EntityPlayerMP p = (EntityPlayerMP) cs;
-        ItemStack stack = p.getHeldItemMainhand();
-        if(arg.length >= 1 && stack.hasCapability(ChestKeyProvider.CHEST_KEY_CAP, null))
+        /*if(!p.world.isRemote)
         {
-            IChestKey key = stack.getCapability(ChestKeyProvider.CHEST_KEY_CAP, null);
-            if(key == null)
+            ItemStack stack = p.getHeldItemMainhand();
+            if(arg.length >= 1 && stack.hasCapability(ChestKeyProvider.CHEST_KEY_CAP, null))
             {
-                // will never happen
-                return true;
-            }
-            switch(arg[0])
-            {
-                case "key":
+                IChestKey key = stack.getCapability(ChestKeyProvider.CHEST_KEY_CAP, null);
+                if(key == null)
+                {
+                    p.sendMessage(new TextComponentString("NEIN"));
+                    // will never happen
+                    return true;
+                }
+                switch(arg[0])
                 {
-                    if(arg.length >= 2)
+                    case "key":
                     {
-                        key.setKey(arg[1]);
-                        this.getModule().send(cs, "Schlüssel geändert auf '" + arg[1] + "'");
+                        if(arg.length >= 2)
+                        {
+                            key.setKey(arg[1]);
+                            this.getModule().send(cs, "Schlüssel geändert auf '" + arg[1] + "'");
+                        }
+                        else
+                        {
+                            this.getModule().send(cs, "'" + key.getKey() + "'");
+                        }
+                        break;
                     }
-                    else
+                    case "copy":
                     {
-                        this.getModule().send(cs, "'" + key.getKey() + "'");
+                        key.setCopy(!key.isCopy());
+                        this.getModule().send(cs, "Copy-Status ist nun '" + key.isCopy() + "'");
+                        break;
+                    }
+                    case "1":
+                    {
+                        SPacketSetSlot packet = new SPacketSetSlot(p.currentWindowId, p.inventory.currentItem, stack);
+                        p.connection.sendPacket(packet);
+                        break;
                     }
-                    break;
-                }
-                case "copy":
-                {
-                    key.setCopy(!key.isCopy());
-                    this.getModule().send(cs, "Copy-Status ist nun '" + key.isCopy() + "'");
-                    break;
                 }
             }
-        }
+            else
+            {
+                p.sendMessage(new TextComponentString("NO CAPS"));
+            }
+        }*/
         return true;
     }
 }

+ 10 - 9
src/main/java/me/km/datatools/CommandDataTools.java

@@ -10,8 +10,6 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
-import me.km.capabilities.DefenseProvider;
-import me.km.capabilities.IDefense;
 import me.km.permissions.Permissions;
 import me.km.utils.ItemStackUtils;
 import net.minecraft.command.ICommandSender;
@@ -19,7 +17,9 @@ import net.minecraft.entity.Entity;
 import net.minecraft.entity.EntityLiving;
 import net.minecraft.entity.player.EntityPlayerMP;
 import net.minecraft.inventory.EntityEquipmentSlot;
+import net.minecraft.item.ItemArmor;
 import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
 import net.minecraft.server.MinecraftServer;
 import net.minecraft.util.math.BlockPos;
 import net.minecraft.util.text.TextComponentString;
@@ -37,7 +37,8 @@ public class CommandDataTools extends ModuleCommand
         super.addAlias("dt");
         
         first = new ArrayList<>(Arrays.asList(new String[]
-                {"print-nbt", "flag", "attribute", "hide-entity", "show-entity", "name-entity", "name-item", "lore-item", "silent-entity"})); 
+                {"print-nbt", "flag", "attribute", "hide-entity", "show-entity", 
+            "name-entity", "name-item", "lore-item", "silent-entity", "magic"})); 
     }
 
     @Override
@@ -306,15 +307,15 @@ public class CommandDataTools extends ModuleCommand
                         m.send(cs, GlobalText.noNaturalNumber());
                         return true;
                     }         
-                    if(hand.hasCapability(DefenseProvider.DEFENSE_CAP, null))
+                    if(hand.getItem() instanceof ItemArmor)
                     {
-                        IDefense wusi = hand.getCapability(DefenseProvider.DEFENSE_CAP, null);
-                        if(wusi == null)
+                        NBTTagCompound com = hand.getTagCompound();
+                        if(com == null)
                         {
-                            // this wont happen, stinky compiler
-                            return true;
+                            com = new NBTTagCompound();
+                            hand.setTagCompound(com);
                         }
-                        wusi.setMagicDefense(value);
+                        com.setInteger("magic", value);
                         m.send(cs, "Die Magieresistenz wurde auf " + value + " gesetzt.");
                     }
                     else

+ 1 - 1
src/main/java/me/km/items/ItemDagger.java

@@ -4,6 +4,6 @@ public class ItemDagger extends ItemWeapon
 {
     public ItemDagger(String name, String local, ToolMaterial m) 
     {
-        super(name, local, m, 1, -1.5f);
+        super(name, local, m, 1, -1.8f);
     }
 }

+ 47 - 17
src/main/java/me/km/items/ItemGun.java

@@ -1,12 +1,11 @@
 package me.km.items;
 
 import me.km.api.Utils;
-import me.km.capabilities.GunLoadProvider;
-import me.km.capabilities.IGunLoad;
 import net.minecraft.entity.EntityLivingBase;
 import net.minecraft.entity.player.EntityPlayer;
 import net.minecraft.item.Item;
 import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
 import net.minecraft.stats.StatList;
 import net.minecraft.util.ActionResult;
 import net.minecraft.util.DamageSource;
@@ -15,6 +14,7 @@ import net.minecraft.util.EnumHand;
 import net.minecraft.util.SoundCategory;
 import net.minecraft.util.SoundEvent;
 import net.minecraft.world.World;
+import net.minecraftforge.common.capabilities.ICapabilityProvider;
 
 public class ItemGun extends ItemWeapon
 {
@@ -67,19 +67,51 @@ public class ItemGun extends ItemWeapon
         this.soundReload = soundReload;
         this.soundCrit = soundCrit;
     }
-
+    
+    @Override
+    public ICapabilityProvider initCapabilities(ItemStack stack, NBTTagCompound nbt) 
+    {
+        getTagCompound(stack);
+        return null;
+    }  
+    
+    private static NBTTagCompound getTagCompound(ItemStack stack)
+    {
+        NBTTagCompound com = stack.getTagCompound();
+        if(com == null)
+        {
+            com = new NBTTagCompound();
+            com.setInteger("load", 0);
+        }
+        else if(!com.hasKey("load"))
+        {
+            com.setInteger("load", 0);         
+        }
+        stack.setTagCompound(com);
+        return com;
+    }
+    
+    public static int getLoad(ItemStack stack)
+    {
+        return getTagCompound(stack).getInteger("load");
+    }
+    
+    public static void setLoad(ItemStack stack, int load)
+    {
+        getTagCompound(stack).setInteger("load", load);
+    }
+    
     @Override
     public void onPlayerStoppedUsing(ItemStack stack, World w, EntityLivingBase liv, int timeLeft)
     {
         if(liv instanceof EntityPlayer)
         {
             EntityPlayer p = (EntityPlayer) liv;
-            IGunLoad gunLoad = stack.getCapability(GunLoadProvider.GUN_LOAD_CAP, null);
-            int load = gunLoad.getCurrentLoad();
+            int load = getLoad(stack);
             boolean creative = p.capabilities.isCreativeMode;
-            
             if(load > 0 || creative)
             {
+                p.getCooldownTracker().setCooldown(this, 10);
                 if (!w.isRemote)
                 {
                     stack.damageItem(1, p);
@@ -93,16 +125,15 @@ public class ItemGun extends ItemWeapon
                     if(target != null)
                     {
                         target.attackEntityFrom(DamageSource.causeMobDamage(p), damage);
-                    }
+                    }   
                 }
-
-                playSound(p, w, soundShot);
                 
                 if(!creative)
                 {
-                    gunLoad.setCurrentLoad(load - 1);
+                    setLoad(stack, load - 1);
                 }
-
+                
+                playSound(p, w, soundShot);
                 p.addStat(StatList.getObjectUseStats(this));
             }
         }
@@ -154,26 +185,25 @@ public class ItemGun extends ItemWeapon
     {
         if(p.capabilities.isCreativeMode)
         {
-            p.getHeldItem(hand).getCapability(GunLoadProvider.GUN_LOAD_CAP, null).setCurrentLoad(maxLoad);
+            setLoad(p.getHeldItem(hand), maxLoad);
             playSound(p, w, soundReload);
             return new ActionResult(EnumActionResult.FAIL, p.getHeldItem(hand));
         }
-        ItemStack stack = p.getHeldItem(hand);
-        IGunLoad gunLoad = stack.getCapability(GunLoadProvider.GUN_LOAD_CAP, null);
-        int load = gunLoad.getCurrentLoad();
+        ItemStack stack = p.getHeldItem(hand);    
+        int load = getLoad(stack);
         if(load <= 0)
         {
             ItemStack ammoStack = findAmmo(p);
             if(!ammoStack.isEmpty())
             {
                 int newLoad = Math.min(ammoStack.getCount(), maxLoad);
-                gunLoad.setCurrentLoad(newLoad);
+                setLoad(stack, newLoad);
+                p.getCooldownTracker().setCooldown(this, cooldown * newLoad);
                 ammoStack.shrink(newLoad);
                 if(ammoStack.isEmpty())
                 {
                     p.inventory.deleteStack(ammoStack);
                 }
-                p.getCooldownTracker().setCooldown(this, cooldown * newLoad);
                 playSound(p, w, soundReload);
             }
             return new ActionResult(EnumActionResult.FAIL, stack);

+ 55 - 0
src/main/java/me/km/items/ItemKey.java

@@ -1,6 +1,10 @@
 package me.km.items;
 
+import me.km.capabilities.ChestKeyProvider;
 import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraftforge.common.capabilities.ICapabilityProvider;
 
 public class ItemKey extends ItemBase
 {
@@ -17,4 +21,55 @@ public class ItemKey extends ItemBase
     {
         return toolMaterial.getHarvestLevel() + 1;
     }
+
+    @Override
+    public ICapabilityProvider initCapabilities(ItemStack stack, NBTTagCompound nbt) 
+    {
+        getTagCompound(stack);
+        return null;
+    }  
+    
+    private static NBTTagCompound getTagCompound(ItemStack stack)
+    {
+        NBTTagCompound com = stack.getTagCompound();
+        if(com == null)
+        {
+            com = new NBTTagCompound();
+            com.setString("chestkey", "");
+            com.setBoolean("iscopiedkey", false);
+        }
+        else 
+        {
+            if(!com.hasKey("chestkey"))
+            {
+                com.setString("chestkey", "");  
+            }  
+            if(!com.hasKey("iscopiedkey"))
+            {
+                com.setBoolean("iscopiedkey", false);  
+            }
+        }
+        stack.setTagCompound(com);
+        return com;
+    }
+    
+    public static String getKey(ItemStack stack)
+    {
+        return getTagCompound(stack).getString("chestkey");
+    }
+    
+    public static void setKey(ItemStack stack, String key)
+    {
+        getTagCompound(stack).setString("chestkey", key);
+    } 
+    
+    public static boolean isCopy(ItemStack stack)
+    {
+        return getTagCompound(stack).getBoolean("iscopiedkey");
+    }
+    
+    public static void setCopy(ItemStack stack, boolean copy)
+    {
+        getTagCompound(stack).setBoolean("iscopiedkey", copy);
+    } 
 }

+ 1 - 1
src/main/java/me/km/items/ItemStick.java

@@ -6,6 +6,6 @@ public class ItemStick extends ItemWeapon
 {
     public ItemStick(String name, String local, Item.ToolMaterial m) 
     {
-        super(name, local, m, 0, -0.5f);
+        super(name, local, m, 0, -2.0f);
     }
 }

+ 5 - 0
src/main/java/me/km/items/ModItems.java

@@ -1,5 +1,8 @@
 package me.km.items;
 
+import com.google.common.collect.Multimap;
+import java.util.Iterator;
+import java.util.UUID;
 import me.km.items.noglint.ItemNoGlintPotion;
 import me.km.KajetansMod;
 import me.km.blocks.EnumMetals;
@@ -7,6 +10,8 @@ import me.km.items.noglint.ItemNoGlintLingeringPotion;
 import me.km.items.noglint.ItemNoGlintSplashPotion;
 import me.km.sounds.Sounds;
 import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.SharedMonsterAttributes;
+import net.minecraft.entity.ai.attributes.AttributeModifier;
 import net.minecraft.init.Items;
 import net.minecraft.init.SoundEvents;
 import net.minecraft.inventory.EntityEquipmentSlot;

+ 59 - 0
src/main/java/me/km/networking/GunLoadPackage.java

@@ -0,0 +1,59 @@
+package me.km.networking;
+
+import io.netty.buffer.ByteBuf;
+import me.km.capabilities.GunLoadProvider;
+import me.km.capabilities.IGunLoad;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.entity.EntityPlayerSP;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
+import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
+import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
+
+public class GunLoadPackage implements IMessage
+{
+    private int slot;
+    private int load;
+    
+    public GunLoadPackage() 
+    {
+        slot = -1;
+        load = -1;
+    }
+    
+    public GunLoadPackage(int slot, int load) 
+    {
+        this.slot = slot;
+        this.load = load;
+    }
+    
+    @Override
+    public void fromBytes(ByteBuf buf) 
+    {
+        slot = buf.readInt();
+        load = buf.readInt();
+    }
+
+    @Override
+    public void toBytes(ByteBuf buf) 
+    {
+        buf.writeInt(slot);
+        buf.writeInt(load);
+    }
+
+    public static class Handler implements IMessageHandler<GunLoadPackage, IMessage>
+    {
+        @Override
+        public IMessage onMessage(GunLoadPackage message, MessageContext ctx) 
+        {
+            EntityPlayerSP p = Minecraft.getMinecraft().player;
+            ItemStack stack = p.inventoryContainer.inventorySlots.get(message.slot).getStack();
+            if(stack.hasCapability(GunLoadProvider.GUN_LOAD_CAP, null))
+            {
+                IGunLoad load = stack.getCapability(GunLoadProvider.GUN_LOAD_CAP, null);
+                load.setCurrentLoad(message.load);
+            }
+            return null;
+        }
+    }
+}

+ 20 - 0
src/main/java/me/km/networking/ModPacketHandler.java

@@ -0,0 +1,20 @@
+package me.km.networking;
+
+import net.minecraft.entity.player.EntityPlayerMP;
+
+public class ModPacketHandler 
+{
+    //public static final SimpleNetworkWrapper INSTANCE = NetworkRegistry.INSTANCE.newSimpleChannel(KajetansMod.MODID);
+    
+    //private static int id = 0;
+    
+    public static void init()
+    {
+        //INSTANCE.registerMessage(GunLoadPackage.Handler.class, GunLoadPackage.class, id++, Side.CLIENT);
+    }
+    
+    public static void sendGunLoad(EntityPlayerMP p, int slot, int load)
+    {
+        //INSTANCE.sendTo(new GunLoadPackage(slot, load), p);
+    }
+}

+ 6 - 6
src/main/resources/assets/km/models/item/handheld_musket.json

@@ -3,23 +3,23 @@
     "display": {
         "thirdperson_righthand": {
             "rotation": [ 0, -90, -40 ],
-            "translation": [ 0, 6.0, 0.5 ],
-            "scale": [ 0.85, 0.85, 0.85 ]
+            "translation": [ 0, 7.0, 0.5 ],
+            "scale": [ 1.00, 1.00, 1.00 ]
         },
         "thirdperson_lefthand": {
             "rotation": [ 0, 90, 40 ],
-            "translation": [ 0, 6.0, 0.5 ],
-            "scale": [ 0.85, 0.85, 0.85 ]
+            "translation": [ 0, 7.0, 0.5 ],
+            "scale": [ 1.00, 1.00, 1.00 ]
         },
         "firstperson_righthand": {
             "rotation": [ 0, -90, 25 ],
             "translation": [ 1.13, 3.2, 1.13 ],
-            "scale": [ 0.68, 0.68, 0.68 ]
+            "scale": [ 0.80, 0.80, 0.80 ]
         },
         "firstperson_lefthand": {
             "rotation": [ 0, 90, -25 ],
             "translation": [ 1.13, 3.2, 1.13 ],
-            "scale": [ 0.68, 0.68, 0.68 ]
+            "scale": [ 0.80, 0.80, 0.80 ]
         }
     }
 }