Update FancyHandwork!
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode>
|
||||
<m_Name>FHAddToRecipe</m_Name>
|
||||
<m_AnimName>Bob_FH_AddToPan</m_AnimName>
|
||||
<m_Looped>true</m_Looped>
|
||||
<m_UpperOnly>false</m_UpperOnly>
|
||||
<m_SyncTrackingEnabled>false</m_SyncTrackingEnabled>
|
||||
<m_EarlyBlendOut>false</m_EarlyBlendOut>
|
||||
<m_SpeedScale>0.80</m_SpeedScale>
|
||||
<m_BlendTime>0.30</m_BlendTime>
|
||||
<m_Scalar></m_Scalar>
|
||||
<m_Scalar2></m_Scalar2>
|
||||
<m_Conditions>
|
||||
<m_Name>PerformingAction</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>AddToPan</m_StringValue>
|
||||
</m_Conditions>
|
||||
</animNode>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode x_extends="AddToRecipe.xml">
|
||||
<m_Name>FHAddToRecipe_Griddle</m_Name>
|
||||
<m_AnimName>Bob_FH_AddToGriddlePan</m_AnimName>
|
||||
<m_Looped>true</m_Looped>
|
||||
<m_SpeedScale>0.80</m_SpeedScale>
|
||||
<m_BlendTime>0.30</m_BlendTime>
|
||||
<m_Conditions />
|
||||
<m_Conditions>
|
||||
<m_Name>BaseType</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>GridlePan</m_StringValue>
|
||||
</m_Conditions>
|
||||
</animNode>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode x_extends="AddToRecipe.xml">
|
||||
<m_Name>FHAddToRecipe_Pot</m_Name>
|
||||
<m_AnimName>Bob_FH_AddToPot</m_AnimName>
|
||||
<m_Looped>true</m_Looped>
|
||||
<m_SpeedScale>0.80</m_SpeedScale>
|
||||
<m_BlendTime>0.30</m_BlendTime>
|
||||
<m_Conditions />
|
||||
<m_Conditions>
|
||||
<m_Name>BaseType</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>CookingPot</m_StringValue>
|
||||
</m_Conditions>
|
||||
</animNode>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode x_extends="AddToRecipe.xml">
|
||||
<m_Name>FHAddToRecipe_RoastPan</m_Name>
|
||||
<m_AnimName>Bob_FH_AddToRoast</m_AnimName>
|
||||
<m_Looped>true</m_Looped>
|
||||
<m_SpeedScale>0.80</m_SpeedScale>
|
||||
<m_BlendTime>0.30</m_BlendTime>
|
||||
<m_Conditions />
|
||||
<m_Conditions>
|
||||
<m_Name>BaseType</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>RoastingPan</m_StringValue>
|
||||
</m_Conditions>
|
||||
</animNode>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode x_extends="AddToRecipe.xml">
|
||||
<m_Name>FHAddToRecipe_Saucepan</m_Name>
|
||||
<m_AnimName>Bob_FH_AddToGriddlePan</m_AnimName>
|
||||
<m_Looped>true</m_Looped>
|
||||
<m_SpeedScale>0.80</m_SpeedScale>
|
||||
<m_BlendTime>0.30</m_BlendTime>
|
||||
<m_Conditions />
|
||||
<m_Conditions>
|
||||
<m_Name>BaseType</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>Saucepan</m_StringValue>
|
||||
</m_Conditions>
|
||||
</animNode>
|
||||
@@ -68,6 +68,22 @@
|
||||
<boneName>Bip01_R_Hand</boneName>
|
||||
<weight>0.50</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger0</boneName>
|
||||
<weight>0.50</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger0Nub</boneName>
|
||||
<weight>0.50</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger1</boneName>
|
||||
<weight>0.50</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger1Nub</boneName>
|
||||
<weight>0.50</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_Events>
|
||||
<m_EventName>attachConnect</m_EventName>
|
||||
<m_TimePc>0.5</m_TimePc>
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode>
|
||||
<m_Name>FH_Boop</m_Name>
|
||||
<m_AnimName>Bob_FH_Boop</m_AnimName>
|
||||
<m_deferredBoneAxis>Y</m_deferredBoneAxis>
|
||||
<m_Looped>false</m_Looped>
|
||||
<m_SpeedScale>0.80</m_SpeedScale>
|
||||
<m_BlendTime>0.25</m_BlendTime>
|
||||
<m_Conditions>
|
||||
<m_Name>PerformingAction</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>FH_Boop</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Clavicle</boneName>
|
||||
<weight>0.80</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_UpperArm</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Forearm</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Hand</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger0</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger0Nub</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger1</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger1Nub</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Prop1</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Translation_Data</boneName>
|
||||
<weight>0.25</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_Events>
|
||||
<m_EventName>SetVariable</m_EventName>
|
||||
<m_Time>Start</m_Time>
|
||||
<m_ParameterValue>requiresSlowIdleBlend=true</m_ParameterValue>
|
||||
</m_Events>
|
||||
</animNode>
|
||||
@@ -0,0 +1,83 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode>
|
||||
<m_Name>FH_Boop_Dual</m_Name>
|
||||
<m_AnimName>Bob_FH_Boop</m_AnimName>
|
||||
<m_deferredBoneAxis>Y</m_deferredBoneAxis>
|
||||
<m_Looped>false</m_Looped>
|
||||
<m_SpeedScale>0.80</m_SpeedScale>
|
||||
<m_BlendTime>0.25</m_BlendTime>
|
||||
<m_Conditions>
|
||||
<m_Name>PerformingAction</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>FH_Boop_Dual</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Clavicle</boneName>
|
||||
<weight>0.80</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_UpperArm</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Forearm</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Hand</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger0</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger0Nub</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger1</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger1Nub</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Clavicle</boneName>
|
||||
<weight>0.80</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_UpperArm</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Forearm</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Hand</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger0</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger0Nub</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger1</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger1Nub</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Prop1</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Prop2</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Translation_Data</boneName>
|
||||
<weight>0.4</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_Events>
|
||||
<m_EventName>SetVariable</m_EventName>
|
||||
<m_Time>Start</m_Time>
|
||||
<m_ParameterValue>requiresSlowIdleBlend=true</m_ParameterValue>
|
||||
</m_Events>
|
||||
</animNode>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode x_extends="BoopActionDual.xml">
|
||||
<m_Name>FH_Boop_HighDual</m_Name>
|
||||
<m_AnimName>Bob_FH_Boop_High</m_AnimName>
|
||||
<m_Conditions />
|
||||
<m_Conditions>
|
||||
<m_Name>BoopPosition</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>High</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Neck</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
</animNode>
|
||||
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode x_extends="BoopActionDual.xml">
|
||||
<m_Name>FH_BoopDual_Low</m_Name>
|
||||
<m_AnimName>Bob_FH_Boop_Low</m_AnimName>
|
||||
<m_Conditions />
|
||||
<m_Conditions>
|
||||
<m_Name>BoopPosition</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>Low</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Clavicle</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_UpperArm</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Forearm</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Hand</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger0</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger0Nub</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger1</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger1Nub</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Pelvis</boneName>
|
||||
<weight>0.50</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Dummy01</boneName>
|
||||
<weight>1.0</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Translation_Data</boneName>
|
||||
<weight>1.0</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_Events>
|
||||
<m_EventName>SetVariable</m_EventName>
|
||||
<m_Time>Start</m_Time>
|
||||
<m_ParameterValue>requiresSlowIdleBlend=true</m_ParameterValue>
|
||||
</m_Events>
|
||||
</animNode>
|
||||
@@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode>
|
||||
<m_Name>FH_BoopL</m_Name>
|
||||
<m_AnimName>Bob_FH_Boop</m_AnimName>
|
||||
<m_deferredBoneAxis>Y</m_deferredBoneAxis>
|
||||
<m_Looped>false</m_Looped>
|
||||
<m_SpeedScale>0.80</m_SpeedScale>
|
||||
<m_BlendTime>0.25</m_BlendTime>
|
||||
<m_Conditions>
|
||||
<m_Name>PerformingAction</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>FH_BoopL</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Clavicle</boneName>
|
||||
<weight>0.80</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_UpperArm</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Forearm</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Hand</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger0</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger0Nub</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger1</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger1Nub</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Prop2</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Translation_Data</boneName>
|
||||
<weight>0.25</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_Events>
|
||||
<m_EventName>SetVariable</m_EventName>
|
||||
<m_Time>Start</m_Time>
|
||||
<m_ParameterValue>requiresSlowIdleBlend=true</m_ParameterValue>
|
||||
</m_Events>
|
||||
</animNode>
|
||||
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode x_extends="BoopActionL.xml">
|
||||
<m_Name>FH_BoopL_High</m_Name>
|
||||
<m_AnimName>Bob_FH_Boop_High</m_AnimName>
|
||||
<m_Conditions />
|
||||
<m_Conditions>
|
||||
<m_Name>BoopPosition</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>High</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
</animNode>
|
||||
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode x_extends="BoopActionL.xml">
|
||||
<m_Name>FH_BoopL_Low</m_Name>
|
||||
<m_AnimName>Bob_FH_Boop_Low</m_AnimName>
|
||||
<m_Conditions />
|
||||
<m_Conditions>
|
||||
<m_Name>BoopPosition</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>Low</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Clavicle</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_UpperArm</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Forearm</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Hand</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger0</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger0Nub</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger1</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger1Nub</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Pelvis</boneName>
|
||||
<weight>0.50</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Dummy01</boneName>
|
||||
<weight>1.0</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Translation_Data</boneName>
|
||||
<weight>1.0</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_Events>
|
||||
<m_EventName>SetVariable</m_EventName>
|
||||
<m_Time>Start</m_Time>
|
||||
<m_ParameterValue>requiresSlowIdleBlend=true</m_ParameterValue>
|
||||
</m_Events>
|
||||
</animNode>
|
||||
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode x_extends="BoopAction.xml">
|
||||
<m_Name>FH_Boop_High</m_Name>
|
||||
<m_AnimName>Bob_FH_Boop_High</m_AnimName>
|
||||
<m_Conditions />
|
||||
<m_Conditions>
|
||||
<m_Name>BoopPosition</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>High</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
</animNode>
|
||||
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode x_extends="BoopAction.xml">
|
||||
<m_Name>FH_Boop_Low</m_Name>
|
||||
<m_AnimName>Bob_FH_Boop_Low</m_AnimName>
|
||||
<m_Conditions />
|
||||
<m_Conditions>
|
||||
<m_Name>BoopPosition</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>Low</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Clavicle</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_UpperArm</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Forearm</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Hand</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger0</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger0Nub</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger1</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger1Nub</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Pelvis</boneName>
|
||||
<weight>0.50</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Dummy01</boneName>
|
||||
<weight>1.0</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Translation_Data</boneName>
|
||||
<weight>1.0</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_Events>
|
||||
<m_EventName>SetVariable</m_EventName>
|
||||
<m_Time>Start</m_Time>
|
||||
<m_ParameterValue>requiresSlowIdleBlend=true</m_ParameterValue>
|
||||
</m_Events>
|
||||
</animNode>
|
||||
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode>
|
||||
<m_Name>FH_Boop_Rear_L</m_Name>
|
||||
<m_AnimName>Bob_FH_Boop_Rear_L</m_AnimName>
|
||||
<m_deferredBoneAxis>Y</m_deferredBoneAxis>
|
||||
<m_Looped>false</m_Looped>
|
||||
<m_SpeedScale>0.80</m_SpeedScale>
|
||||
<m_BlendTime>0.25</m_BlendTime>
|
||||
<m_Conditions>
|
||||
<m_Name>PerformingAction</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>FH_Boop_Rear_L</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Neck</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Spine1</boneName>
|
||||
<weight>0.80</weight>
|
||||
<includeDescendants>false</includeDescendants>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Clavicle</boneName>
|
||||
<weight>0.80</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Clavicle</boneName>
|
||||
<weight>0.80</weight>
|
||||
<includeDescendants>false</includeDescendants>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_UpperArm</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Translation_Data</boneName>
|
||||
<weight>0.25</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_Events>
|
||||
<m_EventName>SetVariable</m_EventName>
|
||||
<m_Time>Start</m_Time>
|
||||
<m_ParameterValue>requiresSlowIdleBlend=true</m_ParameterValue>
|
||||
</m_Events>
|
||||
</animNode>
|
||||
@@ -0,0 +1,53 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode>
|
||||
<m_Name>FH_Boop_Rear_L_Aim</m_Name>
|
||||
<m_AnimName>Bob_FH_Boop_Rear_L</m_AnimName>
|
||||
<m_deferredBoneAxis>Y</m_deferredBoneAxis>
|
||||
<m_Looped>false</m_Looped>
|
||||
<m_SpeedScale>0.80</m_SpeedScale>
|
||||
<m_BlendTime>0.25</m_BlendTime>
|
||||
<m_Conditions>
|
||||
<m_Name>PerformingAction</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>FH_Boop_Rear_L</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_Conditions>
|
||||
<m_Name>Aim</m_Name>
|
||||
<m_Type>BOOL</m_Type>
|
||||
<m_BoolValue>true</m_BoolValue>
|
||||
</m_Conditions>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Neck</boneName>
|
||||
<includeDescendants>false</includeDescendants>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Spine1</boneName>
|
||||
<weight>0.80</weight>
|
||||
<includeDescendants>false</includeDescendants>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Clavicle</boneName>
|
||||
<weight>0.20</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Clavicle</boneName>
|
||||
<weight>0.80</weight>
|
||||
<includeDescendants>false</includeDescendants>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_UpperArm</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Translation_Data</boneName>
|
||||
<weight>0.25</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_Events>
|
||||
<m_EventName>SetVariable</m_EventName>
|
||||
<m_Time>Start</m_Time>
|
||||
<m_ParameterValue>requiresSlowIdleBlend=true</m_ParameterValue>
|
||||
</m_Events>
|
||||
</animNode>
|
||||
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode>
|
||||
<m_Name>FH_Boop_Rear_R</m_Name>
|
||||
<m_AnimName>Bob_FH_Boop_Rear_R</m_AnimName>
|
||||
<m_deferredBoneAxis>Y</m_deferredBoneAxis>
|
||||
<m_Looped>false</m_Looped>
|
||||
<m_SpeedScale>0.80</m_SpeedScale>
|
||||
<m_BlendTime>0.25</m_BlendTime>
|
||||
<m_Conditions>
|
||||
<m_Name>PerformingAction</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>FH_Boop_Rear_R</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Neck</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Spine1</boneName>
|
||||
<weight>0.80</weight>
|
||||
<includeDescendants>false</includeDescendants>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Clavicle</boneName>
|
||||
<weight>0.80</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Clavicle</boneName>
|
||||
<weight>0.80</weight>
|
||||
<includeDescendants>false</includeDescendants>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_UpperArm</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Translation_Data</boneName>
|
||||
<weight>0.25</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_Events>
|
||||
<m_EventName>SetVariable</m_EventName>
|
||||
<m_Time>Start</m_Time>
|
||||
<m_ParameterValue>requiresSlowIdleBlend=true</m_ParameterValue>
|
||||
</m_Events>
|
||||
</animNode>
|
||||
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode>
|
||||
<m_Name>FH_Boop_Rear_Flick_L</m_Name>
|
||||
<m_AnimName>Bob_FH_Boop_Rear_Flick_L</m_AnimName>
|
||||
<m_deferredBoneAxis>Y</m_deferredBoneAxis>
|
||||
<m_Looped>false</m_Looped>
|
||||
<m_SpeedScale>0.80</m_SpeedScale>
|
||||
<m_BlendTime>0.25</m_BlendTime>
|
||||
<m_Conditions>
|
||||
<m_Name>PerformingAction</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>FH_Boop_Rear_Flick_L</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Neck</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Spine1</boneName>
|
||||
<weight>0.80</weight>
|
||||
<includeDescendants>false</includeDescendants>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Clavicle</boneName>
|
||||
<weight>0.80</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Clavicle</boneName>
|
||||
<weight>0.80</weight>
|
||||
<includeDescendants>false</includeDescendants>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_UpperArm</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Translation_Data</boneName>
|
||||
<weight>0.25</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_Events>
|
||||
<m_EventName>SetVariable</m_EventName>
|
||||
<m_Time>Start</m_Time>
|
||||
<m_ParameterValue>requiresSlowIdleBlend=true</m_ParameterValue>
|
||||
</m_Events>
|
||||
</animNode>
|
||||
@@ -0,0 +1,53 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode>
|
||||
<m_Name>FH_Boop_Rear_Flick_L_Aim</m_Name>
|
||||
<m_AnimName>Bob_FH_Boop_Rear_Flick_L</m_AnimName>
|
||||
<m_deferredBoneAxis>Y</m_deferredBoneAxis>
|
||||
<m_Looped>false</m_Looped>
|
||||
<m_SpeedScale>0.80</m_SpeedScale>
|
||||
<m_BlendTime>0.25</m_BlendTime>
|
||||
<m_Conditions>
|
||||
<m_Name>PerformingAction</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>FH_Boop_Rear_Flick_L</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_Conditions>
|
||||
<m_Name>Aim</m_Name>
|
||||
<m_Type>BOOL</m_Type>
|
||||
<m_BoolValue>true</m_BoolValue>
|
||||
</m_Conditions>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Neck</boneName>
|
||||
<includeDescendants>false</includeDescendants>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Spine1</boneName>
|
||||
<weight>0.80</weight>
|
||||
<includeDescendants>false</includeDescendants>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Clavicle</boneName>
|
||||
<weight>0.20</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Clavicle</boneName>
|
||||
<weight>0.80</weight>
|
||||
<includeDescendants>false</includeDescendants>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_UpperArm</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Translation_Data</boneName>
|
||||
<weight>0.25</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_Events>
|
||||
<m_EventName>SetVariable</m_EventName>
|
||||
<m_Time>Start</m_Time>
|
||||
<m_ParameterValue>requiresSlowIdleBlend=true</m_ParameterValue>
|
||||
</m_Events>
|
||||
</animNode>
|
||||
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode>
|
||||
<m_Name>FH_Boop_Rear_Flick_R</m_Name>
|
||||
<m_AnimName>Bob_FH_Boop_Rear_Flick_R</m_AnimName>
|
||||
<m_deferredBoneAxis>Y</m_deferredBoneAxis>
|
||||
<m_Looped>false</m_Looped>
|
||||
<m_SpeedScale>0.80</m_SpeedScale>
|
||||
<m_BlendTime>0.25</m_BlendTime>
|
||||
<m_Conditions>
|
||||
<m_Name>PerformingAction</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>FH_Boop_Rear_Flick_R</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Neck</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Spine1</boneName>
|
||||
<weight>0.80</weight>
|
||||
<includeDescendants>false</includeDescendants>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Clavicle</boneName>
|
||||
<weight>0.80</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Clavicle</boneName>
|
||||
<weight>0.80</weight>
|
||||
<includeDescendants>false</includeDescendants>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_UpperArm</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Translation_Data</boneName>
|
||||
<weight>0.25</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_Events>
|
||||
<m_EventName>SetVariable</m_EventName>
|
||||
<m_Time>Start</m_Time>
|
||||
<m_ParameterValue>requiresSlowIdleBlend=true</m_ParameterValue>
|
||||
</m_Events>
|
||||
</animNode>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode>
|
||||
<m_Name>FH_CarWrenchRepair</m_Name>
|
||||
<m_AnimName>Bob_Idle_CarRepair</m_AnimName>
|
||||
<m_deferredBoneAxis>Y</m_deferredBoneAxis>
|
||||
<m_Looped>true</m_Looped>
|
||||
<m_SpeedScale>0.80</m_SpeedScale>
|
||||
<m_BlendTime>0.25</m_BlendTime>
|
||||
<m_Conditions>
|
||||
<m_Name>PerformingAction</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>FH_CarWrenchRepair</m_StringValue>
|
||||
</m_Conditions>
|
||||
</animNode>
|
||||
@@ -1,22 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode x_extends="FHaimgunleft_item.xml">
|
||||
<m_Name>FHaimgunleft_hgun</m_Name>
|
||||
<m_AnimName>Bob_HgunAim_Hgun</m_AnimName>
|
||||
<m_AnimName>Bob_FH_Hgun</m_AnimName>
|
||||
<m_Conditions>
|
||||
<m_StringValue>holdinghgunleft</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_Conditions />
|
||||
<m_Conditions />
|
||||
<m_Conditions>
|
||||
<m_Name>hasTimedActions</m_Name>
|
||||
<m_Type>BOOL</m_Type>
|
||||
<m_BoolValue>false</m_BoolValue>
|
||||
</m_Conditions>
|
||||
<m_Conditions />
|
||||
<m_Conditions />
|
||||
<m_Transitions>
|
||||
<m_Target>FHholdinggunleft</m_Target>
|
||||
<m_AnimName>Bob_HgunAimToIdle_Hgun</m_AnimName>
|
||||
<m_blendInTime>0.5</m_blendInTime>
|
||||
<m_AnimName>Bob_FH_Hgun</m_AnimName>
|
||||
<m_blendInTime>0.2</m_blendInTime>
|
||||
<m_blendOutTime>0.2</m_blendOutTime>
|
||||
<m_speedScale>1.5</m_speedScale>
|
||||
<m_speedScale>0.8</m_speedScale>
|
||||
</m_Transitions>
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_UpperArm</boneName>
|
||||
<weight>0.65</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
</animNode>
|
||||
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode x_extends="FHaimgunleft_item.xml">
|
||||
<m_Name>FHaimgunleft_hgun_exp</m_Name>
|
||||
<m_AnimName>Bob_HgunAim_Hgun</m_AnimName>
|
||||
<m_Conditions>
|
||||
<m_StringValue>holdinghgunleft</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_Conditions />
|
||||
<m_Conditions />
|
||||
<m_Conditions />
|
||||
<m_Conditions>
|
||||
<m_BoolValue>true</m_BoolValue>
|
||||
</m_Conditions>
|
||||
<m_Transitions>
|
||||
<m_Target>FHholdinggunleft</m_Target>
|
||||
<m_AnimName>Bob_HgunAimToIdle_Hgun</m_AnimName>
|
||||
<m_blendInTime>0.0</m_blendInTime>
|
||||
<m_blendOutTime>0.0</m_blendOutTime>
|
||||
<m_speedScale>10.0</m_speedScale>
|
||||
</m_Transitions>
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Hand</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
</animNode>
|
||||
@@ -1,7 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode x_extends="FHholdingitemleft.xml">
|
||||
<m_Name>FHaimgunleft_item</m_Name>
|
||||
<m_AnimName>Bob_HgunAim_Item</m_AnimName>
|
||||
<m_AnimName>Bob_FH_Item</m_AnimName>
|
||||
<m_Conditions />
|
||||
<m_Conditions />
|
||||
<m_Conditions>
|
||||
<m_Name>Aim</m_Name>
|
||||
@@ -12,12 +13,25 @@
|
||||
<m_Name>Weapon</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>handgun</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_Conditions>
|
||||
<m_Name>FHExp</m_Name>
|
||||
<m_Type>BOOL</m_Type>
|
||||
<m_BoolValue>false</m_BoolValue>
|
||||
</m_Conditions>
|
||||
<m_Transitions>
|
||||
<m_Target>FHholdingitemleft</m_Target>
|
||||
<m_AnimName>Bob_HgunAimToIdle_Item</m_AnimName>
|
||||
<m_blendInTime>0.5</m_blendInTime>
|
||||
<m_AnimName>Bob_FH_Item</m_AnimName>
|
||||
<m_blendInTime>0.2</m_blendInTime>
|
||||
<m_blendOutTime>0.2</m_blendOutTime>
|
||||
<m_speedScale>1.5</m_speedScale>
|
||||
<m_speedScale>0.8</m_speedScale>
|
||||
</m_Transitions>
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_UpperArm</boneName>
|
||||
<weight>0.75</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
</animNode>
|
||||
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode x_extends="FHholdingitemleft.xml">
|
||||
<m_Name>FHaimgunleft_item_exp</m_Name>
|
||||
<m_AnimName>Bob_HgunAim_Item</m_AnimName>
|
||||
<m_Conditions />
|
||||
<m_Conditions />
|
||||
<m_Conditions>
|
||||
<m_Name>Aim</m_Name>
|
||||
<m_Type>BOOL</m_Type>
|
||||
<m_BoolValue>true</m_BoolValue>
|
||||
</m_Conditions>
|
||||
<m_Conditions>
|
||||
<m_Name>Weapon</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>handgun</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_Conditions>
|
||||
<m_Name>FHExp</m_Name>
|
||||
<m_Type>BOOL</m_Type>
|
||||
<m_BoolValue>true</m_BoolValue>
|
||||
</m_Conditions>
|
||||
<m_Transitions>
|
||||
<m_Target>FHholdingitemleft</m_Target>
|
||||
<m_AnimName>Bob_HgunAimToIdle_Item</m_AnimName>
|
||||
<m_blendInTime>0.8</m_blendInTime>
|
||||
<m_blendOutTime>0.2</m_blendOutTime>
|
||||
<m_speedScale>1.5</m_speedScale>
|
||||
</m_Transitions>
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Hand</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
</animNode>
|
||||
@@ -0,0 +1,77 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode>
|
||||
<m_Name>FHCarryBody</m_Name>
|
||||
<m_AnimName>Bob_FH_CarryBody</m_AnimName>
|
||||
<m_Priority>10</m_Priority>
|
||||
<m_deferredBoneAxis>Y</m_deferredBoneAxis>
|
||||
<m_SyncTrackingEnabled>false</m_SyncTrackingEnabled>
|
||||
<m_SpeedScale>0.80</m_SpeedScale>
|
||||
<m_BlendTime>0.20</m_BlendTime>
|
||||
<m_Conditions>
|
||||
<m_Name>LeftHandMask</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>holdingbody</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_Conditions>
|
||||
<m_Name>hasTimedActions</m_Name>
|
||||
<m_Type>BOOL</m_Type>
|
||||
<m_BoolValue>false</m_BoolValue>
|
||||
</m_Conditions>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Clavicle</boneName>
|
||||
<weight>0.75</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_UpperArm</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Forearm</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Hand</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger0</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger0Nub</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger1</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger1Nub</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Prop1</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Clavicle</boneName>
|
||||
<weight>0.75</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_UpperArm</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Forearm</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Hand</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger0</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger0Nub</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger1</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger1Nub</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
</animNode>
|
||||
@@ -0,0 +1,77 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode>
|
||||
<m_Name>FHCarryGenerator</m_Name>
|
||||
<m_AnimName>Bob_FH_CarryGenerator</m_AnimName>
|
||||
<m_Priority>10</m_Priority>
|
||||
<m_deferredBoneAxis>Y</m_deferredBoneAxis>
|
||||
<m_SyncTrackingEnabled>false</m_SyncTrackingEnabled>
|
||||
<m_SpeedScale>0.80</m_SpeedScale>
|
||||
<m_BlendTime>0.20</m_BlendTime>
|
||||
<m_Conditions>
|
||||
<m_Name>LeftHandMask</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>holdinggenerator</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_Conditions>
|
||||
<m_Name>hasTimedActions</m_Name>
|
||||
<m_Type>BOOL</m_Type>
|
||||
<m_BoolValue>false</m_BoolValue>
|
||||
</m_Conditions>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Clavicle</boneName>
|
||||
<weight>0.75</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_UpperArm</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Forearm</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Hand</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger0</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger0Nub</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger1</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger1Nub</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Prop1</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Clavicle</boneName>
|
||||
<weight>0.75</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_UpperArm</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Forearm</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Hand</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger0</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger0Nub</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger1</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger1Nub</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
</animNode>
|
||||
@@ -1,20 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode x_extends="FHholdingitemleft.xml">
|
||||
<m_Name>FHholdinggunleft</m_Name>
|
||||
<m_AnimName>Bob_FH_Hgun</m_AnimName>
|
||||
<m_Conditions>
|
||||
<m_StringValue>holdinghgunleft</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_Conditions>
|
||||
<m_Name>hasTimedActions</m_Name>
|
||||
<m_Type>BOOL</m_Type>
|
||||
<m_BoolValue>false</m_BoolValue>
|
||||
</m_Conditions>
|
||||
<m_Transitions>
|
||||
<m_Name>FHholdinggunleft</m_Name>
|
||||
<m_AnimName>Bob_FH_Hgun</m_AnimName>
|
||||
<m_Conditions>
|
||||
<m_StringValue>holdinghgunleft</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_Conditions />
|
||||
<m_Transitions>
|
||||
<m_Target>FHaimgunleft_hgun</m_Target>
|
||||
<m_AnimName>Bob_HgunIdleToAim_Hgun</m_AnimName>
|
||||
<m_blendInTime>0.5</m_blendInTime>
|
||||
<m_blendOutTime>0.2</m_blendOutTime>
|
||||
<m_speedScale>1.5</m_speedScale>
|
||||
<m_AnimName>Bob_FH_Hgun</m_AnimName>
|
||||
<m_blendInTime>0.0</m_blendInTime>
|
||||
<m_blendOutTime>0.0</m_blendOutTime>
|
||||
<m_speedScale>10.0</m_speedScale>
|
||||
</m_Transitions>
|
||||
<m_Transitions>
|
||||
<m_Target>FHaimgunleft_hgun_exp</m_Target>
|
||||
<m_AnimName>Bob_HgunIdleToAim_Hgun</m_AnimName>
|
||||
<m_blendInTime>0.0</m_blendInTime>
|
||||
<m_blendOutTime>0.0</m_blendOutTime>
|
||||
<m_speedScale>10.0</m_speedScale>
|
||||
</m_Transitions>
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
<m_SubStateBoneWeights />
|
||||
</animNode>
|
||||
|
||||
@@ -5,27 +5,36 @@
|
||||
<m_Priority>10</m_Priority>
|
||||
<m_deferredBoneAxis>Y</m_deferredBoneAxis>
|
||||
<m_SyncTrackingEnabled>false</m_SyncTrackingEnabled>
|
||||
<m_SpeedScale>0.48</m_SpeedScale>
|
||||
<m_SpeedScale>0.80</m_SpeedScale>
|
||||
<m_BlendTime>0.20</m_BlendTime>
|
||||
<m_Conditions>
|
||||
<m_Name>LeftHandMask</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>holdingitemleft</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_Conditions>
|
||||
<m_Name>FHDoingAction</m_Name>
|
||||
<m_Type>BOOL</m_Type>
|
||||
<m_BoolValue>false</m_BoolValue>
|
||||
</m_Conditions>
|
||||
<m_Transitions>
|
||||
<m_Target>FHaimgunleft_item</m_Target>
|
||||
<m_AnimName>Bob_FH_Item</m_AnimName>
|
||||
<m_blendInTime>0.0</m_blendInTime>
|
||||
<m_blendOutTime>0.0</m_blendOutTime>
|
||||
<m_speedScale>10.0</m_speedScale>
|
||||
</m_Transitions>
|
||||
<m_Transitions>
|
||||
<m_Target>FHaimgunleft_item_exp</m_Target>
|
||||
<m_AnimName>Bob_HgunIdleToAim_Item</m_AnimName>
|
||||
<m_blendInTime>0.5</m_blendInTime>
|
||||
<m_blendInTime>0.2</m_blendInTime>
|
||||
<m_blendOutTime>0.2</m_blendOutTime>
|
||||
<m_speedScale>1.5</m_speedScale>
|
||||
<m_speedScale>2.0</m_speedScale>
|
||||
</m_Transitions>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Hand</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_L_Finger0</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode>
|
||||
<m_Name>FHholdinggunright</m_Name>
|
||||
<m_AnimName>Bob_FH_Hgun</m_AnimName>
|
||||
<m_Priority>10</m_Priority>
|
||||
<m_deferredBoneAxis>Y</m_deferredBoneAxis>
|
||||
<m_SyncTrackingEnabled>false</m_SyncTrackingEnabled>
|
||||
<m_SpeedScale>0.80</m_SpeedScale>
|
||||
<m_BlendTime>0.20</m_BlendTime>
|
||||
<m_Conditions>
|
||||
<m_Name>RightHandMask</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>holdinggunright</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_Conditions>
|
||||
<m_Name>FHDoingAction</m_Name>
|
||||
<m_Type>BOOL</m_Type>
|
||||
<m_BoolValue>false</m_BoolValue>
|
||||
</m_Conditions>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01</boneName>
|
||||
<weight>0.00</weight>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger0</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger1</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Prop1</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
</animNode>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animNode>
|
||||
<m_Name>FHholdingitemright</m_Name>
|
||||
<m_AnimName>Bob_FH_Item</m_AnimName>
|
||||
<m_Priority>10</m_Priority>
|
||||
<m_deferredBoneAxis>Y</m_deferredBoneAxis>
|
||||
<m_SyncTrackingEnabled>false</m_SyncTrackingEnabled>
|
||||
<m_SpeedScale>0.80</m_SpeedScale>
|
||||
<m_BlendTime>0.20</m_BlendTime>
|
||||
<m_Conditions>
|
||||
<m_Name>RightHandMask</m_Name>
|
||||
<m_Type>STRING</m_Type>
|
||||
<m_StringValue>holdingitemright</m_StringValue>
|
||||
</m_Conditions>
|
||||
<m_Conditions>
|
||||
<m_Name>FHDoingAction</m_Name>
|
||||
<m_Type>BOOL</m_Type>
|
||||
<m_BoolValue>false</m_BoolValue>
|
||||
</m_Conditions>
|
||||
<m_Conditions>
|
||||
<m_Name>AttackAnim</m_Name>
|
||||
<m_Type>BOOL</m_Type>
|
||||
<m_BoolValue>false</m_BoolValue>
|
||||
</m_Conditions>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger0</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_R_Finger1</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
<m_SubStateBoneWeights>
|
||||
<boneName>Bip01_Prop1</boneName>
|
||||
</m_SubStateBoneWeights>
|
||||
</animNode>
|
||||
@@ -10316,14 +10316,14 @@ AnimationSet Bob_Equip_HolsterLeftL {
|
||||
0;
|
||||
2;
|
||||
0;4;0.396751,0.555883,0.577866,0.446826;;,
|
||||
3200;4;0.396751,0.555883,0.577866,0.446826;;;
|
||||
2400;4;0.396751,0.555883,0.577866,0.446826;;;
|
||||
}
|
||||
|
||||
AnimationKey S {
|
||||
1;
|
||||
2;
|
||||
0;3;1.000000,1.000000,1.000000;;,
|
||||
3200;3;1.000000,1.000000,1.000000;;;
|
||||
2400;3;1.000000,1.000000,1.000000;;;
|
||||
}
|
||||
|
||||
AnimationKey T {
|
||||
|
||||
@@ -10316,14 +10316,14 @@ AnimationSet Bob_Equip_HolsterLeft_1HandL {
|
||||
0;
|
||||
2;
|
||||
0;4;0.396751,0.555883,0.577866,0.446826;;,
|
||||
3200;4;0.396751,0.555883,0.577866,0.446826;;;
|
||||
2400;4;0.396751,0.555883,0.577866,0.446826;;;
|
||||
}
|
||||
|
||||
AnimationKey S {
|
||||
1;
|
||||
2;
|
||||
0;3;1.000000,1.000000,1.000000;;,
|
||||
3200;3;1.000000,1.000000,1.000000;;;
|
||||
2400;3;1.000000,1.000000,1.000000;;;
|
||||
}
|
||||
|
||||
AnimationKey T {
|
||||
|
||||
@@ -10526,14 +10526,14 @@ AnimationSet Bob_Equip_HolsterLeft_1Hand_OutL {
|
||||
0;
|
||||
2;
|
||||
0;4;0.396751,0.555883,0.577866,0.446826;;,
|
||||
3200;4;0.396751,0.555883,0.577866,0.446826;;;
|
||||
2400;4;0.396751,0.555883,0.577866,0.446826;;;
|
||||
}
|
||||
|
||||
AnimationKey S {
|
||||
1;
|
||||
2;
|
||||
0;3;1.000000,1.000000,1.000000;;,
|
||||
3200;3;1.000000,1.000000,1.000000;;;
|
||||
2400;3;1.000000,1.000000,1.000000;;;
|
||||
}
|
||||
|
||||
AnimationKey T {
|
||||
|
||||
@@ -10316,14 +10316,14 @@ AnimationSet Bob_Equip_HolsterLeft_OutL {
|
||||
0;
|
||||
2;
|
||||
0;4;0.396751,0.555883,0.577866,0.446826;;,
|
||||
3200;4;0.396751,0.555883,0.577866,0.446826;;;
|
||||
2400;4;0.396751,0.555883,0.577866,0.446826;;;
|
||||
}
|
||||
|
||||
AnimationKey S {
|
||||
1;
|
||||
2;
|
||||
0;3;1.000000,1.000000,1.000000;;,
|
||||
3200;3;1.000000,1.000000,1.000000;;;
|
||||
2400;3;1.000000,1.000000,1.000000;;;
|
||||
}
|
||||
|
||||
AnimationKey T {
|
||||
|
||||
@@ -10316,14 +10316,14 @@ Animation {
|
||||
0;
|
||||
2;
|
||||
0;4;0.396751,0.555883,0.577866,0.446826;;,
|
||||
3200;4;0.396751,0.555883,0.577866,0.446826;;;
|
||||
2400;4;0.396751,0.555883,0.577866,0.446826;;;
|
||||
}
|
||||
|
||||
AnimationKey S {
|
||||
1;
|
||||
2;
|
||||
0;3;1.000000,1.000000,1.000000;;,
|
||||
3200;3;1.000000,1.000000,1.000000;;;
|
||||
2400;3;1.000000,1.000000,1.000000;;;
|
||||
}
|
||||
|
||||
AnimationKey T {
|
||||
|
||||
@@ -10526,14 +10526,14 @@ AnimationSet Bob_Equip_HolsterRight_1HandL {
|
||||
0;
|
||||
2;
|
||||
0;4;0.396751,0.555883,0.577866,0.446826;;,
|
||||
3200;4;0.396751,0.555883,0.577866,0.446826;;;
|
||||
2400;4;0.396751,0.555883,0.577866,0.446826;;;
|
||||
}
|
||||
|
||||
AnimationKey S {
|
||||
1;
|
||||
2;
|
||||
0;3;1.000000,1.000000,1.000000;;,
|
||||
3200;3;1.000000,1.000000,1.000000;;;
|
||||
2400;3;1.000000,1.000000,1.000000;;;
|
||||
}
|
||||
|
||||
AnimationKey T {
|
||||
|
||||
@@ -10526,14 +10526,14 @@ AnimationSet Bob_Equip_HolsterRight_1Hand_OutL {
|
||||
0;
|
||||
2;
|
||||
0;4;0.396751,0.555883,0.577866,0.446826;;,
|
||||
3200;4;0.396751,0.555883,0.577866,0.446826;;;
|
||||
2400;4;0.396751,0.555883,0.577866,0.446826;;;
|
||||
}
|
||||
|
||||
AnimationKey S {
|
||||
1;
|
||||
2;
|
||||
0;3;1.000000,1.000000,1.000000;;,
|
||||
3200;3;1.000000,1.000000,1.000000;;;
|
||||
2400;3;1.000000,1.000000,1.000000;;;
|
||||
}
|
||||
|
||||
AnimationKey T {
|
||||
|
||||
@@ -10316,14 +10316,14 @@ AnimationSet Bob_Equip_HolsterRight_OutL {
|
||||
0;
|
||||
2;
|
||||
0;4;0.396751,0.555883,0.577866,0.446826;;,
|
||||
3200;4;0.396751,0.555883,0.577866,0.446826;;;
|
||||
2400;4;0.396751,0.555883,0.577866,0.446826;;;
|
||||
}
|
||||
|
||||
AnimationKey S {
|
||||
1;
|
||||
2;
|
||||
0;3;1.000000,1.000000,1.000000;;,
|
||||
3200;3;1.000000,1.000000,1.000000;;;
|
||||
2400;3;1.000000,1.000000,1.000000;;;
|
||||
}
|
||||
|
||||
AnimationKey T {
|
||||
|
||||
9794
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_FH_AddToPan.x
Executable file
9794
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_FH_AddToPan.x
Executable file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
9601
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_FH_AddToPot.x
Executable file
9601
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_FH_AddToPot.x
Executable file
File diff suppressed because it is too large
Load Diff
9596
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_FH_AddToRoast.x
Executable file
9596
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_FH_AddToRoast.x
Executable file
File diff suppressed because it is too large
Load Diff
8884
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_FH_Boop.x
Executable file
8884
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_FH_Boop.x
Executable file
File diff suppressed because it is too large
Load Diff
9033
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_FH_Boop_High.x
Executable file
9033
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_FH_Boop_High.x
Executable file
File diff suppressed because it is too large
Load Diff
8915
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_FH_Boop_Low.x
Executable file
8915
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_FH_Boop_Low.x
Executable file
File diff suppressed because it is too large
Load Diff
10786
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_FH_Boop_Rear_Flick_L.x
Executable file
10786
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_FH_Boop_Rear_Flick_L.x
Executable file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
19756
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_FH_Boop_Rear_L.x
Executable file
19756
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_FH_Boop_Rear_L.x
Executable file
File diff suppressed because it is too large
Load Diff
8920
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_FH_Boop_Rear_R.x
Executable file
8920
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_FH_Boop_Rear_R.x
Executable file
File diff suppressed because it is too large
Load Diff
8854
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_FH_CarryBody.x
Executable file
8854
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_FH_CarryBody.x
Executable file
File diff suppressed because it is too large
Load Diff
8854
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_FH_CarryGenerator.x
Executable file
8854
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_FH_CarryGenerator.x
Executable file
File diff suppressed because it is too large
Load Diff
@@ -418,17 +418,17 @@ Frame Body {
|
||||
Mesh Body {
|
||||
617;
|
||||
0.071099;0.767838;0.010932;,
|
||||
0.031069;0.792980;0.030676;,
|
||||
0.036279;0.768321;0.008014;,
|
||||
0.031069;0.792983;0.030676;,
|
||||
0.036279;0.768324;0.008014;,
|
||||
0.078356;0.749985;0.002908;,
|
||||
0.088221;0.741329;-0.001190;,
|
||||
0.043922;0.742164;-0.015989;,
|
||||
0.043922;0.742167;-0.015989;,
|
||||
0.057006;0.709648;-0.030946;,
|
||||
0.093646;0.705681;0.000073;,
|
||||
0.032036;0.804333;0.071721;,
|
||||
0.032036;0.804336;0.071721;,
|
||||
0.074601;0.779948;0.060329;,
|
||||
0.080351;0.773887;0.089415;,
|
||||
0.049862;0.777586;0.096740;,
|
||||
0.049862;0.777589;0.096740;,
|
||||
0.086349;0.554408;0.050999;,
|
||||
0.045026;0.549701;0.075344;,
|
||||
0.045914;0.561457;0.069548;,
|
||||
@@ -438,7 +438,7 @@ Frame Body {
|
||||
0.046439;0.562286;-0.039229;,
|
||||
0.044023;0.506327;-0.028466;,
|
||||
0.072700;0.515649;-0.019038;,
|
||||
0.003001;0.744587;-0.018231;,
|
||||
0.003001;0.744590;-0.018231;,
|
||||
0.003000;0.710112;-0.038580;,
|
||||
0.003000;0.545431;0.075113;,
|
||||
0.003000;0.559334;0.069416;,
|
||||
@@ -452,7 +452,7 @@ Frame Body {
|
||||
0.094269;0.463343;0.005813;,
|
||||
0.065389;0.271490;-0.040401;,
|
||||
0.094111;0.270933;0.004063;,
|
||||
0.010932;0.465444;-0.009627;,
|
||||
0.010932;0.465444;-0.009630;,
|
||||
0.015105;0.443122;0.078928;,
|
||||
0.023900;0.362922;0.065628;,
|
||||
0.017686;0.365578;-0.010040;,
|
||||
@@ -483,7 +483,7 @@ Frame Body {
|
||||
0.093324;0.510227;0.015743;,
|
||||
0.002999;0.498641;-0.040352;,
|
||||
0.003000;0.464143;-0.026349;,
|
||||
0.010932;0.465444;-0.009627;,
|
||||
0.010932;0.465444;-0.009630;,
|
||||
0.095057;0.504967;0.070084;,
|
||||
0.045026;0.503652;0.094107;,
|
||||
0.089157;0.456429;0.068022;,
|
||||
@@ -498,36 +498,36 @@ Frame Body {
|
||||
0.051920;0.618796;-0.035400;,
|
||||
0.003000;0.675647;-0.045232;,
|
||||
0.003000;0.614784;-0.040780;,
|
||||
0.129386;0.709026;0.011626;,
|
||||
0.075937;0.710260;0.005519;,
|
||||
0.143634;0.663209;0.027833;,
|
||||
0.085670;0.651042;0.018774;,
|
||||
0.099509;0.602229;0.037170;,
|
||||
0.146535;0.611977;0.044560;,
|
||||
0.065025;0.712006;0.065434;,
|
||||
0.072835;0.664381;0.082200;,
|
||||
0.085670;0.651042;0.018774;,
|
||||
0.088503;0.612519;0.089467;,
|
||||
0.099509;0.602229;0.037170;,
|
||||
0.071532;0.716001;0.073808;,
|
||||
0.116063;0.721473;0.074999;,
|
||||
0.130845;0.676872;0.091286;,
|
||||
0.135383;0.622177;0.096900;,
|
||||
0.130886;0.717090;0.040417;,
|
||||
0.155720;0.591750;0.038140;,
|
||||
0.100748;0.577185;0.029995;,
|
||||
0.122137;0.520428;0.028185;,
|
||||
0.129386;0.709026;0.011629;,
|
||||
0.075937;0.710260;0.005522;,
|
||||
0.143634;0.663209;0.027836;,
|
||||
0.085670;0.651042;0.018777;,
|
||||
0.099509;0.602229;0.037173;,
|
||||
0.146535;0.611977;0.044563;,
|
||||
0.065025;0.712006;0.065437;,
|
||||
0.072835;0.664381;0.082203;,
|
||||
0.085670;0.651042;0.018777;,
|
||||
0.088503;0.612519;0.089470;,
|
||||
0.099509;0.602229;0.037173;,
|
||||
0.071532;0.716001;0.073811;,
|
||||
0.116063;0.721473;0.075002;,
|
||||
0.130845;0.676872;0.091289;,
|
||||
0.135383;0.622177;0.096903;,
|
||||
0.130886;0.717090;0.040420;,
|
||||
0.155720;0.591750;0.038143;,
|
||||
0.100748;0.577185;0.029998;,
|
||||
0.122137;0.520428;0.028188;,
|
||||
0.156526;0.532209;0.033271;,
|
||||
0.132990;0.481655;0.029783;,
|
||||
0.158559;0.481858;0.033021;,
|
||||
0.100748;0.577185;0.029995;,
|
||||
0.091095;0.576208;0.092222;,
|
||||
0.121720;0.521077;0.085398;,
|
||||
0.122137;0.520428;0.028185;,
|
||||
0.100748;0.577185;0.029998;,
|
||||
0.091095;0.576208;0.092225;,
|
||||
0.121720;0.521077;0.085401;,
|
||||
0.122137;0.520428;0.028188;,
|
||||
0.134831;0.480540;0.069364;,
|
||||
0.132990;0.481655;0.029783;,
|
||||
0.145747;0.590743;0.100460;,
|
||||
0.148064;0.530419;0.088969;,
|
||||
0.145747;0.590743;0.100463;,
|
||||
0.148064;0.530419;0.088972;,
|
||||
0.153443;0.479231;0.070378;,
|
||||
0.134046;0.349811;0.017226;,
|
||||
0.118405;0.365118;0.015006;,
|
||||
@@ -550,21 +550,21 @@ Frame Body {
|
||||
0.074601;0.779948;0.060329;,
|
||||
0.073550;0.780661;0.036001;,
|
||||
0.096799;0.692389;0.080223;,
|
||||
0.041722;0.803419;0.044757;,
|
||||
0.041722;0.803422;0.044757;,
|
||||
0.102388;0.760687;0.007122;,
|
||||
0.071099;0.767838;0.010932;,
|
||||
0.078356;0.749985;0.002908;,
|
||||
0.099092;0.732477;0.001642;,
|
||||
0.099092;0.732480;0.001642;,
|
||||
0.097208;0.735170;0.085097;,
|
||||
0.060779;0.721946;0.101397;,
|
||||
0.060779;0.721949;0.101397;,
|
||||
0.099444;0.739917;0.082438;,
|
||||
0.003001;0.716023;0.103620;,
|
||||
0.003001;0.774595;0.090344;,
|
||||
0.003001;0.716026;0.103620;,
|
||||
0.003001;0.774598;0.090344;,
|
||||
0.080351;0.773887;0.089415;,
|
||||
0.099444;0.739917;0.082438;,
|
||||
0.086027;0.726140;0.025105;,
|
||||
0.099111;0.730688;0.070350;,
|
||||
0.075937;0.710260;0.005519;,
|
||||
0.075937;0.710260;0.005522;,
|
||||
0.098937;0.695764;0.048084;,
|
||||
0.092012;0.699542;0.013554;,
|
||||
0.088221;0.741329;-0.001190;,
|
||||
@@ -665,12 +665,12 @@ Frame Body {
|
||||
0.054436;0.862872;0.022493;,
|
||||
0.037554;0.890750;-0.035382;,
|
||||
0.056542;0.881930;0.008191;,
|
||||
0.041722;0.803419;0.044757;,
|
||||
0.041722;0.803422;0.044757;,
|
||||
0.038203;0.832609;0.042565;,
|
||||
0.073550;0.780661;0.036001;,
|
||||
0.041411;0.856797;0.043261;,
|
||||
0.003001;0.786898;0.009778;,
|
||||
0.003001;0.766021;-0.001631;,
|
||||
0.003001;0.786901;0.009778;,
|
||||
0.003001;0.766024;-0.001631;,
|
||||
0.003000;0.560132;-0.042926;,
|
||||
0.003000;0.501017;0.093877;,
|
||||
0.003000;0.466850;0.090836;,
|
||||
@@ -731,14 +731,14 @@ Frame Body {
|
||||
0.081770;0.725999;0.041575;,
|
||||
-0.065098;0.767838;0.010933;,
|
||||
-0.072355;0.749985;0.002908;,
|
||||
-0.030277;0.768321;0.008014;,
|
||||
-0.025067;0.792980;0.030676;,
|
||||
-0.082200;0.741364;-0.001179;,
|
||||
-0.030277;0.768324;0.008014;,
|
||||
-0.025067;0.792983;0.030676;,
|
||||
-0.082200;0.741367;-0.001179;,
|
||||
-0.087646;0.705681;0.000074;,
|
||||
-0.051006;0.709648;-0.030945;,
|
||||
-0.037920;0.742164;-0.015989;,
|
||||
-0.026034;0.804333;0.071721;,
|
||||
-0.043860;0.777586;0.096742;,
|
||||
-0.037920;0.742167;-0.015989;,
|
||||
-0.026034;0.804336;0.071721;,
|
||||
-0.043860;0.777589;0.096742;,
|
||||
-0.074320;0.773826;0.089454;,
|
||||
-0.068490;0.779919;0.060431;,
|
||||
-0.080349;0.554408;0.050999;,
|
||||
@@ -758,40 +758,40 @@ Frame Body {
|
||||
0.003000;0.648945;0.087562;,
|
||||
-0.054324;0.465391;-0.031056;,
|
||||
-0.088927;0.463876;0.005976;,
|
||||
-0.100037;0.364670;-0.005922;,
|
||||
-0.062115;0.366719;-0.034438;,
|
||||
-0.092721;0.271635;0.005407;,
|
||||
-0.063932;0.271610;-0.039039;,
|
||||
-0.005692;0.464388;-0.009326;,
|
||||
-0.014421;0.364675;-0.009170;,
|
||||
-0.020771;0.362587;0.066505;,
|
||||
-0.100034;0.364670;-0.005922;,
|
||||
-0.062112;0.366719;-0.034438;,
|
||||
-0.092718;0.271635;0.005407;,
|
||||
-0.063929;0.271610;-0.039039;,
|
||||
-0.005689;0.464388;-0.009326;,
|
||||
-0.014418;0.364675;-0.009170;,
|
||||
-0.020768;0.362587;0.066505;,
|
||||
-0.009105;0.443122;0.078928;,
|
||||
-0.036079;0.269479;0.001965;,
|
||||
-0.038927;0.273289;0.044034;,
|
||||
-0.100341;0.363959;0.058844;,
|
||||
-0.036076;0.269479;0.001965;,
|
||||
-0.038924;0.273289;0.044034;,
|
||||
-0.100338;0.363959;0.058844;,
|
||||
-0.083964;0.444600;0.064414;,
|
||||
-0.079588;0.276615;0.043732;,
|
||||
-0.079585;0.276615;0.043732;,
|
||||
-0.091698;-0.001439;0.054150;,
|
||||
-0.086989;-0.001546;0.099343;,
|
||||
-0.052132;-0.001523;0.099610;,
|
||||
-0.046802;-0.001416;0.051083;,
|
||||
-0.066391;0.216290;-0.007690;,
|
||||
-0.097738;0.219606;0.020971;,
|
||||
-0.096026;0.146039;0.033893;,
|
||||
-0.066857;0.143323;0.005213;,
|
||||
-0.066388;0.216290;-0.007690;,
|
||||
-0.097735;0.219606;0.020971;,
|
||||
-0.096023;0.146039;0.033893;,
|
||||
-0.066854;0.143323;0.005213;,
|
||||
-0.089401;0.067947;0.049201;,
|
||||
-0.069551;0.065871;0.020587;,
|
||||
-0.025330;0.200749;0.018327;,
|
||||
-0.037277;0.143765;0.030381;,
|
||||
-0.034289;0.157921;0.070690;,
|
||||
-0.026265;0.223284;0.069298;,
|
||||
-0.025327;0.200749;0.018327;,
|
||||
-0.037274;0.143765;0.030381;,
|
||||
-0.034286;0.157921;0.070690;,
|
||||
-0.026262;0.223284;0.069298;,
|
||||
-0.052897;0.059931;0.046017;,
|
||||
-0.056442;0.080015;0.071446;,
|
||||
-0.096384;0.157635;0.070650;,
|
||||
-0.098032;0.232140;0.068796;,
|
||||
-0.096381;0.157635;0.070650;,
|
||||
-0.098029;0.232140;0.068796;,
|
||||
-0.080510;0.085234;0.070856;,
|
||||
-0.087324;0.510227;0.015743;,
|
||||
-0.005692;0.464388;-0.009326;,
|
||||
-0.005689;0.464388;-0.009326;,
|
||||
-0.039026;0.503652;0.094107;,
|
||||
-0.089057;0.504967;0.070084;,
|
||||
-0.038080;0.459598;0.089765;,
|
||||
@@ -828,21 +828,21 @@ Frame Body {
|
||||
-0.135414;0.480749;0.029545;,
|
||||
-0.100380;0.575253;0.026866;,
|
||||
-0.123434;0.519123;0.026777;,
|
||||
-0.122737;0.521406;0.083954;,
|
||||
-0.122737;0.521406;0.083957;,
|
||||
-0.090493;0.575715;0.089013;,
|
||||
-0.135414;0.480749;0.029545;,
|
||||
-0.137105;0.480829;0.069148;,
|
||||
-0.148779;0.531620;0.087351;,
|
||||
-0.148779;0.531620;0.087354;,
|
||||
-0.144658;0.592077;0.097043;,
|
||||
-0.155744;0.480099;0.070269;,
|
||||
-0.140397;0.348686;0.020800;,
|
||||
-0.131319;0.362846;0.065433;,
|
||||
-0.115387;0.377430;0.063285;,
|
||||
-0.124323;0.363455;0.018080;,
|
||||
-0.133852;0.399534;-0.002924;,
|
||||
-0.144457;0.400414;-0.007705;,
|
||||
-0.147015;0.392337;0.004519;,
|
||||
-0.136089;0.391096;0.004119;,
|
||||
-0.140397;0.348686;0.020797;,
|
||||
-0.131319;0.362846;0.065430;,
|
||||
-0.115387;0.377430;0.063282;,
|
||||
-0.124323;0.363455;0.018077;,
|
||||
-0.133852;0.399534;-0.002927;,
|
||||
-0.144457;0.400414;-0.007708;,
|
||||
-0.147015;0.392337;0.004516;,
|
||||
-0.136089;0.391096;0.004116;,
|
||||
-0.121774;0.450949;0.066578;,
|
||||
-0.126902;0.450951;0.017122;,
|
||||
-0.143787;0.420631;0.019234;,
|
||||
@@ -856,24 +856,24 @@ Frame Body {
|
||||
-0.067548;0.780661;0.036002;,
|
||||
-0.068490;0.779919;0.060431;,
|
||||
-0.090797;0.692389;0.080223;,
|
||||
-0.035720;0.803419;0.044757;,
|
||||
-0.035720;0.803422;0.044757;,
|
||||
-0.096356;0.760782;0.007129;,
|
||||
-0.093086;0.732832;0.001569;,
|
||||
-0.093086;0.732835;0.001569;,
|
||||
-0.072355;0.749985;0.002908;,
|
||||
-0.065098;0.767838;0.010933;,
|
||||
-0.091237;0.734928;0.085124;,
|
||||
-0.093482;0.739661;0.082462;,
|
||||
-0.054777;0.721946;0.101397;,
|
||||
0.003001;0.716023;0.103620;,
|
||||
0.003001;0.774595;0.090344;,
|
||||
-0.091237;0.734931;0.085124;,
|
||||
-0.093482;0.739664;0.082462;,
|
||||
-0.054777;0.721949;0.101397;,
|
||||
0.003001;0.716026;0.103620;,
|
||||
0.003001;0.774598;0.090344;,
|
||||
-0.074320;0.773826;0.089454;,
|
||||
-0.093482;0.739661;0.082462;,
|
||||
-0.093482;0.739664;0.082462;,
|
||||
-0.080018;0.726113;0.025117;,
|
||||
-0.070654;0.710276;0.004877;,
|
||||
-0.093151;0.730476;0.070359;,
|
||||
-0.086012;0.699542;0.013555;,
|
||||
-0.092937;0.695764;0.048085;,
|
||||
-0.082200;0.741364;-0.001179;,
|
||||
-0.082200;0.741367;-0.001179;,
|
||||
-0.098287;0.695337;0.064251;,
|
||||
-0.126902;0.450951;0.017122;,
|
||||
-0.032203;0.832609;0.042565;,
|
||||
@@ -881,17 +881,17 @@ Frame Body {
|
||||
0.003000;0.840662;0.071276;,
|
||||
0.003124;0.805445;0.076533;,
|
||||
-0.161117;0.411811;0.023523;,
|
||||
-0.140397;0.348686;0.020800;,
|
||||
-0.131319;0.362846;0.065433;,
|
||||
-0.152463;0.417909;-0.002565;,
|
||||
-0.126783;0.417814;0.000822;,
|
||||
-0.126783;0.417814;0.000822;,
|
||||
-0.133509;0.407190;0.013417;,
|
||||
-0.156836;0.412985;0.018709;,
|
||||
-0.156836;0.412985;0.018709;,
|
||||
-0.144457;0.400414;-0.007705;,
|
||||
-0.133852;0.399534;-0.002924;,
|
||||
-0.147015;0.392337;0.004519;,
|
||||
-0.140397;0.348686;0.020797;,
|
||||
-0.131319;0.362846;0.065430;,
|
||||
-0.152463;0.417909;-0.002568;,
|
||||
-0.126783;0.417814;0.000819;,
|
||||
-0.126783;0.417814;0.000819;,
|
||||
-0.133509;0.407190;0.013414;,
|
||||
-0.156836;0.412985;0.018706;,
|
||||
-0.156836;0.412985;0.018706;,
|
||||
-0.144457;0.400414;-0.007708;,
|
||||
-0.133852;0.399534;-0.002927;,
|
||||
-0.147015;0.392337;0.004516;,
|
||||
-0.097939;0.020227;-0.022684;,
|
||||
-0.103498;-0.001398;-0.029921;,
|
||||
-0.067684;-0.001386;-0.067431;,
|
||||
@@ -912,10 +912,10 @@ Frame Body {
|
||||
-0.032744;-0.001375;-0.056977;,
|
||||
-0.032744;-0.001375;-0.056977;,
|
||||
-0.103498;-0.001398;-0.029921;,
|
||||
-0.014421;0.364675;-0.009170;,
|
||||
-0.036079;0.269479;0.001965;,
|
||||
-0.025330;0.200749;0.018327;,
|
||||
-0.037277;0.143765;0.030381;,
|
||||
-0.014418;0.364675;-0.009170;,
|
||||
-0.036076;0.269479;0.001965;,
|
||||
-0.025327;0.200749;0.018327;,
|
||||
-0.037274;0.143765;0.030381;,
|
||||
-0.052897;0.059931;0.046017;,
|
||||
-0.052897;0.059931;0.046017;,
|
||||
-0.043110;0.834970;0.022229;,
|
||||
@@ -968,7 +968,7 @@ Frame Body {
|
||||
-0.031554;0.890750;-0.035382;,
|
||||
-0.050542;0.881930;0.008191;,
|
||||
-0.032203;0.832609;0.042565;,
|
||||
-0.035720;0.803419;0.044757;,
|
||||
-0.035720;0.803422;0.044757;,
|
||||
-0.067548;0.780661;0.036002;,
|
||||
-0.035411;0.856798;0.043261;,
|
||||
0.003000;0.501017;0.093877;,
|
||||
@@ -991,7 +991,7 @@ Frame Body {
|
||||
-0.093151;0.730476;0.070359;,
|
||||
-0.075749;0.725892;0.041615;,
|
||||
-0.080018;0.726113;0.025117;,
|
||||
-0.082200;0.741364;-0.001179;,
|
||||
-0.082200;0.741367;-0.001179;,
|
||||
-0.046953;0.905585;0.050786;,
|
||||
-0.022283;0.221867;-0.025042;,
|
||||
-0.031137;0.145709;-0.014293;,
|
||||
@@ -1009,22 +1009,22 @@ Frame Body {
|
||||
0.000202;0.081122;-0.017729;,
|
||||
-0.032460;0.079208;0.107119;,
|
||||
-0.080496;0.085235;0.070858;,
|
||||
-0.096384;0.157635;0.070650;,
|
||||
-0.096381;0.157635;0.070650;,
|
||||
-0.033442;0.153646;0.095452;,
|
||||
-0.098032;0.232140;0.068796;,
|
||||
-0.034320;0.221278;0.084522;,
|
||||
-0.031597;0.274781;0.078110;,
|
||||
-0.079588;0.276615;0.043732;,
|
||||
-0.100341;0.363959;0.058844;,
|
||||
-0.019385;0.361877;0.083941;,
|
||||
-0.098029;0.232140;0.068796;,
|
||||
-0.034317;0.221278;0.084522;,
|
||||
-0.031594;0.274781;0.078110;,
|
||||
-0.079585;0.276615;0.043732;,
|
||||
-0.100338;0.363959;0.058844;,
|
||||
-0.019382;0.361877;0.083941;,
|
||||
0.003000;0.466850;0.090836;,
|
||||
-0.038080;0.459598;0.089765;,
|
||||
-0.075749;0.725892;0.041615;,
|
||||
-0.054324;0.465391;-0.031056;,
|
||||
-0.062115;0.366719;-0.034438;,
|
||||
-0.063932;0.271610;-0.039039;,
|
||||
-0.066391;0.216290;-0.007690;,
|
||||
-0.066857;0.143323;0.005213;,
|
||||
-0.062112;0.366719;-0.034438;,
|
||||
-0.063929;0.271610;-0.039039;,
|
||||
-0.066388;0.216290;-0.007690;,
|
||||
-0.066854;0.143323;0.005213;,
|
||||
-0.069551;0.065871;0.020587;,
|
||||
0.103490;0.362763;0.058066;,
|
||||
0.043737;0.459563;0.089666;,
|
||||
@@ -2146,7 +2146,7 @@ Frame Body {
|
||||
-0.443922;-0.068516;-0.893442;,
|
||||
-0.724820;-0.051916;-0.686979;,
|
||||
-0.594439;-0.231924;-0.769970;,
|
||||
-0.689854;-0.228381;-0.686982;,
|
||||
-0.689855;-0.228381;-0.686980;,
|
||||
-0.785319;-0.240066;-0.570651;,
|
||||
-0.874839;0.462767;-0.143189;,
|
||||
0.062917;-0.968699;-0.240131;,
|
||||
@@ -2381,11 +2381,11 @@ Frame Body {
|
||||
0.036996;-0.986471;0.159705;,
|
||||
0.701094;-0.707032;0.092590;,
|
||||
0.756356;0.026337;0.653630;,
|
||||
0.962820;-0.195704;0.186221;,
|
||||
0.935898;-0.351633;-0.021199;,
|
||||
0.962820;-0.195704;0.186218;,
|
||||
0.935898;-0.351633;-0.021202;,
|
||||
0.827126;0.095610;0.553824;,
|
||||
-0.637236;-0.197843;0.744842;,
|
||||
-0.745285;0.007852;0.666699;,
|
||||
-0.637234;-0.197845;0.744842;,
|
||||
-0.745285;0.007849;0.666700;,
|
||||
-0.830051;0.144789;-0.538564;,
|
||||
-0.976775;-0.202541;-0.069908;,
|
||||
-0.723332;0.609303;0.324870;,
|
||||
@@ -2412,7 +2412,7 @@ Frame Body {
|
||||
-0.945712;0.178206;-0.271792;,
|
||||
0.919506;0.368350;0.137211;,
|
||||
-0.998656;-0.019605;0.047970;,
|
||||
-0.096899;0.388799;-0.916213;,
|
||||
-0.096902;0.388799;-0.916212;,
|
||||
-0.924006;0.061242;0.377441;,
|
||||
-0.646312;0.058203;0.760850;,
|
||||
-0.313381;0.017355;0.949469;,
|
||||
@@ -2421,13 +2421,13 @@ Frame Body {
|
||||
-0.902236;-0.342997;0.261386;,
|
||||
-0.209258;-0.230513;0.950303;,
|
||||
-0.359565;0.188462;-0.913890;,
|
||||
0.049285;0.410912;-0.910342;,
|
||||
0.049282;0.410912;-0.910342;,
|
||||
0.899157;-0.185837;0.396209;,
|
||||
0.434062;-0.323438;0.840820;,
|
||||
0.250157;-0.624900;0.739542;,
|
||||
-0.893129;-0.228413;-0.387489;,
|
||||
-0.709487;-0.061721;-0.702011;,
|
||||
0.271645;0.293037;-0.916700;,
|
||||
-0.709488;-0.061721;-0.702009;,
|
||||
0.271643;0.293038;-0.916700;,
|
||||
-0.919897;-0.209954;-0.331223;,
|
||||
-0.866705;0.393518;-0.306539;,
|
||||
-0.904270;0.325087;-0.276793;,
|
||||
@@ -8752,37 +8752,11 @@ AnimationSet Bob_FH_Hgun {
|
||||
|
||||
{ Bip01_Prop1 }
|
||||
|
||||
AnimationKey R {
|
||||
0;
|
||||
2;
|
||||
0;4;0.396751,0.555883,0.577866,0.446826;;,
|
||||
3200;4;0.396751,0.555883,0.577866,0.446826;;;
|
||||
}
|
||||
|
||||
AnimationKey S {
|
||||
1;
|
||||
2;
|
||||
0;3;1.000000,1.000000,1.000000;;,
|
||||
3200;3;1.000000,1.000000,1.000000;;;
|
||||
}
|
||||
|
||||
AnimationKey T {
|
||||
2;
|
||||
2;
|
||||
0;3;-0.043693,-0.107672,-0.128372;;,
|
||||
2400;3;-0.043693,-0.107672,-0.128372;;;
|
||||
}
|
||||
}
|
||||
|
||||
Animation {
|
||||
|
||||
{ Bip01_Prop2 }
|
||||
|
||||
AnimationKey {
|
||||
0;
|
||||
2;
|
||||
0;4;-0.001456,0.708239,-0.002721,-0.705966;;,
|
||||
2400;4;-0.001456,0.708239,-0.002721,-0.705966;;;
|
||||
0;4;0.040267,-0.655903,0.052971,0.751907;;,
|
||||
2400;4;0.040267,-0.655903,0.052971,0.751907;;;
|
||||
}
|
||||
|
||||
AnimationKey {
|
||||
@@ -8795,8 +8769,34 @@ AnimationSet Bob_FH_Hgun {
|
||||
AnimationKey {
|
||||
2;
|
||||
2;
|
||||
0;3;-0.003500,-0.058400,0.132900;;,
|
||||
2400;3;-0.003500,-0.058400,0.132900;;;
|
||||
0;3;-0.003523,-0.058440,-0.132865;;,
|
||||
2400;3;-0.003523,-0.058440,-0.132865;;;
|
||||
}
|
||||
}
|
||||
|
||||
Animation {
|
||||
|
||||
{ Bip01_Prop2 }
|
||||
|
||||
AnimationKey {
|
||||
0;
|
||||
2;
|
||||
0;4;0.037459,0.707342,0.036471,-0.704935;;,
|
||||
2400;4;0.037459,0.707342,0.036471,-0.704935;;;
|
||||
}
|
||||
|
||||
AnimationKey {
|
||||
1;
|
||||
2;
|
||||
0;3;1.000000,1.000000,1.000000;;,
|
||||
2400;3;1.000000,1.000000,1.000000;;;
|
||||
}
|
||||
|
||||
AnimationKey {
|
||||
2;
|
||||
2;
|
||||
0;3;-0.003500,-0.058400,0.117500;;,
|
||||
2400;3;-0.003500,-0.058400,0.117500;;;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -418,17 +418,17 @@ Frame Body {
|
||||
Mesh Body {
|
||||
617;
|
||||
0.071099;0.767838;0.010932;,
|
||||
0.031069;0.792975;0.030676;,
|
||||
0.036279;0.768316;0.008014;,
|
||||
0.031069;0.792977;0.030676;,
|
||||
0.036279;0.768318;0.008014;,
|
||||
0.078356;0.749985;0.002908;,
|
||||
0.088221;0.741329;-0.001190;,
|
||||
0.043922;0.742159;-0.015989;,
|
||||
0.043922;0.742161;-0.015989;,
|
||||
0.057006;0.709648;-0.030946;,
|
||||
0.093646;0.705681;0.000073;,
|
||||
0.032036;0.804328;0.071721;,
|
||||
0.032036;0.804330;0.071721;,
|
||||
0.074601;0.779948;0.060329;,
|
||||
0.080351;0.773887;0.089415;,
|
||||
0.049862;0.777581;0.096740;,
|
||||
0.049862;0.777583;0.096740;,
|
||||
0.086349;0.554408;0.050999;,
|
||||
0.045026;0.549701;0.075344;,
|
||||
0.045914;0.561457;0.069548;,
|
||||
@@ -438,7 +438,7 @@ Frame Body {
|
||||
0.046439;0.562286;-0.039229;,
|
||||
0.044023;0.506327;-0.028466;,
|
||||
0.072700;0.515649;-0.019038;,
|
||||
0.003001;0.744582;-0.018231;,
|
||||
0.003001;0.744584;-0.018231;,
|
||||
0.003000;0.710112;-0.038580;,
|
||||
0.003000;0.545431;0.075113;,
|
||||
0.003000;0.559334;0.069416;,
|
||||
@@ -452,7 +452,7 @@ Frame Body {
|
||||
0.094269;0.463343;0.005813;,
|
||||
0.065389;0.271490;-0.040401;,
|
||||
0.094111;0.270933;0.004063;,
|
||||
0.010932;0.465444;-0.009622;,
|
||||
0.010932;0.465444;-0.009624;,
|
||||
0.015105;0.443122;0.078928;,
|
||||
0.023900;0.362922;0.065628;,
|
||||
0.017686;0.365578;-0.010040;,
|
||||
@@ -483,7 +483,7 @@ Frame Body {
|
||||
0.093324;0.510227;0.015743;,
|
||||
0.002999;0.498641;-0.040352;,
|
||||
0.003000;0.464143;-0.026349;,
|
||||
0.010932;0.465444;-0.009622;,
|
||||
0.010932;0.465444;-0.009624;,
|
||||
0.095057;0.504967;0.070084;,
|
||||
0.045026;0.503652;0.094107;,
|
||||
0.089157;0.456429;0.068022;,
|
||||
@@ -498,36 +498,36 @@ Frame Body {
|
||||
0.051920;0.618796;-0.035400;,
|
||||
0.003000;0.675647;-0.045232;,
|
||||
0.003000;0.614784;-0.040780;,
|
||||
0.129386;0.709026;0.011621;,
|
||||
0.075937;0.710260;0.005514;,
|
||||
0.143634;0.663209;0.027828;,
|
||||
0.085670;0.651042;0.018769;,
|
||||
0.099509;0.602229;0.037165;,
|
||||
0.146535;0.611977;0.044555;,
|
||||
0.065025;0.712006;0.065429;,
|
||||
0.072835;0.664381;0.082195;,
|
||||
0.085670;0.651042;0.018769;,
|
||||
0.088503;0.612519;0.089462;,
|
||||
0.099509;0.602229;0.037165;,
|
||||
0.071532;0.716001;0.073803;,
|
||||
0.116063;0.721473;0.074994;,
|
||||
0.130845;0.676872;0.091281;,
|
||||
0.135383;0.622177;0.096895;,
|
||||
0.130886;0.717090;0.040412;,
|
||||
0.155720;0.591750;0.038135;,
|
||||
0.100748;0.577185;0.029990;,
|
||||
0.122137;0.520428;0.028180;,
|
||||
0.129386;0.709026;0.011623;,
|
||||
0.075937;0.710260;0.005516;,
|
||||
0.143634;0.663209;0.027830;,
|
||||
0.085670;0.651042;0.018771;,
|
||||
0.099509;0.602229;0.037167;,
|
||||
0.146535;0.611977;0.044557;,
|
||||
0.065025;0.712006;0.065431;,
|
||||
0.072835;0.664381;0.082197;,
|
||||
0.085670;0.651042;0.018771;,
|
||||
0.088503;0.612519;0.089464;,
|
||||
0.099509;0.602229;0.037167;,
|
||||
0.071532;0.716001;0.073805;,
|
||||
0.116063;0.721473;0.074996;,
|
||||
0.130845;0.676872;0.091283;,
|
||||
0.135383;0.622177;0.096897;,
|
||||
0.130886;0.717090;0.040414;,
|
||||
0.155720;0.591750;0.038137;,
|
||||
0.100748;0.577185;0.029992;,
|
||||
0.122137;0.520428;0.028182;,
|
||||
0.156526;0.532209;0.033271;,
|
||||
0.132990;0.481655;0.029783;,
|
||||
0.158559;0.481858;0.033021;,
|
||||
0.100748;0.577185;0.029990;,
|
||||
0.091095;0.576208;0.092217;,
|
||||
0.121720;0.521077;0.085393;,
|
||||
0.122137;0.520428;0.028180;,
|
||||
0.100748;0.577185;0.029992;,
|
||||
0.091095;0.576208;0.092219;,
|
||||
0.121720;0.521077;0.085395;,
|
||||
0.122137;0.520428;0.028182;,
|
||||
0.134831;0.480540;0.069364;,
|
||||
0.132990;0.481655;0.029783;,
|
||||
0.145747;0.590743;0.100455;,
|
||||
0.148064;0.530419;0.088964;,
|
||||
0.145747;0.590743;0.100457;,
|
||||
0.148064;0.530419;0.088966;,
|
||||
0.153443;0.479231;0.070378;,
|
||||
0.134046;0.349811;0.017226;,
|
||||
0.118405;0.365118;0.015006;,
|
||||
@@ -550,21 +550,21 @@ Frame Body {
|
||||
0.074601;0.779948;0.060329;,
|
||||
0.073550;0.780661;0.036001;,
|
||||
0.096799;0.692389;0.080223;,
|
||||
0.041722;0.803414;0.044757;,
|
||||
0.041722;0.803416;0.044757;,
|
||||
0.102388;0.760687;0.007122;,
|
||||
0.071099;0.767838;0.010932;,
|
||||
0.078356;0.749985;0.002908;,
|
||||
0.099092;0.732472;0.001642;,
|
||||
0.099092;0.732474;0.001642;,
|
||||
0.097208;0.735170;0.085097;,
|
||||
0.060779;0.721941;0.101397;,
|
||||
0.060779;0.721943;0.101397;,
|
||||
0.099444;0.739917;0.082438;,
|
||||
0.003001;0.716018;0.103620;,
|
||||
0.003001;0.774590;0.090344;,
|
||||
0.003001;0.716020;0.103620;,
|
||||
0.003001;0.774592;0.090344;,
|
||||
0.080351;0.773887;0.089415;,
|
||||
0.099444;0.739917;0.082438;,
|
||||
0.086027;0.726140;0.025105;,
|
||||
0.099111;0.730688;0.070350;,
|
||||
0.075937;0.710260;0.005514;,
|
||||
0.075937;0.710260;0.005516;,
|
||||
0.098937;0.695764;0.048084;,
|
||||
0.092012;0.699542;0.013554;,
|
||||
0.088221;0.741329;-0.001190;,
|
||||
@@ -665,12 +665,12 @@ Frame Body {
|
||||
0.054436;0.862872;0.022493;,
|
||||
0.037554;0.890750;-0.035382;,
|
||||
0.056542;0.881930;0.008191;,
|
||||
0.041722;0.803414;0.044757;,
|
||||
0.041722;0.803416;0.044757;,
|
||||
0.038203;0.832609;0.042565;,
|
||||
0.073550;0.780661;0.036001;,
|
||||
0.041411;0.856797;0.043261;,
|
||||
0.003001;0.786893;0.009778;,
|
||||
0.003001;0.766016;-0.001631;,
|
||||
0.003001;0.786895;0.009778;,
|
||||
0.003001;0.766018;-0.001631;,
|
||||
0.003000;0.560132;-0.042926;,
|
||||
0.003000;0.501017;0.093877;,
|
||||
0.003000;0.466850;0.090836;,
|
||||
@@ -731,14 +731,14 @@ Frame Body {
|
||||
0.081770;0.725999;0.041575;,
|
||||
-0.065098;0.767838;0.010933;,
|
||||
-0.072355;0.749985;0.002908;,
|
||||
-0.030277;0.768316;0.008014;,
|
||||
-0.025067;0.792975;0.030676;,
|
||||
-0.082200;0.741359;-0.001179;,
|
||||
-0.030277;0.768318;0.008014;,
|
||||
-0.025067;0.792977;0.030676;,
|
||||
-0.082200;0.741361;-0.001179;,
|
||||
-0.087646;0.705681;0.000074;,
|
||||
-0.051006;0.709648;-0.030945;,
|
||||
-0.037920;0.742159;-0.015989;,
|
||||
-0.026034;0.804328;0.071721;,
|
||||
-0.043860;0.777581;0.096742;,
|
||||
-0.037920;0.742161;-0.015989;,
|
||||
-0.026034;0.804330;0.071721;,
|
||||
-0.043860;0.777583;0.096742;,
|
||||
-0.074320;0.773826;0.089454;,
|
||||
-0.068490;0.779919;0.060431;,
|
||||
-0.080349;0.554408;0.050999;,
|
||||
@@ -758,40 +758,40 @@ Frame Body {
|
||||
0.003000;0.648945;0.087562;,
|
||||
-0.054324;0.465391;-0.031056;,
|
||||
-0.088927;0.463876;0.005976;,
|
||||
-0.100042;0.364670;-0.005922;,
|
||||
-0.062120;0.366719;-0.034438;,
|
||||
-0.092726;0.271635;0.005407;,
|
||||
-0.063937;0.271610;-0.039039;,
|
||||
-0.005697;0.464388;-0.009326;,
|
||||
-0.014426;0.364675;-0.009170;,
|
||||
-0.020776;0.362587;0.066505;,
|
||||
-0.100040;0.364670;-0.005922;,
|
||||
-0.062118;0.366719;-0.034438;,
|
||||
-0.092724;0.271635;0.005407;,
|
||||
-0.063935;0.271610;-0.039039;,
|
||||
-0.005695;0.464388;-0.009326;,
|
||||
-0.014424;0.364675;-0.009170;,
|
||||
-0.020774;0.362587;0.066505;,
|
||||
-0.009105;0.443122;0.078928;,
|
||||
-0.036084;0.269479;0.001965;,
|
||||
-0.038932;0.273289;0.044034;,
|
||||
-0.100346;0.363959;0.058844;,
|
||||
-0.036082;0.269479;0.001965;,
|
||||
-0.038930;0.273289;0.044034;,
|
||||
-0.100344;0.363959;0.058844;,
|
||||
-0.083964;0.444600;0.064414;,
|
||||
-0.079593;0.276615;0.043732;,
|
||||
-0.079591;0.276615;0.043732;,
|
||||
-0.091698;-0.001439;0.054150;,
|
||||
-0.086989;-0.001546;0.099343;,
|
||||
-0.052132;-0.001523;0.099610;,
|
||||
-0.046802;-0.001416;0.051083;,
|
||||
-0.066396;0.216290;-0.007690;,
|
||||
-0.097743;0.219606;0.020971;,
|
||||
-0.096031;0.146039;0.033893;,
|
||||
-0.066862;0.143323;0.005213;,
|
||||
-0.066394;0.216290;-0.007690;,
|
||||
-0.097741;0.219606;0.020971;,
|
||||
-0.096029;0.146039;0.033893;,
|
||||
-0.066860;0.143323;0.005213;,
|
||||
-0.089401;0.067947;0.049201;,
|
||||
-0.069551;0.065871;0.020587;,
|
||||
-0.025335;0.200749;0.018327;,
|
||||
-0.037282;0.143765;0.030381;,
|
||||
-0.034294;0.157921;0.070690;,
|
||||
-0.026270;0.223284;0.069298;,
|
||||
-0.025333;0.200749;0.018327;,
|
||||
-0.037280;0.143765;0.030381;,
|
||||
-0.034292;0.157921;0.070690;,
|
||||
-0.026268;0.223284;0.069298;,
|
||||
-0.052897;0.059931;0.046017;,
|
||||
-0.056442;0.080015;0.071446;,
|
||||
-0.096389;0.157635;0.070650;,
|
||||
-0.098037;0.232140;0.068796;,
|
||||
-0.096387;0.157635;0.070650;,
|
||||
-0.098035;0.232140;0.068796;,
|
||||
-0.080510;0.085234;0.070856;,
|
||||
-0.087324;0.510227;0.015743;,
|
||||
-0.005697;0.464388;-0.009326;,
|
||||
-0.005695;0.464388;-0.009326;,
|
||||
-0.039026;0.503652;0.094107;,
|
||||
-0.089057;0.504967;0.070084;,
|
||||
-0.038080;0.459598;0.089765;,
|
||||
@@ -828,21 +828,21 @@ Frame Body {
|
||||
-0.135414;0.480749;0.029545;,
|
||||
-0.100380;0.575253;0.026866;,
|
||||
-0.123434;0.519123;0.026777;,
|
||||
-0.122737;0.521406;0.083949;,
|
||||
-0.122737;0.521406;0.083951;,
|
||||
-0.090493;0.575715;0.089013;,
|
||||
-0.135414;0.480749;0.029545;,
|
||||
-0.137105;0.480829;0.069148;,
|
||||
-0.148779;0.531620;0.087346;,
|
||||
-0.148779;0.531620;0.087348;,
|
||||
-0.144658;0.592077;0.097043;,
|
||||
-0.155744;0.480099;0.070269;,
|
||||
-0.140397;0.348686;0.020805;,
|
||||
-0.131319;0.362846;0.065438;,
|
||||
-0.115387;0.377430;0.063290;,
|
||||
-0.124323;0.363455;0.018085;,
|
||||
-0.133852;0.399534;-0.002919;,
|
||||
-0.144457;0.400414;-0.007700;,
|
||||
-0.147015;0.392337;0.004524;,
|
||||
-0.136089;0.391096;0.004124;,
|
||||
-0.140397;0.348686;0.020803;,
|
||||
-0.131319;0.362846;0.065436;,
|
||||
-0.115387;0.377430;0.063288;,
|
||||
-0.124323;0.363455;0.018083;,
|
||||
-0.133852;0.399534;-0.002921;,
|
||||
-0.144457;0.400414;-0.007702;,
|
||||
-0.147015;0.392337;0.004522;,
|
||||
-0.136089;0.391096;0.004122;,
|
||||
-0.121774;0.450949;0.066578;,
|
||||
-0.126902;0.450951;0.017122;,
|
||||
-0.143787;0.420631;0.019234;,
|
||||
@@ -856,24 +856,24 @@ Frame Body {
|
||||
-0.067548;0.780661;0.036002;,
|
||||
-0.068490;0.779919;0.060431;,
|
||||
-0.090797;0.692389;0.080223;,
|
||||
-0.035720;0.803414;0.044757;,
|
||||
-0.035720;0.803416;0.044757;,
|
||||
-0.096356;0.760782;0.007129;,
|
||||
-0.093086;0.732827;0.001569;,
|
||||
-0.093086;0.732829;0.001569;,
|
||||
-0.072355;0.749985;0.002908;,
|
||||
-0.065098;0.767838;0.010933;,
|
||||
-0.091237;0.734923;0.085124;,
|
||||
-0.093482;0.739656;0.082462;,
|
||||
-0.054777;0.721941;0.101397;,
|
||||
0.003001;0.716018;0.103620;,
|
||||
0.003001;0.774590;0.090344;,
|
||||
-0.091237;0.734925;0.085124;,
|
||||
-0.093482;0.739658;0.082462;,
|
||||
-0.054777;0.721943;0.101397;,
|
||||
0.003001;0.716020;0.103620;,
|
||||
0.003001;0.774592;0.090344;,
|
||||
-0.074320;0.773826;0.089454;,
|
||||
-0.093482;0.739656;0.082462;,
|
||||
-0.093482;0.739658;0.082462;,
|
||||
-0.080018;0.726113;0.025117;,
|
||||
-0.070654;0.710276;0.004877;,
|
||||
-0.093151;0.730476;0.070359;,
|
||||
-0.086012;0.699542;0.013555;,
|
||||
-0.092937;0.695764;0.048085;,
|
||||
-0.082200;0.741359;-0.001179;,
|
||||
-0.082200;0.741361;-0.001179;,
|
||||
-0.098287;0.695337;0.064251;,
|
||||
-0.126902;0.450951;0.017122;,
|
||||
-0.032203;0.832609;0.042565;,
|
||||
@@ -881,17 +881,17 @@ Frame Body {
|
||||
0.003000;0.840662;0.071276;,
|
||||
0.003124;0.805445;0.076533;,
|
||||
-0.161117;0.411811;0.023523;,
|
||||
-0.140397;0.348686;0.020805;,
|
||||
-0.131319;0.362846;0.065438;,
|
||||
-0.152463;0.417909;-0.002560;,
|
||||
-0.126783;0.417814;0.000827;,
|
||||
-0.126783;0.417814;0.000827;,
|
||||
-0.133509;0.407190;0.013422;,
|
||||
-0.156836;0.412985;0.018714;,
|
||||
-0.156836;0.412985;0.018714;,
|
||||
-0.144457;0.400414;-0.007700;,
|
||||
-0.133852;0.399534;-0.002919;,
|
||||
-0.147015;0.392337;0.004524;,
|
||||
-0.140397;0.348686;0.020803;,
|
||||
-0.131319;0.362846;0.065436;,
|
||||
-0.152463;0.417909;-0.002562;,
|
||||
-0.126783;0.417814;0.000825;,
|
||||
-0.126783;0.417814;0.000825;,
|
||||
-0.133509;0.407190;0.013420;,
|
||||
-0.156836;0.412985;0.018712;,
|
||||
-0.156836;0.412985;0.018712;,
|
||||
-0.144457;0.400414;-0.007702;,
|
||||
-0.133852;0.399534;-0.002921;,
|
||||
-0.147015;0.392337;0.004522;,
|
||||
-0.097939;0.020227;-0.022684;,
|
||||
-0.103498;-0.001398;-0.029921;,
|
||||
-0.067684;-0.001386;-0.067431;,
|
||||
@@ -912,10 +912,10 @@ Frame Body {
|
||||
-0.032744;-0.001375;-0.056977;,
|
||||
-0.032744;-0.001375;-0.056977;,
|
||||
-0.103498;-0.001398;-0.029921;,
|
||||
-0.014426;0.364675;-0.009170;,
|
||||
-0.036084;0.269479;0.001965;,
|
||||
-0.025335;0.200749;0.018327;,
|
||||
-0.037282;0.143765;0.030381;,
|
||||
-0.014424;0.364675;-0.009170;,
|
||||
-0.036082;0.269479;0.001965;,
|
||||
-0.025333;0.200749;0.018327;,
|
||||
-0.037280;0.143765;0.030381;,
|
||||
-0.052897;0.059931;0.046017;,
|
||||
-0.052897;0.059931;0.046017;,
|
||||
-0.043110;0.834970;0.022229;,
|
||||
@@ -968,7 +968,7 @@ Frame Body {
|
||||
-0.031554;0.890750;-0.035382;,
|
||||
-0.050542;0.881930;0.008191;,
|
||||
-0.032203;0.832609;0.042565;,
|
||||
-0.035720;0.803414;0.044757;,
|
||||
-0.035720;0.803416;0.044757;,
|
||||
-0.067548;0.780661;0.036002;,
|
||||
-0.035411;0.856798;0.043261;,
|
||||
0.003000;0.501017;0.093877;,
|
||||
@@ -991,7 +991,7 @@ Frame Body {
|
||||
-0.093151;0.730476;0.070359;,
|
||||
-0.075749;0.725892;0.041615;,
|
||||
-0.080018;0.726113;0.025117;,
|
||||
-0.082200;0.741359;-0.001179;,
|
||||
-0.082200;0.741361;-0.001179;,
|
||||
-0.046953;0.905585;0.050786;,
|
||||
-0.022283;0.221867;-0.025042;,
|
||||
-0.031137;0.145709;-0.014293;,
|
||||
@@ -1009,22 +1009,22 @@ Frame Body {
|
||||
0.000202;0.081122;-0.017729;,
|
||||
-0.032460;0.079208;0.107119;,
|
||||
-0.080496;0.085235;0.070858;,
|
||||
-0.096389;0.157635;0.070650;,
|
||||
-0.096387;0.157635;0.070650;,
|
||||
-0.033442;0.153646;0.095452;,
|
||||
-0.098037;0.232140;0.068796;,
|
||||
-0.034325;0.221278;0.084522;,
|
||||
-0.031602;0.274781;0.078110;,
|
||||
-0.079593;0.276615;0.043732;,
|
||||
-0.100346;0.363959;0.058844;,
|
||||
-0.019390;0.361877;0.083941;,
|
||||
-0.098035;0.232140;0.068796;,
|
||||
-0.034323;0.221278;0.084522;,
|
||||
-0.031600;0.274781;0.078110;,
|
||||
-0.079591;0.276615;0.043732;,
|
||||
-0.100344;0.363959;0.058844;,
|
||||
-0.019388;0.361877;0.083941;,
|
||||
0.003000;0.466850;0.090836;,
|
||||
-0.038080;0.459598;0.089765;,
|
||||
-0.075749;0.725892;0.041615;,
|
||||
-0.054324;0.465391;-0.031056;,
|
||||
-0.062120;0.366719;-0.034438;,
|
||||
-0.063937;0.271610;-0.039039;,
|
||||
-0.066396;0.216290;-0.007690;,
|
||||
-0.066862;0.143323;0.005213;,
|
||||
-0.062118;0.366719;-0.034438;,
|
||||
-0.063935;0.271610;-0.039039;,
|
||||
-0.066394;0.216290;-0.007690;,
|
||||
-0.066860;0.143323;0.005213;,
|
||||
-0.069551;0.065871;0.020587;,
|
||||
0.103490;0.362763;0.058066;,
|
||||
0.043737;0.459563;0.089666;,
|
||||
@@ -2010,7 +2010,7 @@ Frame Body {
|
||||
0.961585;-0.177193;-0.209658;,
|
||||
-0.999397;0.033079;0.010577;,
|
||||
-0.459617;0.257576;0.849945;,
|
||||
-0.682723;-0.111471;0.722124;,
|
||||
-0.682722;-0.111471;0.722125;,
|
||||
-0.978758;-0.185795;0.086682;,
|
||||
-0.826095;-0.149041;0.543465;,
|
||||
-0.965224;-0.115181;0.234681;,
|
||||
@@ -2138,7 +2138,7 @@ Frame Body {
|
||||
0.677150;0.160075;0.718223;,
|
||||
0.990819;0.073898;0.113215;,
|
||||
0.121059;0.855801;-0.502940;,
|
||||
0.933202;0.358001;-0.031133;,
|
||||
0.933202;0.358001;-0.031135;,
|
||||
-0.627127;0.461638;-0.627377;,
|
||||
-0.860032;0.456099;-0.228732;,
|
||||
-0.000328;-1.000000;-0.000308;,
|
||||
@@ -2146,7 +2146,7 @@ Frame Body {
|
||||
-0.443922;-0.068516;-0.893442;,
|
||||
-0.724820;-0.051916;-0.686979;,
|
||||
-0.594439;-0.231924;-0.769970;,
|
||||
-0.689851;-0.228381;-0.686984;,
|
||||
-0.689852;-0.228381;-0.686983;,
|
||||
-0.785319;-0.240066;-0.570651;,
|
||||
-0.874839;0.462767;-0.143189;,
|
||||
0.062917;-0.968699;-0.240131;,
|
||||
@@ -2381,11 +2381,11 @@ Frame Body {
|
||||
0.036996;-0.986471;0.159705;,
|
||||
0.701094;-0.707032;0.092590;,
|
||||
0.756356;0.026337;0.653630;,
|
||||
0.962819;-0.195704;0.186225;,
|
||||
0.935898;-0.351633;-0.021194;,
|
||||
0.962819;-0.195704;0.186223;,
|
||||
0.935898;-0.351633;-0.021196;,
|
||||
0.827126;0.095610;0.553824;,
|
||||
-0.637238;-0.197838;0.744841;,
|
||||
-0.745288;0.007857;0.666697;,
|
||||
-0.637237;-0.197840;0.744841;,
|
||||
-0.745287;0.007855;0.666698;,
|
||||
-0.830051;0.144789;-0.538564;,
|
||||
-0.976775;-0.202541;-0.069908;,
|
||||
-0.723332;0.609303;0.324870;,
|
||||
@@ -2412,7 +2412,7 @@ Frame Body {
|
||||
-0.945712;0.178206;-0.271792;,
|
||||
0.919506;0.368350;0.137211;,
|
||||
-0.998656;-0.019605;0.047970;,
|
||||
-0.096894;0.388798;-0.916214;,
|
||||
-0.096896;0.388798;-0.916214;,
|
||||
-0.924006;0.061242;0.377441;,
|
||||
-0.646312;0.058203;0.760850;,
|
||||
-0.313381;0.017355;0.949469;,
|
||||
@@ -2421,13 +2421,13 @@ Frame Body {
|
||||
-0.902236;-0.342997;0.261386;,
|
||||
-0.209258;-0.230513;0.950303;,
|
||||
-0.359565;0.188462;-0.913890;,
|
||||
0.049290;0.410911;-0.910342;,
|
||||
0.049288;0.410912;-0.910342;,
|
||||
0.899157;-0.185837;0.396209;,
|
||||
0.434062;-0.323438;0.840820;,
|
||||
0.250157;-0.624900;0.739542;,
|
||||
-0.893129;-0.228413;-0.387489;,
|
||||
-0.709484;-0.061721;-0.702013;,
|
||||
0.271647;0.293034;-0.916700;,
|
||||
-0.709485;-0.061721;-0.702012;,
|
||||
0.271646;0.293035;-0.916700;,
|
||||
-0.919897;-0.209954;-0.331223;,
|
||||
-0.866705;0.393518;-0.306539;,
|
||||
-0.904270;0.325087;-0.276793;,
|
||||
@@ -8752,25 +8752,25 @@ AnimationSet Bob_FH_Item {
|
||||
|
||||
{ Bip01_Prop1 }
|
||||
|
||||
AnimationKey R {
|
||||
AnimationKey {
|
||||
0;
|
||||
2;
|
||||
0;4;0.396751,0.555883,0.577866,0.446826;;,
|
||||
3200;4;0.396751,0.555883,0.577866,0.446826;;;
|
||||
2400;4;0.396751,0.555883,0.577866,0.446826;;;
|
||||
}
|
||||
|
||||
AnimationKey S {
|
||||
AnimationKey {
|
||||
1;
|
||||
2;
|
||||
0;3;1.000000,1.000000,1.000000;;,
|
||||
3200;3;1.000000,1.000000,1.000000;;;
|
||||
0;3;1.000000,0.999999,1.000000;;,
|
||||
2400;3;1.000000,0.999999,1.000000;;;
|
||||
}
|
||||
|
||||
AnimationKey T {
|
||||
AnimationKey {
|
||||
2;
|
||||
2;
|
||||
0;3;-0.043693,-0.107672,-0.128372;;,
|
||||
2400;3;-0.043693,-0.107672,-0.128372;;;
|
||||
0;3;-0.043693,-0.079872,-0.128372;;,
|
||||
2400;3;-0.043693,-0.079872,-0.128372;;;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
9128
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_Idle_CarRepair.x
Executable file
9128
FancyHandwork/Contents/mods/FancyHandwork/media/anims_X/Bob/Bob_Idle_CarRepair.x
Executable file
File diff suppressed because it is too large
Load Diff
@@ -5,9 +5,8 @@
|
||||
|
||||
-- Override on GameStart
|
||||
local function doOverride()
|
||||
-- SwapIt is better, I'd rather use their features than mine.
|
||||
---- Hopefully we can get compatibility. :)
|
||||
if getActivatedMods():contains('SwapIt') then print("Not overriding because SwapIt is enabled!") return end
|
||||
-- SwapIt support was merged! :D Use that if installed
|
||||
if getActivatedMods():contains('SwapIt') then return end
|
||||
|
||||
local _ISHotbar_equipItem = ISHotbar.equipItem
|
||||
|
||||
|
||||
@@ -1,187 +0,0 @@
|
||||
------------------------------------------
|
||||
-- Fancy Handwork Init
|
||||
------------------------------------------
|
||||
|
||||
FancyHands = FancyHands or {}
|
||||
|
||||
------------------------------------------
|
||||
-- Fancy Handwork Configuration
|
||||
------------------------------------------
|
||||
|
||||
FancyHands.config = {
|
||||
applyRotationL = true
|
||||
}
|
||||
|
||||
------------------------------------------
|
||||
-- Fancy Handwork Utilities
|
||||
------------------------------------------
|
||||
|
||||
function isFHModKeyDown()
|
||||
return isKeyDown(getCore():getKey('FHModifier'))
|
||||
end
|
||||
|
||||
local count = 0
|
||||
|
||||
local FH_OnTick = function()
|
||||
if not FancyHands.config.applyRotationL then return end
|
||||
-- Control to not get spammed
|
||||
count = count + 1
|
||||
if count % 30 ~= 0 then return end
|
||||
count = 0
|
||||
|
||||
-- First figure out the local player's stuff
|
||||
local player = getSpecificPlayer(0)
|
||||
if not player:getModData().FancyHandwork then
|
||||
player:getModData().FancyHandwork = {}
|
||||
end
|
||||
for vari, val in pairs(player:getModData().FancyHandwork) do
|
||||
player:setVariable(vari, val)
|
||||
end
|
||||
if isClient() then
|
||||
ModData.request("animapi")
|
||||
local md = ModData.getOrCreate("animapi")
|
||||
for id, obj in pairs(md) do
|
||||
local p = getPlayerByOnlineID(id)
|
||||
|
||||
if p and p ~= player then
|
||||
for vari, val in pairs(obj) do
|
||||
if val == "nil" then
|
||||
p:clearVariable(vari)
|
||||
else
|
||||
p:setVariable(vari, val)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local FH_OnCreatePlayer = function(playerNum, playerObj)
|
||||
if isClient() then
|
||||
ModData.request("animapi")
|
||||
if not ModData.getOrCreate("animapi")[playerObj:getOnlineID()] then
|
||||
ModData.getOrCreate("animapi")[playerObj:getOnlineID()]= {}
|
||||
end
|
||||
ModData.transmit("animapi")
|
||||
end
|
||||
if not playerObj:getModData().FancyHandwork then
|
||||
playerObj:getModData().FancyHandwork = {}
|
||||
end
|
||||
end
|
||||
|
||||
local FHswapItems = function(character)
|
||||
local primary = character:getPrimaryHandItem()
|
||||
local secondary = character:getSecondaryHandItem()
|
||||
if (primary or secondary) and (primary ~= secondary) then
|
||||
ISTimedActionQueue.add(FHSwapHandsAction:new(character, primary, secondary, 10))
|
||||
end
|
||||
end
|
||||
|
||||
local FHswapItemsMod = function(character)
|
||||
if isFHModKeyDown() then
|
||||
FHswapItems(character)
|
||||
end
|
||||
end
|
||||
|
||||
local FHDebugKey = function(character)
|
||||
if isFHModKeyDown() then
|
||||
character:Say("I'm not sure what to do with my hands.")
|
||||
--ISTimedActionQueue.add(FHHamboneAction:new(character))
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
local FHcreateBindings = function()
|
||||
local FHbindings = {
|
||||
{
|
||||
value = '[FancyHandwork]'
|
||||
},
|
||||
{
|
||||
value = 'FHModifier',
|
||||
key = Keyboard.KEY_LCONTROL,
|
||||
},
|
||||
{
|
||||
value = 'FHSwapKey',
|
||||
action = FHswapItems,
|
||||
key = 0,
|
||||
},
|
||||
{
|
||||
value = 'FHSwapKeyMod',
|
||||
action = FHswapItemsMod,
|
||||
key = Keyboard.KEY_E,
|
||||
},
|
||||
-- {
|
||||
-- value = 'FHDebugKey',
|
||||
-- action = FHDebugKey,
|
||||
-- key = Keyboard.KEY_Y,
|
||||
-- }
|
||||
}
|
||||
|
||||
for _, bind in ipairs(FHbindings) do
|
||||
if bind.key or not bind.action then
|
||||
table.insert(keyBinding, { value = bind.value, key = bind.key })
|
||||
end
|
||||
end
|
||||
|
||||
local FHhandleKeybinds = function(key)
|
||||
local player = getSpecificPlayer(0)
|
||||
local action
|
||||
for _,bind in ipairs(FHbindings) do
|
||||
if key == getCore():getKey(bind.value) then
|
||||
action = bind.action
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if not action or isGamePaused() or not player or player:isDead() then
|
||||
return
|
||||
end
|
||||
|
||||
action(player)
|
||||
end
|
||||
|
||||
Events.OnGameStart.Add(function()
|
||||
Events.OnKeyPressed.Add(FHhandleKeybinds)
|
||||
end)
|
||||
|
||||
end
|
||||
|
||||
local function FancyHandwork()
|
||||
FHcreateBindings()
|
||||
|
||||
if ModOptions and ModOptions.getInstance then
|
||||
local function apply(data)
|
||||
local values = data.settings.options
|
||||
FancyHands.config.applyRotationL = values.applyRotationL
|
||||
end
|
||||
|
||||
local FHCONFIG = {
|
||||
options_data = {
|
||||
applyRotationL = {
|
||||
default = true,
|
||||
name = getText("UI_ModOptions_FHfixLHandRotation"),
|
||||
OnApplyMainMenu = apply,
|
||||
OnApplyInGame = apply
|
||||
}
|
||||
},
|
||||
mod_id = "FancyHandwork",
|
||||
mod_shortname = "FH",
|
||||
mod_fullname = getText("UI_optionscreen_binding_FancyHandwork"),
|
||||
mod_version = "1.0"
|
||||
}
|
||||
|
||||
local optionsInstance = ModOptions:getInstance(FHCONFIG)
|
||||
ModOptions:loadFile()
|
||||
|
||||
Events.OnGameStart.Add(function()
|
||||
apply({settings = FHCONFIG})
|
||||
end)
|
||||
end
|
||||
|
||||
Events.OnCreatePlayer.Add(FH_OnCreatePlayer)
|
||||
Events.OnTick.Add(FH_OnTick)
|
||||
|
||||
print(getText("UI_Init_FancyHandwork"))
|
||||
end
|
||||
|
||||
FancyHandwork()
|
||||
@@ -5,49 +5,19 @@
|
||||
local _ISAttachItemHotbar_start = ISAttachItemHotbar.start
|
||||
function ISAttachItemHotbar:start()
|
||||
_ISAttachItemHotbar_start(self)
|
||||
|
||||
self.mdata = {}
|
||||
if isClient() then
|
||||
local md = ModData.getOrCreate("animapi")
|
||||
if not md[self.character:getOnlineID()] then
|
||||
md[self.character:getOnlineID()] = {}
|
||||
end
|
||||
self.mdata = md[self.character:getOnlineID()]
|
||||
end
|
||||
|
||||
self.FHIgnore = true
|
||||
self:setActionAnim("AttachItem")
|
||||
if self.item == self.character:getPrimaryHandItem() then
|
||||
self.character:clearVariable("FHAnimHand")
|
||||
self.mdata["FHAnimHand"] = nil
|
||||
self:setOverrideHandModels(self.item, self.character:getSecondaryHandItem())
|
||||
elseif self.item == self.character:getSecondaryHandItem() then
|
||||
self.character:setVariable("FHAnimHand", "left")
|
||||
self.mdata["FHAnimHand"] = "left"
|
||||
self:setAnimVariable("FHAnimHand", "left")
|
||||
self:setOverrideHandModels(self.character:getPrimaryHandItem(), self.item)
|
||||
else
|
||||
if ZombRand(3) == 1 then
|
||||
self.character:setVariable("FHAnimHand", "left")
|
||||
self.mdata["FHAnimHand"] = "left"
|
||||
self:setAnimVariable("FHAnimHand", "left")
|
||||
self:setOverrideHandModels(self.character:getPrimaryHandItem(), self.item)
|
||||
else
|
||||
self.character:clearVariable("FHAnimHand")
|
||||
self.mdata["FHAnimHand"] = nil
|
||||
self:setOverrideHandModels(self.item, self.character:getSecondaryHandItem())
|
||||
end
|
||||
end
|
||||
|
||||
if isClient() then
|
||||
ModData.transmit("animapi")
|
||||
end
|
||||
end
|
||||
|
||||
local _ISAttachItemHotbar_animEvent = ISAttachItemHotbar.animEvent
|
||||
function ISAttachItemHotbar:animEvent(event, parameter)
|
||||
_ISAttachItemHotbar_animEvent(self, event, parameter)
|
||||
if event == 'attachConnect' then
|
||||
self.character:clearVariable("FHAnimHand")
|
||||
self.mdata["FHAnimHand"] = nil
|
||||
if isClient() then
|
||||
ModData.transmit("animapi")
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -7,42 +7,24 @@ local _ISDetachItemHotbar_start = ISDetachItemHotbar.start
|
||||
function ISDetachItemHotbar:start()
|
||||
-- Run the base, then override
|
||||
_ISDetachItemHotbar_start(self)
|
||||
|
||||
self.mdata = {}
|
||||
if isClient() then
|
||||
local md = ModData.getOrCreate("animapi")
|
||||
if not md[self.character:getOnlineID()] then
|
||||
md[self.character:getOnlineID()] = {}
|
||||
end
|
||||
self.mdata = md[self.character:getOnlineID()]
|
||||
end
|
||||
|
||||
self.FHIgnore = true
|
||||
if self.item == self.character:getPrimaryHandItem() then
|
||||
self.character:clearVariable("FHAnimHand")
|
||||
self:setOverrideHandModels(self.item, self.character:getSecondaryHandItem())
|
||||
self.mdata["FHAnimHand"] = nil
|
||||
elseif self.item == self.character:getSecondaryHandItem() then
|
||||
self.character:setVariable("FHAnimHand", "left")
|
||||
self:setAnimVariable("FHAnimHand", "left")
|
||||
self:setOverrideHandModels(self.character:getPrimaryHandItem(), self.item)
|
||||
self.mdata["FHAnimHand"] = "left"
|
||||
else
|
||||
if ZombRand(3) == 1 then
|
||||
self.character:setVariable("FHAnimHand", "left")
|
||||
self:setAnimVariable("FHAnimHand", "left")
|
||||
self:setOverrideHandModels(self.character:getPrimaryHandItem(), self.item)
|
||||
self.mdata["FHAnimHand"] = "left"
|
||||
else
|
||||
self.character:clearVariable("FHAnimHand")
|
||||
self:setOverrideHandModels(self.item, self.character:getSecondaryHandItem())
|
||||
self.mdata["FHAnimHand"] = nil
|
||||
end
|
||||
end
|
||||
|
||||
local hotbar = getPlayerHotbar(self.character:getPlayerNum())
|
||||
hotbar.chr:removeAttachedItem(self.item)
|
||||
|
||||
if isClient() then
|
||||
ModData.transmit("animapi")
|
||||
end
|
||||
end
|
||||
|
||||
local _ISDetachItemHotbar_animEvent = ISDetachItemHotbar.animEvent
|
||||
@@ -52,28 +34,13 @@ function ISDetachItemHotbar:animEvent(event, parameter)
|
||||
-- Fix the models
|
||||
if event == 'detachConnect' then
|
||||
-- Fix updating the inventory
|
||||
self.character:getInventory():setDrawDirty(true)
|
||||
--self.character:getInventory():setDrawDirty(true)
|
||||
getPlayerData(self.character:getPlayerNum()).playerInventory:refreshBackpacks()
|
||||
--self.character:getInventory():refreshBackpacks()
|
||||
|
||||
if self.character:getPrimaryHandItem() == self.character:getSecondaryHandItem() then -- special case if 2handed
|
||||
if self.animHand == "left" then
|
||||
self:setOverrideHandModels(self.character:getPrimaryHandItem(), self.item)
|
||||
else
|
||||
self:setOverrideHandModels(self.item, self.character:getSecondaryHandItem())
|
||||
end
|
||||
if self.animHand == "left" then
|
||||
self:setOverrideHandModels(self.character:getPrimaryHandItem(), self.item)
|
||||
else
|
||||
if self.animHand == "left" then
|
||||
self:setOverrideHandModels(self.character:getPrimaryHandItem(), self.item)
|
||||
else
|
||||
self:setOverrideHandModels(self.item, self.character:getSecondaryHandItem())
|
||||
end
|
||||
self:setOverrideHandModels(self.item, self.character:getSecondaryHandItem())
|
||||
end
|
||||
end
|
||||
|
||||
self.character:clearVariable("FHAnimHand")
|
||||
self.mdata["FHAnimHand"] = nil
|
||||
if isClient() then
|
||||
ModData.transmit("animapi")
|
||||
end
|
||||
end
|
||||
@@ -9,76 +9,29 @@ function ISEquipWeaponAction:start()
|
||||
-- So, items in your other hand are unequiped if a handgun is equipped
|
||||
--- i.e. a handgun in primary hand will be unequiped if a secondary item is equipped and vice versa
|
||||
--- this should restore this feature. First, we cache the weapon if needed
|
||||
self.hgun = nil
|
||||
if instanceof(self.item, "HandWeapon") and not self.twoHands then
|
||||
if self.primary then
|
||||
self.hgun = self.character:getSecondaryHandItem()
|
||||
else
|
||||
self.hgun = self.character:getPrimaryHandItem()
|
||||
end
|
||||
if instanceof(self.item, "HandWeapon") and not self.twoHands and self.character:getPrimaryHandItem() ~= self.character:getSecondaryHandItem() and self.item ~= self.character:getPrimaryHandItem() and self.item ~= self.character:getSecondaryHandItem() then
|
||||
self.hgun = (self.primary and self.character:getSecondaryHandItem()) or self.character:getPrimaryHandItem()
|
||||
end
|
||||
|
||||
-- Run the base, then override
|
||||
_ISEquipWeaponAction_start(self)
|
||||
|
||||
self.mdata = {}
|
||||
if isClient() then
|
||||
local md = ModData.getOrCreate("animapi")
|
||||
if not md[self.character:getOnlineID()] then
|
||||
md[self.character:getOnlineID()] = {}
|
||||
end
|
||||
self.mdata = md[self.character:getOnlineID()]
|
||||
end
|
||||
|
||||
self.FHIgnore = true
|
||||
-- Check if in second hand or not two handed and use left hand, default is primary hand
|
||||
if not self.primary and not self.twoHands then
|
||||
self.character:setVariable("FHAnimHand", "left")
|
||||
self.mdata["FHAnimHand"] = "left"
|
||||
self:setAnimVariable("FHAnimHand", "left")
|
||||
self.LHand = true
|
||||
|
||||
if instanceof(self.item, "HandWeapon") then
|
||||
if self.item:isRanged() then
|
||||
self.character:setVariable("LeftHandMask", "holdinghgunleft")
|
||||
self.mdata["LeftHandMask"] = "holdinghgunleft"
|
||||
self.character:getModData().FancyHandwork["LeftHandMask"] = "holdinghgunleft"
|
||||
else
|
||||
self.character:setVariable("LeftHandMask", "holdingitemleft")
|
||||
self.mdata["LeftHandMask"] = "holdingitemleft"
|
||||
self.character:getModData().FancyHandwork["LeftHandMask"] = "holdingitemleft"
|
||||
end
|
||||
else
|
||||
self.character:clearVariable("LeftHandMask")
|
||||
self.mdata["LeftHandMask"] = "nil"
|
||||
self.character:getModData().FancyHandwork["LeftHandMask"] = nil
|
||||
end
|
||||
|
||||
if self.fromHotbar then
|
||||
self:setOverrideHandModels(self.character:getPrimaryHandItem(), self.item)
|
||||
end
|
||||
else
|
||||
self.character:clearVariable("FHAnimHand")
|
||||
self.mdata["FHAnimHand"] = "nil"
|
||||
self.character:getModData().FancyHandwork["FHAnimHand"] = nil
|
||||
|
||||
if self.fromHotbar and not self.twoHands then
|
||||
self:setOverrideHandModels(self.item, self.character:getSecondaryHandItem())
|
||||
end
|
||||
|
||||
if self.twoHands or not self.character:getSecondaryHandItem() then
|
||||
self.character:clearVariable("LeftHandMask")
|
||||
self.mdata["LeftHandMask"] = "nil"
|
||||
self.character:getModData().FancyHandwork["LeftHandMask"] = nil
|
||||
end
|
||||
end
|
||||
|
||||
if self.fromHotbar then
|
||||
local hotbar = getPlayerHotbar(self.character:getPlayerNum())
|
||||
hotbar.chr:removeAttachedItem(self.item)
|
||||
end
|
||||
|
||||
if isClient() then
|
||||
ModData.transmit("animapi")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local _ISEquipWeaponAction_perform = ISEquipWeaponAction.perform
|
||||
@@ -94,11 +47,11 @@ function ISEquipWeaponAction:perform()
|
||||
self.character:setPrimaryHandItem(self.hgun)
|
||||
end
|
||||
end
|
||||
|
||||
-- Fix the models, idk why they always blank out the secondary item. :(
|
||||
|
||||
-- Fix the models, idk why they always blank out the secondary item. :(
|
||||
if self.fromHotbar and not self.twoHands then
|
||||
if self.LHand then
|
||||
self:setOverrideHandModels(self.character:getPrimaryHandItem(), self.item)
|
||||
self:setOverrideHandModels(self.character:getPrimaryHandItem(), self.item)
|
||||
else
|
||||
self:setOverrideHandModels(self.item, self.character:getSecondaryHandItem())
|
||||
end
|
||||
|
||||
@@ -10,11 +10,7 @@ require "TimedActions/ISBaseTimedAction"
|
||||
FHSwapHandsAction = ISBaseTimedAction:derive("FHSwapHandsAction")
|
||||
|
||||
function FHSwapHandsAction:isValid()
|
||||
if self.character:getPrimaryHandItem() or self.character:getSecondaryHandItem() then
|
||||
return true
|
||||
else
|
||||
return false
|
||||
end
|
||||
return ((self.character:getPrimaryHandItem() or self.character:getSecondaryHandItem()) ~= nil)
|
||||
end
|
||||
|
||||
function FHSwapHandsAction:update()
|
||||
@@ -28,30 +24,21 @@ end
|
||||
|
||||
function FHSwapHandsAction:start()
|
||||
local sound = nil
|
||||
self.FHIgnore = true
|
||||
if self.itemL then
|
||||
self.itemL:setJobType(getText("ContextMenu_Equip_Primary") .. " " .. self.itemL:getName())
|
||||
self.itemL:setJobDelta(0.0)
|
||||
sound = self.itemL:getUnequipSound()
|
||||
end
|
||||
if self.itemR then
|
||||
self.itemR:setJobType(getText("ContextMenu_Equip_Secondary") .. " " .. self.itemR:getName())
|
||||
self.itemR:setJobDelta(0.0)
|
||||
if not sound then
|
||||
sound = self.itemR:getUnequipSound()
|
||||
end
|
||||
end
|
||||
self:setActionAnim("EquipItem")
|
||||
self:setOverrideHandModels(self.itemR, self.itemL)
|
||||
|
||||
if sound then
|
||||
self.sound = self.character:getEmitter():playSound(sound)
|
||||
end
|
||||
end
|
||||
|
||||
function FHSwapHandsAction:stop()
|
||||
if self.sound then
|
||||
self.character:getEmitter():stopSound(self.sound)
|
||||
end
|
||||
if self.itemL then
|
||||
self.itemL:setJobDelta(0.0)
|
||||
end
|
||||
@@ -62,10 +49,6 @@ function FHSwapHandsAction:stop()
|
||||
end
|
||||
|
||||
function FHSwapHandsAction:perform()
|
||||
if self.sound then
|
||||
self.character:getEmitter():stopSound(self.sound)
|
||||
end
|
||||
|
||||
if self.itemL then
|
||||
self.itemL:getContainer():setDrawDirty(true)
|
||||
self.itemL:setJobDelta(0.0)
|
||||
@@ -75,43 +58,8 @@ function FHSwapHandsAction:perform()
|
||||
self.itemR:setJobDelta(0.0)
|
||||
end
|
||||
|
||||
self.character:setPrimaryHandItem(nil)
|
||||
self.character:setSecondaryHandItem(nil)
|
||||
|
||||
self.mdata = {}
|
||||
if isClient() then
|
||||
local md = ModData.getOrCreate("animapi")
|
||||
if not md[self.character:getOnlineID()] then
|
||||
md[self.character:getOnlineID()] = {}
|
||||
end
|
||||
self.mdata = md[self.character:getOnlineID()]
|
||||
end
|
||||
|
||||
if self.itemL then
|
||||
self.character:setPrimaryHandItem(self.itemL)
|
||||
end
|
||||
|
||||
if self.itemR and FancyHands.config.applyRotationL then
|
||||
self.character:setSecondaryHandItem(self.itemR)
|
||||
if self.itemR:isRanged() then
|
||||
self.character:setVariable("LeftHandMask", "holdinghgunleft")
|
||||
self.mdata["LeftHandMask"] = "holdinghgunleft"
|
||||
self.character:getModData().FancyHandwork["LeftHandMask"] = "holdinghgunleft"
|
||||
else
|
||||
self.character:setVariable("LeftHandMask", "holdingitemleft")
|
||||
self.mdata["LeftHandMask"] = "holdingitemleft"
|
||||
self.character:getModData().FancyHandwork["LeftHandMask"] = "holdingitemleft"
|
||||
end
|
||||
else
|
||||
self.mdata["LeftHandMask"] = "nil"
|
||||
self.character:getModData().FancyHandwork["LeftHandMask"] = nil
|
||||
end
|
||||
|
||||
if isClient() then
|
||||
ModData.transmit("animapi")
|
||||
end
|
||||
|
||||
getPlayerInventory(self.character:getPlayerNum()):refreshBackpacks()
|
||||
self.character:setPrimaryHandItem(self.itemL)
|
||||
self.character:setSecondaryHandItem(self.itemR)
|
||||
|
||||
-- needed to remove from queue / start next.
|
||||
ISBaseTimedAction.perform(self);
|
||||
|
||||
@@ -6,37 +6,18 @@ local _ISUnequipAction_start = ISUnequipAction.start
|
||||
function ISUnequipAction:start()
|
||||
-- Run the base, then override
|
||||
_ISUnequipAction_start(self)
|
||||
|
||||
self.mdata = {}
|
||||
if isClient() then
|
||||
local md = ModData.getOrCreate("animapi")
|
||||
if not md[self.character:getOnlineID()] then
|
||||
md[self.character:getOnlineID()] = {}
|
||||
end
|
||||
self.mdata = md[self.character:getOnlineID()]
|
||||
end
|
||||
|
||||
self.FHIgnore = true
|
||||
-- Check for second hand item that's not 2-handed, use left hand
|
||||
-- else use right
|
||||
if self.item == self.character:getSecondaryHandItem() and self.character:getPrimaryHandItem() ~= self.character:getSecondaryHandItem() then
|
||||
self.character:setVariable("FHAnimHand", "left")
|
||||
self.mdata["FHAnimHand"] = "left"
|
||||
self:setAnimVariable("FHAnimHand", "left")
|
||||
|
||||
if self.fromHotbar then
|
||||
self:setOverrideHandModels(self.character:getPrimaryHandItem(), self.item)
|
||||
end
|
||||
self.character:clearVariable("LeftHandMask")
|
||||
self.mdata["LeftHandMask"] = "nil"
|
||||
self.character:getModData().FancyHandwork["LeftHandMask"] = nil
|
||||
else
|
||||
self.character:clearVariable("FHAnimHand")
|
||||
self.mdata["FHAnimHand"] = "nil"
|
||||
if self.fromHotbar and self.character:getPrimaryHandItem() ~= self.character:getSecondaryHandItem() then
|
||||
self:setOverrideHandModels(self.item, self.character:getSecondaryHandItem())
|
||||
end
|
||||
end
|
||||
|
||||
if isClient() then
|
||||
ModData.transmit("animapi")
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,203 @@
|
||||
--- Various overrides for functions that need animations.
|
||||
|
||||
------------------
|
||||
-- Unused by the base, but we will call the base anyways
|
||||
local _ISLightActions_start = ISLightActions.start
|
||||
function ISLightActions:start()
|
||||
_ISLightActions_start(self)
|
||||
self:setActionAnim(CharacterActionAnims.Craft)
|
||||
end
|
||||
|
||||
------------------
|
||||
-- Add the Craft animation to the upgrade
|
||||
local _ISUpgradeWeapon_start = ISUpgradeWeapon.start
|
||||
function ISUpgradeWeapon:start()
|
||||
-- remove the item from being attached
|
||||
local hotbar = getPlayerHotbar(self.character:getPlayerNum())
|
||||
if hotbar:isInHotbar(self.weapon) then
|
||||
hotbar.chr:removeAttachedItem(self.weapon)
|
||||
end
|
||||
self:setActionAnim(CharacterActionAnims.Craft)
|
||||
self:setOverrideHandModels(self.part, self.weapon)
|
||||
_ISUpgradeWeapon_start(self)
|
||||
end
|
||||
|
||||
------------------
|
||||
-- Add the Craft animation to the remove upgrade
|
||||
local _ISRemoveWeaponUpgrade_start = ISRemoveWeaponUpgrade.start
|
||||
function ISRemoveWeaponUpgrade:start()
|
||||
-- remove the item from being attached
|
||||
local hotbar = getPlayerHotbar(self.character:getPlayerNum())
|
||||
if hotbar:isInHotbar(self.weapon) then
|
||||
hotbar.chr:removeAttachedItem(self.weapon)
|
||||
end
|
||||
self:setActionAnim(CharacterActionAnims.Craft)
|
||||
self:setOverrideHandModels(nil, self.weapon)
|
||||
_ISRemoveWeaponUpgrade_start(self)
|
||||
end
|
||||
|
||||
------------------
|
||||
-- Just add the Craft animation here too.
|
||||
local _ISFixAction_start = ISFixAction.start
|
||||
function ISFixAction:start()
|
||||
-- remove the item from being attached
|
||||
local hotbar = getPlayerHotbar(self.character:getPlayerNum())
|
||||
if hotbar:isInHotbar(self.item) then
|
||||
hotbar.chr:removeAttachedItem(self.item)
|
||||
end
|
||||
self:setActionAnim(CharacterActionAnims.Craft)
|
||||
self:setOverrideHandModels(self.fixing:haveThisFixer(self.character, self.fixer, self.item), self.item)
|
||||
_ISFixAction_start(self)
|
||||
end
|
||||
|
||||
------------------
|
||||
-- Index all of the available animations
|
||||
local WearAnims = {}
|
||||
Events.OnGameStart.Add(function()
|
||||
for _,v in pairs(WearClothingAnimations) do
|
||||
WearAnims[#WearAnims+1] = v
|
||||
end
|
||||
end)
|
||||
|
||||
-- Adds a random animation while drying yourself
|
||||
---- If this goes longer than 1 tick, then change animation
|
||||
local _ISDryMyself_update = ISDryMyself.update
|
||||
function ISDryMyself:update()
|
||||
-- I'll just do mine first
|
||||
if self.tick >= self.timer then
|
||||
self:setAnimVariable("WearClothingLocation", WearAnims[ZombRand(#WearAnims)+1] or "")
|
||||
end
|
||||
_ISDryMyself_update(self)
|
||||
end
|
||||
|
||||
-- Set the Animation with a radom initial location
|
||||
local _ISDryMyself_start = ISDryMyself.start
|
||||
function ISDryMyself:start()
|
||||
self:setActionAnim("WearClothing")
|
||||
self:setAnimVariable("WearClothingLocation", WearAnims[ZombRand(#WearAnims)+1] or "")
|
||||
self:setOverrideHandModels(nil, nil)
|
||||
_ISDryMyself_start(self)
|
||||
end
|
||||
|
||||
------------------
|
||||
-- Set the loot animation for the Transfer
|
||||
local _ISFinalizeDealAction_start = ISFinalizeDealAction.start
|
||||
function ISFinalizeDealAction:start()
|
||||
self:setActionAnim("Loot")
|
||||
self:setAnimVariable("LootPosition", "Mid")
|
||||
self.FHIgnore = true
|
||||
_ISFinalizeDealAction_start(self)
|
||||
end
|
||||
|
||||
------------------
|
||||
-- Add the Recipe animation there too
|
||||
local _ISAddItemInRecipe_start = ISAddItemInRecipe.start
|
||||
function ISAddItemInRecipe:start()
|
||||
local base = nil
|
||||
|
||||
if luautils.stringStarts(self.baseItem:getType(), "GridlePan") or luautils.stringStarts(self.baseItem:getType(), "GriddlePan") then
|
||||
base = "GridlePan"
|
||||
elseif luautils.stringStarts(self.baseItem:getType(), "WaterSaucepan") or luautils.stringStarts(self.baseItem:getType(), "Saucepan") then
|
||||
base = "SaucePan"
|
||||
elseif luautils.stringStarts(self.baseItem:getType(), "WaterPot") or luautils.stringStarts(self.baseItem:getType(), "Pot") then
|
||||
base = "CookingPot"
|
||||
elseif luautils.stringStarts(self.baseItem:getType(), "RoastingPan") or luautils.stringStarts(self.baseItem:getType(), "RoastingPan") then
|
||||
base = "RoastingPan"
|
||||
else
|
||||
base = self.baseItem:getStaticModel() or "FryingPan"
|
||||
end
|
||||
self:setAnimVariable("BaseType", base)
|
||||
self:setActionAnim("AddToPan")
|
||||
self:setOverrideHandModelsString(self.usedItem:getStaticModel(), base)
|
||||
_ISAddItemInRecipe_start(self)
|
||||
end
|
||||
|
||||
-- TODO:
|
||||
--- I would like to apply the same tweak to the crafting action.
|
||||
---- let the props take precedence, but also make it so more object show up in hand
|
||||
---- plus i just made those animations, and putting noodles into a pot is a crafting recipe, so don't work
|
||||
---- I've been working on these animations, and trying various ways to get things working with hand models
|
||||
----- i'm just kinda done with that for now. lmao
|
||||
|
||||
local _ISEmptyRainBarrelAction_start = ISEmptyRainBarrelAction.start
|
||||
function ISEmptyRainBarrelAction:start()
|
||||
self:setActionAnim(CharacterActionAnims.Pour)
|
||||
self:setAnimVariable("FoodType", "Pot")
|
||||
self:setOverrideHandModels(nil, nil)
|
||||
_ISEmptyRainBarrelAction_start(self)
|
||||
end
|
||||
|
||||
local _ISStopAlarmClockAction_start = ISStopAlarmClockAction.start
|
||||
function ISStopAlarmClockAction:start()
|
||||
self:setActionAnim("EquipItem")
|
||||
if not self.character:isEquipped(self.alarm) then
|
||||
self:setOverrideHandModels(nil, self.alarm)
|
||||
end
|
||||
self.FHIgnore = true
|
||||
_ISStopAlarmClockAction_start(self)
|
||||
end
|
||||
|
||||
local _ISConsolidateDrainable_start = ISConsolidateDrainable.start
|
||||
function ISConsolidateDrainable:start()
|
||||
self:setActionAnim("EquipItem")
|
||||
self:setOverrideHandModels(self.drainable, self.intoItem)
|
||||
_ISConsolidateDrainable_start(self)
|
||||
end
|
||||
|
||||
local _ISConsolidateDrainableAll_start = ISConsolidateDrainableAll.start
|
||||
function ISConsolidateDrainableAll:start()
|
||||
self:setActionAnim("EquipItem")
|
||||
local item
|
||||
for _,i in pairs(self.consolidateList) do
|
||||
item = i
|
||||
break
|
||||
end
|
||||
self:setOverrideHandModels(item, self.drainable)
|
||||
_ISConsolidateDrainableAll_start(self)
|
||||
end
|
||||
|
||||
--- Lets make some better pour animations sometime
|
||||
|
||||
local _ISBBQLightFromKindle_start = ISBBQLightFromKindle.start
|
||||
function ISBBQLightFromKindle:start()
|
||||
self:setActionAnim("Loot")
|
||||
self.character:SetVariable("LootPosition", "Mid")
|
||||
self.FHIgnore = true
|
||||
_ISBBQLightFromKindle_start(self)
|
||||
end
|
||||
|
||||
local _ISFireplaceLightFromKindle_start = ISFireplaceLightFromKindle.start
|
||||
function ISFireplaceLightFromKindle:start()
|
||||
self:setActionAnim("Loot")
|
||||
self.character:SetVariable("LootPosition", "Low")
|
||||
self.FHIgnore = true
|
||||
_ISFireplaceLightFromKindle_start(self)
|
||||
end
|
||||
|
||||
-- I have included the following fixes in 3 mods now. lmao
|
||||
--- I will make this the definitive fix for this, and other mods will defer to this
|
||||
local _ISClothingExtraAction_new = ISClothingExtraAction.new
|
||||
function ISClothingExtraAction:new(...)
|
||||
local o = _ISClothingExtraAction_new(self, ...)
|
||||
o.stopOnAim = false
|
||||
o.stopOnWalk = false
|
||||
o.stopOnRun = true
|
||||
o.maxTime = 25
|
||||
o.useProgressBar = true
|
||||
if o.character:isTimedActionInstant() then
|
||||
o.maxTime = 1
|
||||
end
|
||||
return o
|
||||
end
|
||||
|
||||
-- Not a hand tweak, but since i'm fixing stuff may as well
|
||||
local _ISWearClothing_new = ISWearClothing.new
|
||||
function ISWearClothing:new(...)
|
||||
local o = _ISWearClothing_new(self, ...)
|
||||
|
||||
o.stopOnAim = false
|
||||
o.stopOnWalk = false
|
||||
o.stopOnRun = true
|
||||
|
||||
return o
|
||||
end
|
||||
@@ -0,0 +1,117 @@
|
||||
-- These just add the "boop!"
|
||||
----
|
||||
-- Why do these on "perform?"
|
||||
----
|
||||
--- The perform function is the only function to be guaranteed to run on success
|
||||
--- it is not run when the action is canceled, so we don't do our bit
|
||||
local _ISToggleStoveActione_perform = ISToggleStoveAction.perform
|
||||
function ISToggleStoveAction:perform()
|
||||
ISTimedActionQueue.add(FHBoopAction:new(self.character, { item = self.object, extra = 0 }))
|
||||
_ISToggleStoveActione_perform(self)
|
||||
end
|
||||
|
||||
local _ISToggleLightAction_perform = ISToggleLightAction.perform
|
||||
function ISToggleLightAction:perform()
|
||||
ISTimedActionQueue.add(FHBoopAction:new(self.character, { item = self.object, extra = 0 }))
|
||||
_ISToggleLightAction_perform(self)
|
||||
end
|
||||
|
||||
local _ISToggleLightSourceAction_perform = ISToggleLightSourceAction.perform
|
||||
function ISToggleLightSourceAction:perform()
|
||||
ISTimedActionQueue.add(FHBoopAction:new(self.character, { item = self.lightSource, extra = 0 }))
|
||||
_ISToggleLightSourceAction_perform(self)
|
||||
end
|
||||
|
||||
local _ISToggleComboWasherDryer_perform = ISToggleComboWasherDryer.perform
|
||||
function ISToggleComboWasherDryer:perform()
|
||||
ISTimedActionQueue.add(FHBoopAction:new(self.character, { item = self.object, extra = 0 }))
|
||||
_ISToggleComboWasherDryer_perform(self)
|
||||
end
|
||||
|
||||
local _ISToggleClothingWasher_perform = ISToggleClothingWasher.perform
|
||||
function ISToggleClothingWasher:perform()
|
||||
ISTimedActionQueue.add(FHBoopAction:new(self.character, { item = self.object, extra = 0 }))
|
||||
_ISToggleClothingWasher_perform(self)
|
||||
end
|
||||
|
||||
local _ISToggleClothingDryer_perform = ISToggleClothingDryer.perform
|
||||
function ISToggleClothingDryer:perform()
|
||||
ISTimedActionQueue.add(FHBoopAction:new(self.character, { item = self.object, extra = 0 }))
|
||||
_ISToggleClothingDryer_perform(self)
|
||||
end
|
||||
|
||||
local _ISSetComboWasherDryerMode_perform = ISSetComboWasherDryerMode.perform
|
||||
function ISSetComboWasherDryerMode:perform()
|
||||
ISTimedActionQueue.add(FHBoopAction:new(self.character, { item = self.object, extra = 0 }))
|
||||
_ISSetComboWasherDryerMode_perform(self)
|
||||
end
|
||||
|
||||
local _ISOvenUITimedAction_perform = ISOvenUITimedAction.perform
|
||||
function ISOvenUITimedAction:perform()
|
||||
ISTimedActionQueue.add(FHBoopAction:new(self.character, { item = self.object, extra = 0 }))
|
||||
_ISOvenUITimedAction_perform(self)
|
||||
end
|
||||
|
||||
local _ISOpenCloseDoor_perform = ISOpenCloseDoor.perform
|
||||
function ISOpenCloseDoor:perform()
|
||||
ISTimedActionQueue.add(FHBoopAction:new(self.character, FancyHands.checkDoor(self.item, self.character, true)))
|
||||
_ISOpenCloseDoor_perform(self)
|
||||
end
|
||||
|
||||
local _ISLockDoor_perform = ISLockDoor.perform
|
||||
function ISLockDoor:perform()
|
||||
ISTimedActionQueue.add(FHBoopAction:new(self.character, FancyHands.checkDoor(self.door, self.character, true)))
|
||||
_ISLockDoor_perform(self)
|
||||
end
|
||||
|
||||
local _ISOpenCloseCurtain_perform = ISOpenCloseCurtain.perform
|
||||
function ISOpenCloseCurtain:perform()
|
||||
ISTimedActionQueue.add(FHBoopAction:new(self.character,FancyHands.checkDoor(self.item, self.character, true)))
|
||||
_ISOpenCloseCurtain_perform(self)
|
||||
end
|
||||
|
||||
local _ISPadlockAction_perform = ISPadlockAction.perform
|
||||
function ISPadlockAction:perform()
|
||||
ISTimedActionQueue.add(FHBoopAction:new(self.character, { item = self.thump, extra = 1 }))
|
||||
_ISPadlockAction_perform(self)
|
||||
end
|
||||
|
||||
local _ISBBQInfoAction_perform = ISBBQInfoAction.perform
|
||||
function ISBBQInfoAction:perform()
|
||||
ISTimedActionQueue.add(FHBoopAction:new(self.character, { item = self.bbq, extra = 1 }))
|
||||
_ISBBQInfoAction_perform(self)
|
||||
end
|
||||
|
||||
local _ISCampingInfoAction_perform = ISCampingInfoAction.perform
|
||||
function ISCampingInfoAction:perform()
|
||||
ISTimedActionQueue.add(FHBoopAction:new(self.character, { item = self.campfire, extra = 1 }))
|
||||
_ISCampingInfoAction_perform(self)
|
||||
end
|
||||
|
||||
local _ISFireplaceInfoAction_perform = ISFireplaceInfoAction.perform
|
||||
function ISFireplaceInfoAction:perform()
|
||||
ISTimedActionQueue.add(FHBoopAction:new(self.character, { item = self.fireplace, extra = -1 }))
|
||||
_ISFireplaceInfoAction_perform(self)
|
||||
end
|
||||
|
||||
local _ISGeneratorInfoAction_perform = ISGeneratorInfoAction.perform
|
||||
function ISGeneratorInfoAction:perform()
|
||||
ISTimedActionQueue.add(FHBoopAction:new(self.character, { item = self.object, extra = -1 }))
|
||||
_ISGeneratorInfoAction_perform(self)
|
||||
end
|
||||
|
||||
local _ISInventoryPage_toggleStove = ISInventoryPage.toggleStove
|
||||
function ISInventoryPage:toggleStove()
|
||||
_ISInventoryPage_toggleStove(self)
|
||||
if UIManager.getSpeedControls() and UIManager.getSpeedControls():getCurrentGameSpeed() == 0 then
|
||||
return
|
||||
end
|
||||
ISTimedActionQueue.add(FHBoopAction:new(getSpecificPlayer(self.player), { item = self.inventoryPane.inventory:getParent(), extra = 0 }))
|
||||
end
|
||||
|
||||
local _ISRadioAction_perform = ISRadioAction.perform
|
||||
|
||||
function ISRadioAction:perform()
|
||||
ISTimedActionQueue.add(FHBoopAction:new(self.character, { item = self.device, extra = 0 }))
|
||||
_ISRadioAction_perform(self)
|
||||
end
|
||||
@@ -0,0 +1,118 @@
|
||||
--- Various overrides for functions that need animations.
|
||||
-- Vehicles Edition
|
||||
|
||||
------------------
|
||||
-- Just add our low "boop" animation and hold it
|
||||
local _ISDeflateTire_start = ISDeflateTire.start
|
||||
function ISDeflateTire:start()
|
||||
_ISDeflateTire_start(self)
|
||||
self:setActionAnim("VehicleWorkOnTire")
|
||||
end
|
||||
|
||||
local _ISInflateTire_start = ISInflateTire.start
|
||||
function ISInflateTire:start()
|
||||
_ISInflateTire_start(self)
|
||||
self:setActionAnim("VehicleWorkOnTire")
|
||||
end
|
||||
|
||||
local doorType = {
|
||||
["DoorRear"] = 0,
|
||||
["EngineDoor"] = 2,
|
||||
["TrunkDoor"] = 1
|
||||
}
|
||||
|
||||
local _ISOpenVehicleDoor_start = ISOpenVehicleDoor.start
|
||||
function ISOpenVehicleDoor:start()
|
||||
_ISOpenVehicleDoor_start(self)
|
||||
self.action:setUseProgressBar((SandboxVars.FancyHandwork and not SandboxVars.FancyHandwork.HideVehicleWalkProgressBar) or false)
|
||||
if not self.seat or not self.character:isSeatedInVehicle() then
|
||||
self:setActionAnim((self.part:getDoor() and doorType[self.part:getId()] and "FH_Boop_Dual") or ((ZombRand(3) == 1) and "FH_BoopL") or "FH_Boop")
|
||||
-- Doors with animations break if set higher
|
||||
self.action:setTime(10)
|
||||
end
|
||||
end
|
||||
|
||||
local _ISCloseVehicleDoor_start = ISCloseVehicleDoor.start
|
||||
function ISCloseVehicleDoor:start()
|
||||
_ISCloseVehicleDoor_start(self)
|
||||
self.action:setUseProgressBar((SandboxVars.FancyHandwork and not SandboxVars.FancyHandwork.HideVehicleWalkProgressBar) or false)
|
||||
if not self.seat or not self.character:isSeatedInVehicle() then
|
||||
local trunkorhood = doorType[self.part:getId()]
|
||||
self:setActionAnim((self.part:getDoor() and trunkorhood and "FH_Boop_Dual") or ((ZombRand(3) == 1) and "FH_BoopL") or "FH_Boop")
|
||||
if trunkorhood then
|
||||
self:setAnimVariable("BoopPosition", "High")
|
||||
-- Doors with animations break if set higher
|
||||
self.action:setTime(10)
|
||||
else
|
||||
-- Doors with animations break if this is set higher, but any lower and the hand just "flickers" a bit
|
||||
self.action:setTime(8)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
local _ISTakeEngineParts_start = ISTakeEngineParts.start
|
||||
function ISTakeEngineParts:start()
|
||||
_ISTakeEngineParts_start(self)
|
||||
self:setOverrideHandModels(self.item, nil)
|
||||
self:setActionAnim("FH_CarWrenchRepair")
|
||||
end
|
||||
|
||||
local _ISRepairEngine_start = ISRepairEngine.start
|
||||
function ISRepairEngine:start()
|
||||
_ISRepairEngine_start(self)
|
||||
self:setOverrideHandModels(self.item, nil)
|
||||
self:setActionAnim("FH_CarWrenchRepair")
|
||||
end
|
||||
|
||||
local _ISInstallVehiclePart_start = ISInstallVehiclePart.start
|
||||
function ISInstallVehiclePart:start()
|
||||
_ISInstallVehiclePart_start(self)
|
||||
if self.part:getId():contains("Suspension") then
|
||||
self:setActionAnim("VehicleWorkOnTire")
|
||||
elseif self.part:getId():contains("Door") then
|
||||
self:setActionAnim("FH_CarWrenchRepair")
|
||||
end
|
||||
end
|
||||
|
||||
local _ISUninstallVehiclePart_start = ISUninstallVehiclePart.start
|
||||
function ISUninstallVehiclePart:start()
|
||||
_ISUninstallVehiclePart_start(self)
|
||||
if self.part:getId():contains("Suspension") then
|
||||
self:setActionAnim("VehicleWorkOnTire")
|
||||
elseif self.part:getId():contains("Door") then
|
||||
self:setActionAnim("FH_CarWrenchRepair")
|
||||
end
|
||||
end
|
||||
|
||||
local _ISUnlockVehicleDoor_start = ISUnlockVehicleDoor.start
|
||||
function ISUnlockVehicleDoor:start()
|
||||
-- Have to call my stuff first, because start just forceCompletes in vanilla
|
||||
ISTimedActionQueue.add(FHBoopAction:new(self.character, { item = self.vehicle, extra = 0 }))
|
||||
_ISUnlockVehicleDoor_start(self)
|
||||
end
|
||||
|
||||
local _ISLockVehicleDoor_perform = ISLockVehicleDoor.perform
|
||||
function ISLockVehicleDoor:perform()
|
||||
-- But then, this one works like a normal TimedAction. Consistent much? xD
|
||||
_ISLockVehicleDoor_perform(self)
|
||||
ISTimedActionQueue.add(FHBoopAction:new(self.character, { item = self.vehicle, extra = 0 }))
|
||||
end
|
||||
|
||||
local _ISEnterVehicle_start = ISEnterVehicle.start
|
||||
function ISEnterVehicle:start()
|
||||
_ISEnterVehicle_start(self)
|
||||
self.action:setUseProgressBar((SandboxVars.FancyHandwork and not SandboxVars.FancyHandwork.HideDoorProgressBar) or false)
|
||||
end
|
||||
|
||||
local _ISExitVehicle_start = ISExitVehicle.start
|
||||
function ISExitVehicle:start()
|
||||
_ISExitVehicle_start(self)
|
||||
self.action:setUseProgressBar((SandboxVars.FancyHandwork and not SandboxVars.FancyHandwork.HideDoorProgressBar) or false)
|
||||
end
|
||||
|
||||
local _ISPathFindAction_start = ISPathFindAction.start
|
||||
function ISPathFindAction:start()
|
||||
_ISPathFindAction_start(self)
|
||||
self.action:setUseProgressBar((SandboxVars.FancyHandwork and not SandboxVars.FancyHandwork.HideVehicleWalkProgressBar) or false)
|
||||
end
|
||||
@@ -1,33 +1,42 @@
|
||||
-- Animation Framework for Project Zomboid
|
||||
---- Code inspired and modifed from "Tsarlib"
|
||||
|
||||
if not isClient() and not isServer() then return end
|
||||
if not isClient() and not isServer() or AnimationFramework then return end
|
||||
AnimationFramework = true
|
||||
|
||||
local AF_InitGlobaModData = function(mod, pack)
|
||||
if not ModData.exists("animapi") then
|
||||
local t = ModData.create("animapi")
|
||||
end
|
||||
end
|
||||
-- local AF_InitGlobaModData = function(mod, pack)
|
||||
-- if not ModData.exists("animapi") then
|
||||
-- local t = ModData.create("animapi")
|
||||
-- end
|
||||
-- end
|
||||
|
||||
local AF_ReceiveGlobalModData = function(mod, pack)
|
||||
if mod ~= "animapi" then return; end;
|
||||
if not pack then
|
||||
print("ERROR: OnReceiveGlobalModData in AF_ReceiveGlobalModData " .. (pack or "missing packet."))
|
||||
else
|
||||
ModData.add(mod, pack)
|
||||
-- local AF_ReceiveGlobalModData = function(mod, pack)
|
||||
-- if mod ~= "animapi" then return; end;
|
||||
-- if not pack then
|
||||
-- print("ERROR: OnReceiveGlobalModData in AF_ReceiveGlobalModData " .. (pack or "missing packet."))
|
||||
-- else
|
||||
-- ModData.add(mod, pack)
|
||||
-- end
|
||||
-- end
|
||||
|
||||
-- local AF_CleanGlobalModData = function()
|
||||
-- local md = ModData.getOrCreate("animapi")
|
||||
-- for id, _ in pairs(md) do
|
||||
-- local player = getPlayerByOnlineID(id)
|
||||
-- if not player then
|
||||
-- md[id] = nil
|
||||
-- end
|
||||
-- end
|
||||
-- end
|
||||
|
||||
-- Events.OnInitGlobalModData.Add(AF_InitGlobaModData)
|
||||
-- Events.OnReceiveGlobalModData.Add(AF_ReceiveGlobalModData)
|
||||
-- Events.EveryHours.Add(AF_CleanGlobalModData)
|
||||
|
||||
-- Well, this global moddata is no longer needed. So lets do a bit of cleanup
|
||||
---- I'll remove this eventually
|
||||
Events.OnGameBoot.Add(function()
|
||||
if ModData.exists("animapi") then
|
||||
ModData.remove("animapi")
|
||||
end
|
||||
end
|
||||
|
||||
local AF_CleanGlobalModData = function()
|
||||
local md = ModData.getOrCreate("animapi")
|
||||
for id, _ in pairs(md) do
|
||||
local player = getPlayerByOnlineID(id)
|
||||
if not player then
|
||||
md[id] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Events.OnInitGlobalModData.Add(AF_InitGlobaModData)
|
||||
Events.OnReceiveGlobalModData.Add(AF_ReceiveGlobalModData)
|
||||
Events.EveryHours.Add(AF_CleanGlobalModData)
|
||||
end)
|
||||
@@ -0,0 +1,48 @@
|
||||
------
|
||||
FancyHands = FancyHands or {}
|
||||
------
|
||||
|
||||
local _ISObjectClickHandler_doClickCurtain = ISObjectClickHandler.doClickCurtain
|
||||
function ISObjectClickHandler.doClickCurtain(object, playerNum, playerObj)
|
||||
if _ISObjectClickHandler_doClickCurtain(object, playerNum, playerObj) then
|
||||
FancyHands.doAction(playerObj, FancyHands.checkDoor(object, playerObj, true))
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
local _ISObjectClickHandler_doClickDoor = ISObjectClickHandler.doClickDoor
|
||||
function ISObjectClickHandler.doClickDoor(object, playerNum, playerObj)
|
||||
if _ISObjectClickHandler_doClickDoor(object, playerNum, playerObj) then
|
||||
FancyHands.doAction(playerObj, FancyHands.checkDoor(object, playerObj, true, true))
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
local _ISObjectClickHandler_doClickLightSwitch = ISObjectClickHandler.doClickLightSwitch
|
||||
function ISObjectClickHandler.doClickLightSwitch(object, playerNum, playerObj)
|
||||
if _ISObjectClickHandler_doClickLightSwitch(object, playerNum, playerObj) then
|
||||
FancyHands.doAction(playerObj, {item = object, extra = 0 })
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
local _ISObjectClickHandler_doClickThumpable = ISObjectClickHandler.doClickThumpable
|
||||
function ISObjectClickHandler.doClickThumpable(object, playerNum, playerObj)
|
||||
if _ISObjectClickHandler_doClickThumpable(object, playerNum, playerObj) then
|
||||
FancyHands.doAction(playerObj, FancyHands.checkDoor(object, playerObj, true, true))
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
local _ISObjectClickHandler_doClickWindow = ISObjectClickHandler.doClickWindow
|
||||
function ISObjectClickHandler.doClickWindow(object, playerNum, playerObj)
|
||||
if _ISObjectClickHandler_doClickWindow(object, playerNum, playerObj) then
|
||||
FancyHands.doAction(playerObj, FancyHands.checkDoor(object, playerObj, true))
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
233
FancyHandwork/Contents/mods/FancyHandwork/media/lua/shared/FancyBoop.lua
Executable file
233
FancyHandwork/Contents/mods/FancyHandwork/media/lua/shared/FancyBoop.lua
Executable file
@@ -0,0 +1,233 @@
|
||||
------
|
||||
--- This action is just a small animation for when a player does an action in the world
|
||||
--- Like if they just opened a door or something
|
||||
|
||||
------
|
||||
FancyHands = FancyHands or {}
|
||||
------
|
||||
|
||||
local curtainType = {
|
||||
["CurtainLong"] = 1,
|
||||
["CurtainShort"] = 1,
|
||||
["CurtainShade"] = 2,
|
||||
["CurtainSheet"] = 2,
|
||||
["DoorSheet"] = 2
|
||||
}
|
||||
-- Delayed parameter is for when the action is done after
|
||||
FancyHands.checkWindow = function(obj, playerObj, delayed)
|
||||
local curtains = false
|
||||
local type = ""
|
||||
local open = false
|
||||
if instanceof(obj, "IsoCurtain") then
|
||||
curtains = true
|
||||
type = obj:getSoundPrefix()
|
||||
open = obj:IsOpen()
|
||||
elseif instanceof(obj, "IsoWindow") and obj:HasCurtains() then
|
||||
obj = obj:HasCurtains()
|
||||
curtains = obj:canInteractWith(playerObj) and isKeyDown(Keyboard.KEY_LSHIFT)
|
||||
type = obj:getSoundPrefix()
|
||||
open = obj:IsOpen()
|
||||
elseif instanceof(obj, "IsoDoor") and obj:HasCurtains() then
|
||||
curtains = playerObj:getCurrentSquare() == obj:getSheetSquare() and isKeyDown(Keyboard.KEY_LSHIFT)
|
||||
type = "DoorSheet"
|
||||
open = obj:isCurtainOpen()
|
||||
end
|
||||
--if curtains and not curtains:getSquare():getProperties():Is(IsoFlagType.exterior) and not playerObj:getCurrentSquare():Is(IsoFlagType.exterior) then
|
||||
if curtains then
|
||||
local cur = curtainType[type]
|
||||
if not cur or cur > 1 then
|
||||
if open then
|
||||
cur = 101
|
||||
else
|
||||
cur = 1
|
||||
end
|
||||
end
|
||||
return {item = obj, extra = cur}
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
FancyHands.doorDecide = function(obj, playerObj, delayed, fromClick)
|
||||
if (fromClick and isKeyDown(Keyboard.KEY_LSHIFT)) or obj:isDestroyed() then return end
|
||||
if obj:getProperties():Is("GarageDoor") then
|
||||
return { item = obj, extra = ((delayed and obj:IsOpen() and -1) or (not delayed and not obj:IsOpen() and -1)) or 101 }
|
||||
else
|
||||
return { item = obj, extra = 0 }
|
||||
end
|
||||
end
|
||||
|
||||
FancyHands.checkDoor = function(obj, playerObj, delayed, fromClick)
|
||||
local out
|
||||
if obj and playerObj then
|
||||
if instanceof(obj, "IsoCurtain") or instanceof(obj, "IsoWindow") then
|
||||
out = FancyHands.checkWindow(obj, playerObj)
|
||||
elseif instanceof(obj, "IsoDoor") then
|
||||
out = FancyHands.checkWindow(obj, playerObj) or FancyHands.doorDecide(obj, playerObj, delayed, fromClick)
|
||||
elseif instanceof(obj, "IsoThumpable") and obj:isDoor() then
|
||||
out = FancyHands.checkWindow(obj, playerObj) or FancyHands.doorDecide(obj, playerObj, delayed, fromClick)
|
||||
end
|
||||
end
|
||||
return out
|
||||
end
|
||||
|
||||
FancyHands.checkForSwitch = function(obj, playerObj, dir, doIt)
|
||||
local square1 = playerObj:getCurrentSquare();
|
||||
local square2 = square1:getAdjacentSquare(dir)
|
||||
if square2 == nil then return nil end
|
||||
|
||||
local out
|
||||
|
||||
-- Lightswitch does not seem to be something you can do via the "E" key by default
|
||||
if obj and square1:getRoom() then
|
||||
if (SandboxVars.ElecShutModifier > -1 and getGameTime():getNightsSurvived() < SandboxVars.ElecShutModifier) or square1:haveElectricity() then
|
||||
-- Light switch on the player's square
|
||||
for i=0,square1:getObjects():size()-1 do
|
||||
if instanceof(square1:getObjects():get(i), "IsoLightSwitch") then
|
||||
--print("Found Lightswitch on Square")
|
||||
if doIt then
|
||||
print("Flipping Switch")
|
||||
end
|
||||
out = { item = obj, extra = 0 }
|
||||
break
|
||||
end
|
||||
end
|
||||
-- Light switch on adjacent solidtrans square
|
||||
if not out and square2:getRoom() and not square2:isSomethingTo(square1) and square2:Is(IsoFlagType.solidtrans) then
|
||||
for i=0,square2:getObjects():size()-1 do
|
||||
if instanceof(square2:getObjects():get(i), "IsoLightSwitch") then
|
||||
--print("Found Lightswitch on Adjacent Square")
|
||||
if doIt then
|
||||
print("Flipping Switch")
|
||||
end
|
||||
out = { item = obj, extra = 0 }
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return out
|
||||
end
|
||||
|
||||
FancyHands.doAction = function(player, item)
|
||||
if not item or not player then
|
||||
return
|
||||
end
|
||||
--local queue = ISTimedActionQueue.queues[player]
|
||||
if not ISTimedActionQueue.isPlayerDoingAction(player) then
|
||||
ISTimedActionQueue.add(FHBoopAction:new(player, item))
|
||||
end
|
||||
end
|
||||
|
||||
FancyHands.testForAction = function(dir, playerObj)
|
||||
local playerNum = playerObj:getPlayerNum()
|
||||
local square1 = playerObj:getCurrentSquare()
|
||||
local square2 = square1:getAdjacentSquare(dir)
|
||||
if square2 == nil then return nil end
|
||||
|
||||
local found = nil
|
||||
|
||||
if not found then
|
||||
found = FancyHands.checkDoor(playerObj:getContextDoorOrWindowOrWindowFrame(dir), playerObj)
|
||||
end
|
||||
|
||||
if not found then
|
||||
local vehicle = playerObj:getUseableVehicle()
|
||||
if vehicle then
|
||||
local part = vehicle:getUseablePart(playerObj)
|
||||
if part then
|
||||
if part:getDoor() and part:getDoor():isLocked() and part:getInventoryItem() then
|
||||
if part:getId() == "EngineDoor" then
|
||||
-- Skip the hood
|
||||
elseif part:getId() == "TrunkDoor" or part:getId() == "DoorRear" then
|
||||
-- Do the trunk/compartments
|
||||
found = { item = vehicle, extra = 1 }
|
||||
else
|
||||
-- Do the doors
|
||||
found = { item = vehicle, extra = 0 }
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return found
|
||||
end
|
||||
|
||||
local function getBestAction(player)
|
||||
if UIManager.getSpeedControls() and UIManager.getSpeedControls():getCurrentGameSpeed() == 0 then return end
|
||||
|
||||
if getCell():getDrag(player:getPlayerNum()) then return end
|
||||
|
||||
if player:getIgnoreMovement() or player:isAsleep() then return end
|
||||
|
||||
if player:getVehicle() then return end
|
||||
|
||||
local square = player:getCurrentSquare()
|
||||
if not square then return end
|
||||
|
||||
local dir = player:getDir()
|
||||
|
||||
local found = nil
|
||||
if dir == IsoDirections.NE then
|
||||
found = FancyHands.testForAction(IsoDirections.N, player)
|
||||
if not found then
|
||||
found = FancyHands.testForAction(IsoDirections.E, player)
|
||||
end
|
||||
elseif dir == IsoDirections.SE then
|
||||
found = FancyHands.testForAction(IsoDirections.S, player)
|
||||
if not found then
|
||||
found = FancyHands.testForAction(IsoDirections.E, player)
|
||||
end
|
||||
elseif dir == IsoDirections.SW then
|
||||
found = FancyHands.testForAction(IsoDirections.S, player)
|
||||
if not found then
|
||||
found = FancyHands.testForAction(IsoDirections.W, player)
|
||||
end
|
||||
elseif dir == IsoDirections.NW then
|
||||
found = FancyHands.testForAction(IsoDirections.N, player)
|
||||
if not found then
|
||||
found = FancyHands.testForAction(IsoDirections.W, player);
|
||||
end
|
||||
else
|
||||
found = FancyHands.testForAction(dir, player);
|
||||
end
|
||||
|
||||
-- We already did our action, so stop here
|
||||
if not found then
|
||||
local dir1 = nil
|
||||
local dir2 = nil
|
||||
if dir == IsoDirections.NW then
|
||||
dir1 = IsoDirections.S
|
||||
dir2 = IsoDirections.E
|
||||
elseif dir == IsoDirections.NE then
|
||||
dir1 = IsoDirections.S
|
||||
dir2 = IsoDirections.W
|
||||
elseif dir == IsoDirections.SE then
|
||||
dir1 = IsoDirections.N
|
||||
dir2 = IsoDirections.W
|
||||
elseif dir == IsoDirections.SW then
|
||||
dir1 = IsoDirections.N
|
||||
dir2 = IsoDirections.E
|
||||
else
|
||||
dir1 = dir:RotLeft(4) -- 180 degrees
|
||||
end
|
||||
if dir1 ~= nil then
|
||||
found = FancyHands.checkDoor(player:getContextDoorOrWindowOrWindowFrame(dir1), player)
|
||||
end
|
||||
if not found and dir2 ~= nil then
|
||||
found = FancyHands.checkDoor(player:getContextDoorOrWindowOrWindowFrame(dir2), player)
|
||||
end
|
||||
end
|
||||
|
||||
FancyHands.doAction(player,found)
|
||||
end
|
||||
|
||||
Events.OnGameStart.Add(function()
|
||||
-- Add this here so its not actually added to the available keybindings, just want the function
|
||||
FancyHands.addKeyBind({
|
||||
value = 'Interact',
|
||||
action = getBestAction,
|
||||
key = Keyboard.KEY_E,
|
||||
})
|
||||
end)
|
||||
@@ -0,0 +1,168 @@
|
||||
--- These actions all do a small hand movement now.
|
||||
FHBoopAction = ISBaseTimedAction:derive("FHBoopAction")
|
||||
|
||||
local rearObjects = {
|
||||
["LightSwitch"] = true,
|
||||
["LightSource"] = true,
|
||||
["Stove"] = true,
|
||||
["ClothingDryer"] = true,
|
||||
["ClothingWasher"] = true,
|
||||
["CombinationWasherDryer"] = true,
|
||||
["Door"] = true,
|
||||
["Radio"] = true,
|
||||
["Television"] = true,
|
||||
}
|
||||
|
||||
local function skipInstances(obj)
|
||||
return not obj or rearObjects[obj:getObjectName()]
|
||||
end
|
||||
|
||||
--character:getModData().FancyHands and not character:getModData().FancyHands.recentMove and (character:getModData().FancyHands.recentMove and not skipInstances(data.item) or true)
|
||||
local function shouldDoTurn(obj, player)
|
||||
if not obj or not player or player:isAiming() or not SandboxVars.FancyHandwork or SandboxVars.FancyHandwork.DisableTurn == 1 then return false end
|
||||
if SandboxVars.FancyHandwork.DisableTurn == 3 then return true end
|
||||
if SandboxVars.FancyHandwork.TurnBehavior <= 2 then
|
||||
return (player:getModData().FancyHands and not player:getModData().FancyHands.recentMove)
|
||||
elseif SandboxVars.FancyHandwork.TurnBehavior == 3 then
|
||||
return not (skipInstances(obj) or not (player:getModData().FancyHands and not player:getModData().FancyHands.recentMove))
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
function FHBoopAction:isValid()
|
||||
return true;
|
||||
end
|
||||
|
||||
-- blech, I really want this, but turning overrides my animation
|
||||
function FHBoopAction:waitToStart()
|
||||
if self.character:isSeatedInVehicle() then
|
||||
-- If we are in a car, we should just stop here actually
|
||||
self:forceComplete()
|
||||
return false
|
||||
elseif self.turn then
|
||||
self.character:faceThisObject(self.item)
|
||||
return self.character:shouldBeTurning()
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
function FHBoopAction:isInRearRange()
|
||||
-- This game is weird man
|
||||
---- I tried to get the angle between the player and the object but its fucking inconsistent because large numbers, AND fucking light switches
|
||||
---- isFacingObject returns a value of 1,-1 and 0 represents it being perpendicular (left OR right)
|
||||
---- This is also SUPER picky, in that moving a step in the same direction can go from 0.4 to -0.1 and below, or in the opposite direction who knows man.
|
||||
---- So already off, not the best function. I will revisit this, I am way to tired to do the math right now and don't give a shit.
|
||||
---- This function itself has lost me like 3 days. fuck this for now.
|
||||
return not (self.character:isFacingObject(self.item, -0.65))
|
||||
end
|
||||
|
||||
|
||||
|
||||
function FHBoopAction:doRearDoor(left)
|
||||
if self.turn or not self:isInRearRange() then return false end
|
||||
|
||||
if left == 1 then -- left
|
||||
self:setActionAnim("FH_Boop_Rear_L")
|
||||
elseif left == 2 then -- right
|
||||
self:setActionAnim("FH_Boop_Rear_R")
|
||||
else
|
||||
if ZombRand(3) == 1 then
|
||||
self:setActionAnim("FH_Boop_Rear_L")
|
||||
else
|
||||
self:setActionAnim("FH_Boop_Rear_R")
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
function FHBoopAction:doRearFlick(left)
|
||||
if self.turn or not self:isInRearRange() then return false end
|
||||
|
||||
if left == 1 then -- left
|
||||
self:setActionAnim("FH_Boop_Rear_Flick_L")
|
||||
elseif left == 2 then -- right
|
||||
self:setActionAnim("FH_Boop_Rear_Flick_R")
|
||||
else
|
||||
if ZombRand(3) == 1 then
|
||||
self:setActionAnim("FH_Boop_Rear_Flick_L")
|
||||
else
|
||||
self:setActionAnim("FH_Boop_Rear_Flick_R")
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
function FHBoopAction:doThing(left)
|
||||
left = left or 0
|
||||
|
||||
if instanceof(self.item, "IsoDoor") then
|
||||
if self:doRearDoor(left) then return end
|
||||
elseif skipInstances(self.item) then
|
||||
if self:doRearFlick(left) then return end
|
||||
end
|
||||
|
||||
if left == 1 then -- left
|
||||
self:setActionAnim("FH_BoopL")
|
||||
elseif left == 2 then -- right
|
||||
self:setActionAnim("FH_Boop")
|
||||
else
|
||||
if ZombRand(3) == 1 then
|
||||
self:setActionAnim("FH_BoopL")
|
||||
else
|
||||
self:setActionAnim("FH_Boop")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function FHBoopAction:start()
|
||||
if self.extra > 100 then
|
||||
self:setAnimVariable("BoopPosition", "High")
|
||||
self.extra = self.extra - 100
|
||||
elseif self.extra < 0 then
|
||||
self:setAnimVariable("BoopPosition", "Low")
|
||||
self.extra = self.extra * -1
|
||||
end
|
||||
if self.extra == 1 then
|
||||
self:setActionAnim("FH_Boop_Dual")
|
||||
else
|
||||
local primary = self.character:getPrimaryHandItem()
|
||||
local secondary = self.character:getSecondaryHandItem()
|
||||
if primary then
|
||||
self:doThing((((primary and secondary) and not self.character:isAiming() and primary ~= secondary) and 0) or 1)
|
||||
else
|
||||
self:doThing((not secondary and 0) or 2)
|
||||
end
|
||||
end
|
||||
--self.character
|
||||
-- set this here again to undo any moodles and such
|
||||
self.action:setTime(15)
|
||||
end
|
||||
|
||||
function FHBoopAction:stop()
|
||||
ISBaseTimedAction.stop(self);
|
||||
end
|
||||
|
||||
function FHBoopAction:perform()
|
||||
|
||||
-- needed to remove from queue / start next.
|
||||
ISBaseTimedAction.perform(self);
|
||||
end
|
||||
|
||||
function FHBoopAction:new(character, data)
|
||||
if not data then return nil end
|
||||
local o = {}
|
||||
setmetatable(o, self)
|
||||
self.__index = self
|
||||
o.character = character
|
||||
o.item = data.item
|
||||
o.extra = data.extra
|
||||
o.stopOnWalk = false
|
||||
o.stopOnRun = false
|
||||
o.maxTime = 15
|
||||
o.FHIgnore = true
|
||||
o.useProgressBar = false
|
||||
o.turn = shouldDoTurn(data.item, character)
|
||||
return o
|
||||
end
|
||||
@@ -0,0 +1,29 @@
|
||||
Sandbox_EN = {
|
||||
Sandbox_FancyHandwork = "Fancy Handwork",
|
||||
|
||||
Sandbox_FancyHandwork_ExperiencedAim = "Firearm aim animation change level",
|
||||
Sandbox_FancyHandwork_ExperiencedAim_tooltip = "Player Firearm Level to change to Tactical Aiming animation. <LINE> Set to 0 to always use this. Set to 11 to never.",
|
||||
|
||||
Sandbox_FancyHandwork_DisableTurn = "Forced turn to object behavior",
|
||||
Sandbox_FancyHandwork_DisableTurn_tooltip = "Controls when your character is forced to turn to objects when performing the World Interaction",
|
||||
|
||||
Sandbox_FancyHandwork_DT_option1 = "Never do forced turn",
|
||||
Sandbox_FancyHandwork_DT_option2 = "Do forced turn after turn delay",
|
||||
Sandbox_FancyHandwork_DT_option3 = "Always do forced turn",
|
||||
|
||||
Sandbox_FancyHandwork_TurnDelaySec = "Forced turn delay",
|
||||
Sandbox_FancyHandwork_TurnDelaySec_tooltip = "When the character is not moving, they will turn to face an object they are interacting with after this many seconds. <LINE> Requires Turn Delay to be enabled.",
|
||||
|
||||
Sandbox_FancyHandwork_TurnBehavior = "Rear Action Animation Behavior",
|
||||
Sandbox_FancyHandwork_TurnBehavior_tooltip = "Choose how often characters play the Rear Animations instead of Turning. <LINE> Notes: Character will still turn to objects that do not have a rear animation unless forced turn is disabled. <LINE> Turn delay or disabled turns must be selected to show rear animations. 'Always do forced turn' prevents rear animations.",
|
||||
|
||||
Sandbox_FancyHandwork_TB_option1 = "Never do rear animations",
|
||||
Sandbox_FancyHandwork_TB_option2 = "Do rear animations until turn delay",
|
||||
Sandbox_FancyHandwork_TB_option3 = "Always do rear animations",
|
||||
|
||||
Sandbox_FancyHandwork_HideDoorProgressBar = "Hide Vehicle Door Action Progress Bar",
|
||||
Sandbox_FancyHandwork_HideDoorProgressBar_tooltip = "Hides the progress bar when a character is opening or closing a door, and when entering or exiting a vehicle.",
|
||||
|
||||
Sandbox_FancyHandwork_HideVehicleWalkProgressBar = "Hide Vehicle 'Walk To' Action Progress Bar",
|
||||
Sandbox_FancyHandwork_HideVehicleWalkProgressBar_tooltip = "Hides the progress bar when a character is walking to a location to interact with a vehicle.",
|
||||
}
|
||||
233
FancyHandwork/Contents/mods/FancyHandwork/media/lua/shared/aFancyHandwork.lua
Executable file
233
FancyHandwork/Contents/mods/FancyHandwork/media/lua/shared/aFancyHandwork.lua
Executable file
@@ -0,0 +1,233 @@
|
||||
------------------------------------------
|
||||
-- Fancy Handwork Init
|
||||
------------------------------------------
|
||||
|
||||
FancyHands = FancyHands or {}
|
||||
|
||||
------------------------------------------
|
||||
-- Fancy Handwork Configuration
|
||||
------------------------------------------
|
||||
|
||||
FancyHands.config = {
|
||||
applyRotationL = true
|
||||
}
|
||||
|
||||
FancyHands.nomask = {
|
||||
["Base.Torch"] = true,
|
||||
["Base.HandTorch"] = true,
|
||||
["Base.UmbrellaBlack"] = true,
|
||||
["Base.UmbrellaWhite"] = true,
|
||||
["Base.UmbrellaBlue"] = true
|
||||
}
|
||||
|
||||
FancyHands.special = {
|
||||
["Base.Generator"] = "holdinggenerator",
|
||||
["Base.CorpseMale"] = "holdingbody",
|
||||
["Base.CorpseFemale"] = "holdingbody"
|
||||
}
|
||||
|
||||
------------------------------------------
|
||||
-- Fancy Handwork Utilities
|
||||
------------------------------------------
|
||||
|
||||
function isFHModKeyDown()
|
||||
return isKeyDown(getCore():getKey('FHModifier'))
|
||||
end
|
||||
|
||||
local FHswapItems = function(character)
|
||||
local primary = character:getPrimaryHandItem()
|
||||
local secondary = character:getSecondaryHandItem()
|
||||
if (primary or secondary) and (primary ~= secondary) then
|
||||
ISTimedActionQueue.add(FHSwapHandsAction:new(character, primary, secondary, 10))
|
||||
end
|
||||
end
|
||||
|
||||
local FHswapItemsMod = function(character)
|
||||
if isFHModKeyDown() then
|
||||
FHswapItems(character)
|
||||
end
|
||||
end
|
||||
|
||||
local FHcreateBindings = function()
|
||||
--local FHnewBinds = {}
|
||||
local FHbindings = {
|
||||
{
|
||||
name = '[FancyHandwork]'
|
||||
},
|
||||
{
|
||||
value = 'FHModifier',
|
||||
key = Keyboard.KEY_LCONTROL,
|
||||
},
|
||||
{
|
||||
value = 'FHSwapKey',
|
||||
action = FHswapItems,
|
||||
key = 0,
|
||||
},
|
||||
{
|
||||
value = 'FHSwapKeyMod',
|
||||
action = FHswapItemsMod,
|
||||
key = Keyboard.KEY_E,
|
||||
swap = true
|
||||
},
|
||||
}
|
||||
|
||||
for _, bind in ipairs(FHbindings) do
|
||||
if bind.name then
|
||||
table.insert(keyBinding, { value = bind.name, key = nil })
|
||||
else
|
||||
if bind.key then
|
||||
table.insert(keyBinding, { value = bind.value, key = bind.key })
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local FHhandleKeybinds = function(key)
|
||||
local player = getSpecificPlayer(0)
|
||||
local action
|
||||
for _,bind in ipairs(FHbindings) do
|
||||
if key == getCore():getKey(bind.value) then
|
||||
if bind.swap then
|
||||
if isFHModKeyDown() then
|
||||
action = bind.action
|
||||
break
|
||||
end
|
||||
else
|
||||
action = bind.action
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if not action or isGamePaused() or not player or player:isDead() then
|
||||
return
|
||||
end
|
||||
action(player)
|
||||
end
|
||||
|
||||
FancyHands.addKeyBind = function(keybind)
|
||||
table.insert(FHbindings, keybind)
|
||||
end
|
||||
|
||||
Events.OnGameStart.Add(function()
|
||||
Events.OnKeyPressed.Add(FHhandleKeybinds)
|
||||
end)
|
||||
|
||||
end
|
||||
|
||||
local function calcRecentMove(player)
|
||||
player:getModData().FancyHands = player:getModData().FancyHands or {
|
||||
recentMove = false,
|
||||
recentDelta = 0
|
||||
}
|
||||
if player:isPlayerMoving() then
|
||||
player:getModData().FancyHands.recentMove = true
|
||||
player:getModData().FancyHands.recentDelta = 0
|
||||
else
|
||||
if player:getModData().FancyHands.recentMove then
|
||||
player:getModData().FancyHands.recentDelta = player:getModData().FancyHands.recentDelta + 1
|
||||
if player:getModData().FancyHands.recentDelta >= ((SandboxVars.FancyHandwork and SandboxVars.FancyHandwork.TurnDelaySec) or 1)*getPerformance():getFramerate() then
|
||||
player:getModData().FancyHands.recentMove = false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
local function fancy(player)
|
||||
if not player or player:isDead() or player:isAsleep() then return end
|
||||
local primary = player:getPrimaryHandItem()
|
||||
local secondary = player:getSecondaryHandItem()
|
||||
|
||||
local queue = ISTimedActionQueue.queues[player]
|
||||
if queue and #queue.queue > 0 and not queue.queue[1].FHIgnore then
|
||||
player:setVariable("FHDoingAction", true)
|
||||
else
|
||||
player:setVariable("FHDoingAction", false)
|
||||
end
|
||||
|
||||
-- 2 hands
|
||||
if primary == secondary then
|
||||
if primary then
|
||||
if FancyHands.special[primary:getFullType()] then
|
||||
player:setVariable("LeftHandMask", FancyHands.special[primary:getFullType()])
|
||||
player:clearVariable("RightHandMask")
|
||||
return
|
||||
end
|
||||
-- some other mods do have their own anim masks, so lets keep those!
|
||||
if primary:getItemReplacementPrimaryHand() then
|
||||
--player:clearVariable("LeftHandMask")
|
||||
return
|
||||
end
|
||||
end
|
||||
player:clearVariable("LeftHandMask")
|
||||
player:clearVariable("RightHandMask")
|
||||
return
|
||||
end
|
||||
|
||||
if primary then
|
||||
if not primary:getItemReplacementPrimaryHand() then
|
||||
if instanceof(primary, "HandWeapon") then
|
||||
player:setVariable("RightHandMask", (primary:isRanged() and "holdinggunright") or "holdingitemright")
|
||||
player:setVariable("FHExp", player:getPerkLevel(Perks.Aiming) >= ((SandboxVars.FancyHandwork and SandboxVars.FancyHandwork.ExperiencedAiming) or 3))
|
||||
else
|
||||
player:clearVariable("RightHandMask")
|
||||
end
|
||||
end
|
||||
else
|
||||
player:clearVariable("RightHandMask")
|
||||
end
|
||||
|
||||
if secondary then
|
||||
if not secondary:getItemReplacementSecondHand() then
|
||||
if instanceof(secondary, "HandWeapon") then
|
||||
player:setVariable("LeftHandMask", (secondary:isRanged() and "holdinghgunleft") or "holdingitemleft")
|
||||
else
|
||||
player:clearVariable("LeftHandMask")
|
||||
end
|
||||
end
|
||||
else
|
||||
player:clearVariable("LeftHandMask")
|
||||
end
|
||||
end
|
||||
|
||||
local curPlayer = 0
|
||||
local function fancyMP(player)
|
||||
if not player or player:isDead() or player:isAsleep() then return end
|
||||
|
||||
fancy(player)
|
||||
|
||||
-- We will do one player per tick to set their state
|
||||
---- We do this to ensure each tick doesn't take too long
|
||||
local players = getOnlinePlayers()
|
||||
if curPlayer > (players:size()-1) then curPlayer = 0 end
|
||||
local mPlayer = players:get(curPlayer)
|
||||
if mPlayer ~= player then
|
||||
fancy(mPlayer)
|
||||
end
|
||||
curPlayer = curPlayer + 1
|
||||
end
|
||||
|
||||
local function FancyHandwork()
|
||||
print(getText("UI_Init_FancyHandwork"))
|
||||
|
||||
if isServer() then return end
|
||||
FHcreateBindings()
|
||||
|
||||
Events.OnGameStart.Add(function()
|
||||
if isClient() then
|
||||
Events.OnPlayerUpdate.Add(function(player)
|
||||
fancyMP(player)
|
||||
calcRecentMove(player)
|
||||
end)
|
||||
else
|
||||
Events.OnPlayerUpdate.Add(function(player)
|
||||
fancy(player)
|
||||
calcRecentMove(player)
|
||||
end)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
FancyHandwork()
|
||||
|
||||
32
FancyHandwork/Contents/mods/FancyHandwork/media/sandbox-options.txt
Executable file
32
FancyHandwork/Contents/mods/FancyHandwork/media/sandbox-options.txt
Executable file
@@ -0,0 +1,32 @@
|
||||
VERSION = 1,
|
||||
option FancyHandwork.ExperiencedAim {
|
||||
type = integer, min = 0, max = 11, default = 3,
|
||||
page = FancyHandwork, translation = FancyHandwork_ExperiencedAim,
|
||||
}
|
||||
|
||||
option FancyHandwork.TurnDelaySec {
|
||||
type = double, min = 0.01, max = 60.0, default = 1.0,
|
||||
page = FancyHandwork, translation = FancyHandwork_TurnDelaySec,
|
||||
}
|
||||
|
||||
option FancyHandwork.DisableTurn {
|
||||
type = enum, numValues = 3, default = 2,
|
||||
page = FancyHandwork, translation = FancyHandwork_DisableTurn,
|
||||
valueTranslation = FancyHandwork_DT,
|
||||
}
|
||||
|
||||
option FancyHandwork.TurnBehavior {
|
||||
type = enum, numValues = 3, default = 2,
|
||||
page = FancyHandwork, translation = FancyHandwork_TurnBehavior,
|
||||
valueTranslation = FancyHandwork_TB,
|
||||
}
|
||||
|
||||
option FancyHandwork.HideDoorProgressBar {
|
||||
type = boolean, default = false,
|
||||
page = FancyHandwork, translation = FancyHandwork_HideDoorProgressBar,
|
||||
}
|
||||
|
||||
option FancyHandwork.HideVehicleWalkProgressBar {
|
||||
type = boolean, default = false,
|
||||
page = FancyHandwork, translation = FancyHandwork_HideVehicleWalkProgressBar,
|
||||
}
|
||||
@@ -2,7 +2,7 @@ name=Fancy Handwork
|
||||
id=FancyHandwork
|
||||
authors=dhert
|
||||
|
||||
description=Got a left arm that's just dangling there and not doing anything? The Zombies haven't gotten it yet, so put it to use!
|
||||
description=A Suite of Animations to make your player feel more alive!
|
||||
|
||||
pzversion=41
|
||||
tags=Realistic
|
||||
|
||||
@@ -4,11 +4,9 @@ title=Fancy Handwork
|
||||
description=[h1]Supports B41+. Works in Multiplayer[/h1]
|
||||
description=[h3]A new save is not required[/h3]
|
||||
description=
|
||||
description=[h1]Supports B41+. Works in Multiplayer[/h1]
|
||||
description=[h3]A new save is not required[/h3]
|
||||
description=[img]https://i.imgur.com/p7Fv1Z6.gif[/img]
|
||||
description=
|
||||
description=Got a left arm that's just dangling there and not doing anything? The Zombies haven't gotten it yet, so put it to use!
|
||||
description=A Suite of Animations to make your player more alive!
|
||||
description=
|
||||
description=[h2]Features[/h2]
|
||||
description=[list]
|
||||
@@ -16,10 +14,24 @@ description=[*] Attaching or Detaching an item to your Hotbar now has a chance t
|
||||
description=[*] Equipping and Unequipping your secondary item is now done with the left arm
|
||||
description=[*] "Hand Swap" action to quickly swap the primary and secondary held items
|
||||
description=[*] Modifier key to quickly equip items in secondary hand using from your Hotbar
|
||||
description=[*] Animation mask for the left arm to correct the rotation of the held item
|
||||
description=[*] Includes a new pose when aiming a pistol and holding a secondary tool (Also lets you do this again)
|
||||
description=[*] Animation Mask for the Left and Right Arms to correct the Positions and Rotation of the held item
|
||||
description=[*] Includes 2 new poses when aiming a handgun and holding a secondary tool, based on your "Aim" level! Configurable in the Sandbox Options.
|
||||
description=[*] World Interaction animations!
|
||||
description=[*] [b]NEW:[/b] World Interaction animations from the rear!
|
||||
description=[*] Cooking Animations!
|
||||
description=[*] Appropriate Vanilla Animations have now been placed on [b]over 50![/b] TimedActions that previously did not have one.
|
||||
description=[*] [b]NEW:[/b] Wrench Repair Animation!
|
||||
description=[/list]
|
||||
description=
|
||||
description=[h2]Updates[/h2]
|
||||
description=Important information is updated on this page, but full information and release notes are available in the Discussions. Please see the latest:
|
||||
description=
|
||||
description=[h2]IMPORTANT[/h2]
|
||||
description=If you receive an error about missing actions, or world interactions are simply not playing, you may need to restart Project Zomboid. I have noticed that enabling this mod on an already-existing save and starting the game will result in the animations not being loaded until the game is restarted. This is a [b]BASE GAME[/b] issue!
|
||||
description=
|
||||
description=If you receive an error following any update, please see: [url=https://theindiestone.com/forums/index.php?/topic/42925-how-to-fix-updated-mods-in-build-41-multiplayer/]How to fix updated mods in Build 41 Multiplayer[/url]
|
||||
description=This mod adds many additional animation and action files, which may change between releases. I try to minimize this, but sometimes it is necessary. Unfortunately, Steam sometimes doesn't like to update these correctly.
|
||||
description=
|
||||
description=[h2]Usage[/h2]
|
||||
description=When Attaching or Detaching an item on your Hotbar, you have a chance for the action to automatically be done with your left hand.
|
||||
description=
|
||||
@@ -30,18 +42,34 @@ description=When you press the Modifier Key and a Hotbar slot, the item slotted
|
||||
description=
|
||||
description=Pressing the Modifier and "E" will swap the items in your hands. (Configurable)
|
||||
description=
|
||||
description=[h2]Limitations[/h2]
|
||||
description=The corrected rotations in the Left Hand will take a brief second to "settle" into place. Additionally, performing another action may reset the Left Hand mask causing the correction to have to be re-applied (it will do so automatically).
|
||||
description=Interacting with the world normally, such as opening and closing doors and curtains,flicking light switches, and more, all now have an Animation!
|
||||
description=
|
||||
description=[h3]Multiplayer[/h3]
|
||||
description=Animations should sync across multiplayer. However, there are a few limitations that may result in some brief odd behavior.
|
||||
description=Almost ALL TimedActions now have an Animation! No longer will your character just stand there, waiting for a progress bar to fill up!
|
||||
description=
|
||||
description=Custom Animation states are not synced like how built-in states are, and the game seems to change animations on the player outside of what you do in Lua as well. I sync the animation states required for this mod, but this is separate from how the game handles its own synced animations. As such, brief de-sync can happen when a player is performing an action. For example, an equip animation may start with the right hand like normal and quickly change to the left once the custom state syncs.
|
||||
description=[h3]Notes about World Interactions[/h3]
|
||||
description=If you are standing still you will turn and face the object you are interacting with if you are not already doing so. There is a Sandbox setting to control how long of a delay before you character is standing still.
|
||||
description=[b]NOTE:[/b] This is based on your selected Render Framerate. As such, you may need to change this according to your current framerate. A value of 60 is about 1 second at 60 FPS. I will update this at some point.
|
||||
description=
|
||||
description=[h2]Compatibility[/h3]
|
||||
description=Should be compatible with almost everything. The only incompatibility I found is with the mod [url=https://steamcommunity.com/sharedfiles/filedetails/?id=2366717227]Swap It[/url]. [b]Note:[/b]"Swap It's" functionality is way better than this mod, so the quick equip to secondary keybinds are not enabled when using both mods due to incompatibilities.
|
||||
description=When performing a World Interaction and moving your character will slow down slightly, and stop altogether in the case of opening a Garage Door, for a very brief moment. I have no plans on this being a configurable option, and this is done intentionally. It is a fantastic inclusion for immersion in my opinion, and in tight situations makes planning your movement all the more important. After time, you will hardly notice it.
|
||||
description=
|
||||
description=[h2]Multiplayer[/h2]
|
||||
description=[b]NEW 01/07/2023 [/b] - New Animation Sync method is now being used!
|
||||
description=Animations should sync across multiplayer with little to no issues!
|
||||
description=
|
||||
description=[h2]Controllers[/h2]
|
||||
description=There is currently no support for controllers, unless an action is done via the Context Menu. I will be working on Controller Support in a future Update.
|
||||
description=
|
||||
description=[h2]Compatibility[/h2]
|
||||
description=Should be compatible with everything.
|
||||
description=Mouse Click World Interactions are not triggered from: [url=https://steamcommunity.com/sharedfiles/filedetails/?id=2795987309]Left Click Redux - Click To Act[/url]
|
||||
description=
|
||||
description=[h3]Recommended other Mods:[/h3]
|
||||
description=[url=https://steamcommunity.com/sharedfiles/filedetails/?id=2366717227]Swap It[/url] by Chuckleberry Finn
|
||||
description=[url=https://steamcommunity.com/sharedfiles/filedetails/?id=2706426546]Danger Zone (Dual Wield)[/url] by OgreLeg
|
||||
description=[url=https://steamcommunity.com/sharedfiles/filedetails/?id=2809719515]Visible Generators and Corpses[/url] by planetalgol
|
||||
description=[url=https://steamcommunity.com/sharedfiles/filedetails/?id=2651128766]Body Remodel - FINGERS.[/url] by Akyet
|
||||
description=
|
||||
description=Source: [url=https://github.com/hlfstr/pz-mods]GitHub[/url]
|
||||
description=
|
||||
description=Workshop ID: 2904920097
|
||||
description=Mod ID: FancyHandwork
|
||||
tags=Build 41;Realistic;Silly/Fun
|
||||
visibility=public
|
||||
|
||||
Reference in New Issue
Block a user