diff --git a/Assets/Animation/Dummy.controller b/Assets/Animation/Dummy.controller new file mode 100644 index 0000000..a0a6613 --- /dev/null +++ b/Assets/Animation/Dummy.controller @@ -0,0 +1,217 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1107 &-7915675896728613497 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 6826455873899848278} + m_Position: {x: 310, y: 120, z: 0} + - serializedVersion: 1 + m_State: {fileID: 1083569221786146706} + m_Position: {x: 310, y: 180, z: 0} + - serializedVersion: 1 + m_State: {fileID: 6498646189330502375} + m_Position: {x: 550, y: 120, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 6826455873899848278} +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Dummy + serializedVersion: 5 + m_AnimatorParameters: + - m_Name: Hit + m_Type: 9 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: Die + m_Type: 9 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: -7915675896728613497} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1102 &1083569221786146706 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Falling Back Death + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -203655887218126122, guid: 48e1cb17fc54eb58ea2fd96b1b8c481b, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &1543474569028406026 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 6826455873899848278} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.73214287 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &5132201050219580291 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Die + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 1083569221786146706} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &6274153639818441180 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Hit + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 6498646189330502375} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &6498646189330502375 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Head Hit + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 1543474569028406026} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -203655887218126122, guid: eb8ac924f016b1e33bcfd22c5db3b3e6, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &6826455873899848278 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Empty + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 5132201050219580291} + - {fileID: 6274153639818441180} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 0} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: diff --git a/Assets/Scripts/UI/Elements/Layout.meta b/Assets/Animation/Dummy.controller.meta similarity index 52% rename from Assets/Scripts/UI/Elements/Layout.meta rename to Assets/Animation/Dummy.controller.meta index 1476596..811601a 100644 --- a/Assets/Scripts/UI/Elements/Layout.meta +++ b/Assets/Animation/Dummy.controller.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 -guid: 12d6aff0f2ce160ac8660ee5c8c47b71 -folderAsset: yes -DefaultImporter: +guid: e48039382405808f08691dc1cb984c22 +NativeFormatImporter: externalObjects: {} + mainObjectFileID: 9100000 userData: assetBundleName: assetBundleVariant: diff --git a/Assets/Animation/PlayerAnimator.controller b/Assets/Animation/PlayerAnimator.controller index eecdf48..a9e44f6 100644 --- a/Assets/Animation/PlayerAnimator.controller +++ b/Assets/Animation/PlayerAnimator.controller @@ -20,7 +20,7 @@ AnimatorStateTransition: m_TransitionDuration: 0.25 m_TransitionOffset: 0 m_ExitTime: 0.9025974 - m_HasExitTime: 1 + m_HasExitTime: 0 m_HasFixedDuration: 1 m_InterruptionSource: 0 m_OrderedInterruption: 1 @@ -45,7 +45,7 @@ AnimatorStateTransition: m_TransitionDuration: 0.25 m_TransitionOffset: 0 m_ExitTime: 0.8125 - m_HasExitTime: 1 + m_HasExitTime: 0 m_HasFixedDuration: 1 m_InterruptionSource: 0 m_OrderedInterruption: 1 diff --git a/Assets/InputSystem_Actions.inputactions b/Assets/InputSystem_Actions.inputactions index 3adc08c..b5acefa 100644 --- a/Assets/InputSystem_Actions.inputactions +++ b/Assets/InputSystem_Actions.inputactions @@ -24,11 +24,38 @@ "interactions": "", "initialStateCheck": true }, + { + "name": "Ready", + "type": "Button", + "id": "43858dfd-eb1e-4d25-81c9-786eda9f383b", + "expectedControlType": "", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, { "name": "Attack", "type": "Button", "id": "6c2ab1b8-8984-453a-af3d-a3c78ae1679a", - "expectedControlType": "Button", + "expectedControlType": "", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Reload", + "type": "Button", + "id": "8901b52c-9d31-48a0-960d-340a765f6808", + "expectedControlType": "", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Use Secondary", + "type": "Button", + "id": "5588bce1-4ae1-4cda-8730-838650924709", + "expectedControlType": "", "processors": "", "interactions": "", "initialStateCheck": false @@ -235,7 +262,7 @@ { "name": "", "id": "8c8e490b-c610-4785-884f-f04217b23ca4", - "path": "/delta", + "path": "/position", "interactions": "", "processors": "", "groups": ";Keyboard&Mouse;Touch", @@ -257,7 +284,7 @@ { "name": "", "id": "143bb1cd-cc10-4eca-a2f0-a3664166fe91", - "path": "/buttonWest", + "path": "/rightShoulder", "interactions": "", "processors": "", "groups": ";Gamepad", @@ -473,6 +500,83 @@ "action": "Crouch", "isComposite": false, "isPartOfComposite": false + }, + { + "name": "", + "id": "af1e1636-b5d4-48fc-b772-2c52cd333dee", + "path": "/rightButton", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Ready", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "16cef02c-a624-41d1-86a5-ed36aa8f5549", + "path": "/leftTrigger", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Ready", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "393f477f-f65c-4261-ac56-d13b3530c802", + "path": "/leftShoulder", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Use Secondary", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "6d75d42e-db1f-4750-9a67-33cedba396f7", + "path": "/c", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Use Secondary", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "7c03549b-c6f7-40d8-9c57-b7f32c4c3dd8", + "path": "/backButton", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Use Secondary", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "3994a53b-2dc2-4307-80cc-a99822fc6d0c", + "path": "/r", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Reload", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "27ccb790-118c-4aa8-a9a4-e037c8382d3c", + "path": "/rightShoulder", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Reload", + "isComposite": false, + "isPartOfComposite": false } ] }, diff --git a/Assets/InputSystem_Actions.inputactions.meta b/Assets/InputSystem_Actions.inputactions.meta index d9ae4fe..0314b94 100644 --- a/Assets/InputSystem_Actions.inputactions.meta +++ b/Assets/InputSystem_Actions.inputactions.meta @@ -8,7 +8,7 @@ ScriptedImporter: assetBundleName: assetBundleVariant: script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3} - generateWrapperCode: 1 + generateWrapperCode: 0 wrapperCodePath: Assets/Scripts/Input/InputSystem_Actions.cs wrapperClassName: wrapperCodeNamespace: diff --git a/Assets/Resources/Dummy.fbx b/Assets/Resources/Dummy.fbx new file mode 100644 index 0000000..4ed1bd9 Binary files /dev/null and b/Assets/Resources/Dummy.fbx differ diff --git a/Assets/Resources/Dummy.fbx.meta b/Assets/Resources/Dummy.fbx.meta new file mode 100644 index 0000000..984c17a --- /dev/null +++ b/Assets/Resources/Dummy.fbx.meta @@ -0,0 +1,107 @@ +fileFormatVersion: 2 +guid: 015f1ddb77bbd0ce980de36f9e227c78 +ModelImporter: + serializedVersion: 22200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importPhysicalCameras: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + strictVertexDataChecks: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Falling Back Death.fbx b/Assets/Resources/Falling Back Death.fbx new file mode 100644 index 0000000..debb5b3 Binary files /dev/null and b/Assets/Resources/Falling Back Death.fbx differ diff --git a/Assets/Resources/Falling Back Death.fbx.meta b/Assets/Resources/Falling Back Death.fbx.meta new file mode 100644 index 0000000..bad848f --- /dev/null +++ b/Assets/Resources/Falling Back Death.fbx.meta @@ -0,0 +1,136 @@ +fileFormatVersion: 2 +guid: 48e1cb17fc54eb58ea2fd96b1b8c481b +ModelImporter: + serializedVersion: 22200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: + - serializedVersion: 16 + name: Falling Back Death + takeName: mixamo.com + internalID: -203655887218126122 + firstFrame: 0 + lastFrame: 78 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importPhysicalCameras: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + strictVertexDataChecks: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Glock17Equipped.prefab b/Assets/Resources/Glock17Equipped.prefab new file mode 100644 index 0000000..c2a7688 --- /dev/null +++ b/Assets/Resources/Glock17Equipped.prefab @@ -0,0 +1,155 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3189041518118701393 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4498264122734214993} + m_Layer: 0 + m_Name: Origin + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4498264122734214993 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3189041518118701393} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} + m_LocalPosition: {x: 0, y: 0.375, z: -1.2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 980965867932805622} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} +--- !u!1001 &727241450723970589 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: bf9d862a19647f28795df2e666425003, type: 3} + propertyPath: m_LocalScale.x + value: 0.11 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: bf9d862a19647f28795df2e666425003, type: 3} + propertyPath: m_LocalScale.y + value: 0.11 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: bf9d862a19647f28795df2e666425003, type: 3} + propertyPath: m_LocalScale.z + value: 0.11 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: bf9d862a19647f28795df2e666425003, type: 3} + propertyPath: m_LocalPosition.x + value: -0.025 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: bf9d862a19647f28795df2e666425003, type: 3} + propertyPath: m_LocalPosition.y + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: bf9d862a19647f28795df2e666425003, type: 3} + propertyPath: m_LocalPosition.z + value: 0.0365 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: bf9d862a19647f28795df2e666425003, type: 3} + propertyPath: m_LocalRotation.w + value: 0.3984397 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: bf9d862a19647f28795df2e666425003, type: 3} + propertyPath: m_LocalRotation.x + value: 0.56903094 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: bf9d862a19647f28795df2e666425003, type: 3} + propertyPath: m_LocalRotation.y + value: -0.58924866 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: bf9d862a19647f28795df2e666425003, type: 3} + propertyPath: m_LocalRotation.z + value: 0.4125963 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: bf9d862a19647f28795df2e666425003, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 70 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: bf9d862a19647f28795df2e666425003, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: bf9d862a19647f28795df2e666425003, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 272 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: bf9d862a19647f28795df2e666425003, type: 3} + propertyPath: m_Name + value: Glock17Equipped + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: + - targetCorrespondingSourceObject: {fileID: -8679921383154817045, guid: bf9d862a19647f28795df2e666425003, type: 3} + insertIndex: -1 + addedObject: {fileID: 4498264122734214993} + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: bf9d862a19647f28795df2e666425003, type: 3} + insertIndex: -1 + addedObject: {fileID: 5741563885454826239} + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: bf9d862a19647f28795df2e666425003, type: 3} + insertIndex: -1 + addedObject: {fileID: -6843496421257318028} + m_SourcePrefab: {fileID: 100100000, guid: bf9d862a19647f28795df2e666425003, type: 3} +--- !u!1 &492801038359376716 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: bf9d862a19647f28795df2e666425003, type: 3} + m_PrefabInstance: {fileID: 727241450723970589} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5741563885454826239 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 492801038359376716} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a9bef8fb859e614a48357ece1c529698, type: 3} + m_Name: + m_EditorClassIdentifier: + ready: {fileID: 11400000, guid: 11f0f1ff4a0ab250ba395b772f722ffb, type: 2} + fire: {fileID: 11400000, guid: 9636b8e5400b0e8e38ae815274f65b69, type: 2} + reload: {fileID: 11400000, guid: b05fd0c6fbc99c1669a88d60100b83cc, type: 2} + projectileOrigin: {fileID: 4498264122734214993} + damageSource: {fileID: -6843496421257318028} + projectileLength: 76.9 + layerMask: + serializedVersion: 2 + m_Bits: 1 +--- !u!114 &-6843496421257318028 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 492801038359376716} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5ac53e30c2f9ed3d48e3ed86a8aed11b, type: 3} + m_Name: + m_EditorClassIdentifier: + damage: 5 +--- !u!4 &980965867932805622 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: bf9d862a19647f28795df2e666425003, type: 3} + m_PrefabInstance: {fileID: 727241450723970589} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Resources/Main.glb.meta b/Assets/Resources/Glock17Equipped.prefab.meta similarity index 63% rename from Assets/Resources/Main.glb.meta rename to Assets/Resources/Glock17Equipped.prefab.meta index 920b6de..66b01fb 100644 --- a/Assets/Resources/Main.glb.meta +++ b/Assets/Resources/Glock17Equipped.prefab.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: 16d8ce8164e4d9a59bd9c28737489417 -DefaultImporter: +guid: 34383341362bbd7c59b199a69ed897e4 +PrefabImporter: externalObjects: {} userData: assetBundleName: diff --git a/Assets/Resources/Head Hit.fbx b/Assets/Resources/Head Hit.fbx new file mode 100644 index 0000000..c7485bc Binary files /dev/null and b/Assets/Resources/Head Hit.fbx differ diff --git a/Assets/Resources/Head Hit.fbx.meta b/Assets/Resources/Head Hit.fbx.meta new file mode 100644 index 0000000..66e976f --- /dev/null +++ b/Assets/Resources/Head Hit.fbx.meta @@ -0,0 +1,136 @@ +fileFormatVersion: 2 +guid: eb8ac924f016b1e33bcfd22c5db3b3e6 +ModelImporter: + serializedVersion: 22200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: + - serializedVersion: 16 + name: Head Hit + takeName: mixamo.com + internalID: -203655887218126122 + firstFrame: 0 + lastFrame: 28 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importPhysicalCameras: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + strictVertexDataChecks: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Main.glb b/Assets/Resources/Main.glb deleted file mode 100644 index 0bfa787..0000000 Binary files a/Assets/Resources/Main.glb and /dev/null differ diff --git a/Assets/Resources/Textures/icons.png b/Assets/Resources/Textures/icons.png new file mode 100644 index 0000000..300aa34 Binary files /dev/null and b/Assets/Resources/Textures/icons.png differ diff --git a/Assets/Resources/Textures/icons.png.meta b/Assets/Resources/Textures/icons.png.meta new file mode 100644 index 0000000..78df61d --- /dev/null +++ b/Assets/Resources/Textures/icons.png.meta @@ -0,0 +1,1305 @@ +fileFormatVersion: 2 +guid: acf7be11a7aec869a96fca7c3cb2e6ff +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: icons_0 + rect: + serializedVersion: 2 + x: 0 + y: 448 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 743aa28e8428b065bb0935e5e26968b2 + internalID: 908863410 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_1 + rect: + serializedVersion: 2 + x: 64 + y: 448 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 2883b0699c1f81c99bc7c0e50b6a4214 + internalID: 1738585862 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_2 + rect: + serializedVersion: 2 + x: 128 + y: 448 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: e39442e8a8779e5dab03d38ebaa184c8 + internalID: -817023003 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_3 + rect: + serializedVersion: 2 + x: 192 + y: 448 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 5afd9802919a24ebb82efffbd1a2ea37 + internalID: 156957802 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_4 + rect: + serializedVersion: 2 + x: 256 + y: 448 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: a37a4bd14ffc516b78c8ab6ff8ea644f + internalID: -1436261062 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_5 + rect: + serializedVersion: 2 + x: 320 + y: 448 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: a4a437c4f5641045ca62df67a6cce07b + internalID: -154901189 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_6 + rect: + serializedVersion: 2 + x: 384 + y: 448 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: bd1e9f16500649f3d9be1c0a3be0d616 + internalID: -1687939792 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_7 + rect: + serializedVersion: 2 + x: 448 + y: 448 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: c7cc43fc7d90c335eab980cfa4a0915f + internalID: -607465993 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_8 + rect: + serializedVersion: 2 + x: 0 + y: 384 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 9bf672c9b5fb6ef22a6898793458ffaa + internalID: -1589539465 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_9 + rect: + serializedVersion: 2 + x: 64 + y: 384 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 20d620d0e9714071a8f336cc81e60ea9 + internalID: 1874037310 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_10 + rect: + serializedVersion: 2 + x: 128 + y: 384 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: b3a649480d52b13b695c7566ae7fe5ff + internalID: 1444307483 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_11 + rect: + serializedVersion: 2 + x: 192 + y: 384 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 88f9cb8dae413e2b59c004a605749a26 + internalID: -1395589485 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_12 + rect: + serializedVersion: 2 + x: 256 + y: 384 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 254d5de562fdb34f097437e990008c6b + internalID: 124778389 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_13 + rect: + serializedVersion: 2 + x: 320 + y: 384 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 6c52f4646c007ac65838ae8699e04de9 + internalID: -1982365744 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_14 + rect: + serializedVersion: 2 + x: 384 + y: 384 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 0996a81a75cef75f69da7b9cff2d927f + internalID: 2084276374 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_15 + rect: + serializedVersion: 2 + x: 448 + y: 384 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 363ed1503caaa0f09ad65ab7806f2a2c + internalID: 1006293681 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_16 + rect: + serializedVersion: 2 + x: 0 + y: 320 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 4c31e482cb8f84279bb10d22d9bb717f + internalID: 306891712 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_17 + rect: + serializedVersion: 2 + x: 64 + y: 320 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 8864f9fafd6c72a91bd0e883ee29f027 + internalID: -1954190500 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_18 + rect: + serializedVersion: 2 + x: 128 + y: 320 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 12131f72e3a144382a86bebc39b0d75c + internalID: -1574420798 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_19 + rect: + serializedVersion: 2 + x: 192 + y: 320 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 4225bab65802d98cc8de1a858145da57 + internalID: -418299579 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_20 + rect: + serializedVersion: 2 + x: 256 + y: 320 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: bf216a442eb8e156083c0823c1c529d2 + internalID: 1451536761 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_21 + rect: + serializedVersion: 2 + x: 320 + y: 320 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: f92a7d95cd37708cf973dacfae6e0634 + internalID: -2000261242 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_22 + rect: + serializedVersion: 2 + x: 384 + y: 320 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 3477747a4e96d2451bfbba1c81648b58 + internalID: -1198127098 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_23 + rect: + serializedVersion: 2 + x: 448 + y: 320 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 384c9d9151ce486238f884ab456978df + internalID: 1595017889 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_24 + rect: + serializedVersion: 2 + x: 0 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: bb8adaa2fbd084b228ba285d012b6741 + internalID: -1160500534 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_25 + rect: + serializedVersion: 2 + x: 64 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 55829d35462f7983f829b88fc395cc95 + internalID: 336861722 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_26 + rect: + serializedVersion: 2 + x: 128 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 0d94dc3cf178e4443be71f0e8eedfcbd + internalID: -109979048 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_27 + rect: + serializedVersion: 2 + x: 192 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 88f85e274b883a245b46ac92a37c75c8 + internalID: 1518398207 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_28 + rect: + serializedVersion: 2 + x: 256 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 7f08092d934582c85806bb6fff707e4c + internalID: 1575060668 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_29 + rect: + serializedVersion: 2 + x: 320 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: ca0b6229d47b16c5c8f47f172b663dd8 + internalID: 1233473103 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_30 + rect: + serializedVersion: 2 + x: 384 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 47407da2cb50d5b74bead10b338ade6a + internalID: 1395937391 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_31 + rect: + serializedVersion: 2 + x: 448 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: e3ceb8436ff7867a1ab0b5af9288c313 + internalID: 1534881236 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_32 + rect: + serializedVersion: 2 + x: 0 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: c287dba524b2eceb9bf3cec9d8194494 + internalID: 1899104094 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_33 + rect: + serializedVersion: 2 + x: 64 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 19cf988f9fc42d73d8eac3ace368997a + internalID: 211315003 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_34 + rect: + serializedVersion: 2 + x: 128 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 82b83401d58b355bcb4203a9239e3f1f + internalID: -871706565 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_35 + rect: + serializedVersion: 2 + x: 192 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: fe625edfe58fc55dd87365ecc8de280a + internalID: -1451803064 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_36 + rect: + serializedVersion: 2 + x: 256 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: d2574847bede8264cb459b93a4030ee8 + internalID: 468833284 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_37 + rect: + serializedVersion: 2 + x: 320 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 6a11a99dbc8fcd8d89d453b245a48d4a + internalID: -307490319 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_38 + rect: + serializedVersion: 2 + x: 384 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 84866cdab97c3e292950f331b8763d57 + internalID: -619583542 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_39 + rect: + serializedVersion: 2 + x: 448 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 155c9cbeca81a976894946c80a555626 + internalID: 269021185 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_40 + rect: + serializedVersion: 2 + x: 0 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 0f7f327c0c8cbc0759253a8d4f4d3209 + internalID: -1444946923 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_41 + rect: + serializedVersion: 2 + x: 64 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 77d2768437164c66484a534a2404f3a2 + internalID: -1911627986 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_42 + rect: + serializedVersion: 2 + x: 128 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 7ecd24b5501e8ce1c9176d714fe1b37c + internalID: 177942662 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_43 + rect: + serializedVersion: 2 + x: 192 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 01743da868f5a43d2aa80b77ed6f3686 + internalID: 2021384978 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_44 + rect: + serializedVersion: 2 + x: 256 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 507d8987ff10fa9f2b76fba0db5bd1d7 + internalID: -827342791 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_45 + rect: + serializedVersion: 2 + x: 320 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 4e56383c29422a2438d55d3b996a5f32 + internalID: -581076624 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_46 + rect: + serializedVersion: 2 + x: 384 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 64b418bf0166458ac9b0071b582bf3f3 + internalID: 1573354839 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_47 + rect: + serializedVersion: 2 + x: 0 + y: 64 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: f55151ecb6e8a75c3b75164f0e878063 + internalID: -99717105 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_48 + rect: + serializedVersion: 2 + x: 64 + y: 64 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 39c21d05439f9c141b4edefb4d4475ac + internalID: 1168795402 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_49 + rect: + serializedVersion: 2 + x: 128 + y: 64 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 9bc5b3313b7053d1880ad2dcd5c2c2db + internalID: 1321004419 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: icons_50 + rect: + serializedVersion: 2 + x: 192 + y: 64 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 5d17b347e78e681c6ab3d016eddbf9db + internalID: -1152923937 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: f8f8635930e0f85b1a20b75e9ebbb954 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: + - key: SpriteEditor.SliceSettings + value: '{"sliceOnImport":false,"gridCellCount":{"x":1.0,"y":1.0},"gridSpriteSize":{"x":64.0,"y":64.0},"gridSpriteOffset":{"x":0.0,"y":0.0},"gridSpritePadding":{"x":0.0,"y":0.0},"pivot":{"x":0.0,"y":0.0},"autoSlicingMethod":0,"spriteAlignment":0,"slicingType":1,"keepEmptyRects":false,"isAlternate":false}' + nameFileIdTable: + icons_0: 908863410 + icons_1: 1738585862 + icons_10: 1444307483 + icons_11: -1395589485 + icons_12: 124778389 + icons_13: -1982365744 + icons_14: 2084276374 + icons_15: 1006293681 + icons_16: 306891712 + icons_17: -1954190500 + icons_18: -1574420798 + icons_19: -418299579 + icons_2: -817023003 + icons_20: 1451536761 + icons_21: -2000261242 + icons_22: -1198127098 + icons_23: 1595017889 + icons_24: -1160500534 + icons_25: 336861722 + icons_26: -109979048 + icons_27: 1518398207 + icons_28: 1575060668 + icons_29: 1233473103 + icons_3: 156957802 + icons_30: 1395937391 + icons_31: 1534881236 + icons_32: 1899104094 + icons_33: 211315003 + icons_34: -871706565 + icons_35: -1451803064 + icons_36: 468833284 + icons_37: -307490319 + icons_38: -619583542 + icons_39: 269021185 + icons_4: -1436261062 + icons_40: -1444946923 + icons_41: -1911627986 + icons_42: 177942662 + icons_43: 2021384978 + icons_44: -827342791 + icons_45: -581076624 + icons_46: 1573354839 + icons_47: -99717105 + icons_48: 1168795402 + icons_49: 1321004419 + icons_5: -154901189 + icons_50: -1152923937 + icons_6: -1687939792 + icons_7: -607465993 + icons_8: -1589539465 + icons_9: 1874037310 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SOAP/Input/ActionMapValue.asset b/Assets/SOAP/Input/ActionMapValue.asset new file mode 100644 index 0000000..e72abce --- /dev/null +++ b/Assets/SOAP/Input/ActionMapValue.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6d52e2f42c12ad4e7baa16ee84bbd922, type: 3} + m_Name: ActionMapValue + m_EditorClassIdentifier: + Description: + value: + value: 0 diff --git a/Assets/SOAP/Input/ActionMapValue.asset.meta b/Assets/SOAP/Input/ActionMapValue.asset.meta new file mode 100644 index 0000000..3cadc82 --- /dev/null +++ b/Assets/SOAP/Input/ActionMapValue.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ec7cdb6af08da343ab1b77dab277f433 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SOAP/Input/AttackInput.asset b/Assets/SOAP/Input/AttackInput.asset new file mode 100644 index 0000000..28bd45b --- /dev/null +++ b/Assets/SOAP/Input/AttackInput.asset @@ -0,0 +1,21 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6c481c42e360ed2b89fb1f5fc4558fdb, type: 3} + m_Name: AttackInput + m_EditorClassIdentifier: + started: {fileID: 0} + performed: {fileID: 0} + canceled: {fileID: 0} + waiting: {fileID: 0} + disabled: {fileID: 0} + reactiveValue: {fileID: 0} + valueAsButton: {fileID: 11400000, guid: 9636b8e5400b0e8e38ae815274f65b69, type: 2} diff --git a/Assets/SOAP/Input/AttackInput.asset.meta b/Assets/SOAP/Input/AttackInput.asset.meta new file mode 100644 index 0000000..7c63128 --- /dev/null +++ b/Assets/SOAP/Input/AttackInput.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0508750ae653d2c1db583388f54419cd +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SOAP/Input/AttackValue.asset b/Assets/SOAP/Input/AttackValue.asset new file mode 100644 index 0000000..f939472 --- /dev/null +++ b/Assets/SOAP/Input/AttackValue.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2d5e43591ac8d995589100187bee292b, type: 3} + m_Name: AttackValue + m_EditorClassIdentifier: + Description: + value: + value: 0 diff --git a/Assets/SOAP/Input/AttackValue.asset.meta b/Assets/SOAP/Input/AttackValue.asset.meta new file mode 100644 index 0000000..488d9e6 --- /dev/null +++ b/Assets/SOAP/Input/AttackValue.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9636b8e5400b0e8e38ae815274f65b69 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SOAP/Input/CurrentControlSchemeValue.asset b/Assets/SOAP/Input/CurrentControlSchemeValue.asset new file mode 100644 index 0000000..84c79c2 --- /dev/null +++ b/Assets/SOAP/Input/CurrentControlSchemeValue.asset @@ -0,0 +1,15 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e5090e65294fb8ff1a7d06242e9c7a1f, type: 3} + m_Name: CurrentControlSchemeValue + m_EditorClassIdentifier: + Description: diff --git a/Assets/SOAP/Input/CurrentControlSchemeValue.asset.meta b/Assets/SOAP/Input/CurrentControlSchemeValue.asset.meta new file mode 100644 index 0000000..3ee2b13 --- /dev/null +++ b/Assets/SOAP/Input/CurrentControlSchemeValue.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 109f5449a99535723ac84505399115e8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SOAP/Input/LookInput.asset b/Assets/SOAP/Input/LookInput.asset new file mode 100644 index 0000000..6305c2e --- /dev/null +++ b/Assets/SOAP/Input/LookInput.asset @@ -0,0 +1,21 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 141143d4bbaccbcda8a23e106eed4b71, type: 3} + m_Name: LookInput + m_EditorClassIdentifier: + started: {fileID: 0} + performed: {fileID: 0} + canceled: {fileID: 0} + waiting: {fileID: 0} + disabled: {fileID: 0} + reactiveValue: {fileID: 11400000, guid: c70e76cde8eafc3beb7fcf9b0680f58a, type: 2} + valueAsButton: {fileID: 0} diff --git a/Assets/SOAP/Input/LookInput.asset.meta b/Assets/SOAP/Input/LookInput.asset.meta new file mode 100644 index 0000000..69a3a6f --- /dev/null +++ b/Assets/SOAP/Input/LookInput.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ab364824386549340bb67aa64460b803 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SOAP/Input/LookValue.asset b/Assets/SOAP/Input/LookValue.asset new file mode 100644 index 0000000..a6b05b9 --- /dev/null +++ b/Assets/SOAP/Input/LookValue.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1a85afc7b5f9bc9f386e4f76d3725daf, type: 3} + m_Name: LookValue + m_EditorClassIdentifier: + Description: + value: + value: {x: 0, y: 0} diff --git a/Assets/SOAP/Input/LookValue.asset.meta b/Assets/SOAP/Input/LookValue.asset.meta new file mode 100644 index 0000000..615e9fa --- /dev/null +++ b/Assets/SOAP/Input/LookValue.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c70e76cde8eafc3beb7fcf9b0680f58a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SOAP/Input/ReadyInput.asset b/Assets/SOAP/Input/ReadyInput.asset new file mode 100644 index 0000000..120f677 --- /dev/null +++ b/Assets/SOAP/Input/ReadyInput.asset @@ -0,0 +1,21 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6c481c42e360ed2b89fb1f5fc4558fdb, type: 3} + m_Name: ReadyInput + m_EditorClassIdentifier: + started: {fileID: 0} + performed: {fileID: 0} + canceled: {fileID: 0} + waiting: {fileID: 0} + disabled: {fileID: 0} + reactiveValue: {fileID: 0} + valueAsButton: {fileID: 11400000, guid: 11f0f1ff4a0ab250ba395b772f722ffb, type: 2} diff --git a/Assets/SOAP/Input/ReadyInput.asset.meta b/Assets/SOAP/Input/ReadyInput.asset.meta new file mode 100644 index 0000000..caf0656 --- /dev/null +++ b/Assets/SOAP/Input/ReadyInput.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 777586949529005bba30dbfac34b23f6 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SOAP/Input/ReadyValue.asset b/Assets/SOAP/Input/ReadyValue.asset new file mode 100644 index 0000000..61071e0 --- /dev/null +++ b/Assets/SOAP/Input/ReadyValue.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2d5e43591ac8d995589100187bee292b, type: 3} + m_Name: ReadyValue + m_EditorClassIdentifier: + Description: + value: + value: 0 diff --git a/Assets/SOAP/Input/ReadyValue.asset.meta b/Assets/SOAP/Input/ReadyValue.asset.meta new file mode 100644 index 0000000..e4c1139 --- /dev/null +++ b/Assets/SOAP/Input/ReadyValue.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 11f0f1ff4a0ab250ba395b772f722ffb +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SOAP/Input/ReloadInput.asset b/Assets/SOAP/Input/ReloadInput.asset new file mode 100644 index 0000000..3831041 --- /dev/null +++ b/Assets/SOAP/Input/ReloadInput.asset @@ -0,0 +1,21 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6c481c42e360ed2b89fb1f5fc4558fdb, type: 3} + m_Name: ReloadInput + m_EditorClassIdentifier: + started: {fileID: 0} + performed: {fileID: 0} + canceled: {fileID: 0} + waiting: {fileID: 0} + disabled: {fileID: 0} + reactiveValue: {fileID: 0} + valueAsButton: {fileID: 11400000, guid: b05fd0c6fbc99c1669a88d60100b83cc, type: 2} diff --git a/Assets/SOAP/Input/ReloadInput.asset.meta b/Assets/SOAP/Input/ReloadInput.asset.meta new file mode 100644 index 0000000..b25f308 --- /dev/null +++ b/Assets/SOAP/Input/ReloadInput.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c32e67c79013726fe9e4572ebc81d809 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SOAP/Input/ReloadValue.asset b/Assets/SOAP/Input/ReloadValue.asset new file mode 100644 index 0000000..1498db2 --- /dev/null +++ b/Assets/SOAP/Input/ReloadValue.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2d5e43591ac8d995589100187bee292b, type: 3} + m_Name: ReloadValue + m_EditorClassIdentifier: + Description: + value: + value: 0 diff --git a/Assets/SOAP/Input/ReloadValue.asset.meta b/Assets/SOAP/Input/ReloadValue.asset.meta new file mode 100644 index 0000000..8331be5 --- /dev/null +++ b/Assets/SOAP/Input/ReloadValue.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b05fd0c6fbc99c1669a88d60100b83cc +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SOAP/Input/UseSecondaryInput.asset b/Assets/SOAP/Input/UseSecondaryInput.asset new file mode 100644 index 0000000..8154c19 --- /dev/null +++ b/Assets/SOAP/Input/UseSecondaryInput.asset @@ -0,0 +1,21 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6c481c42e360ed2b89fb1f5fc4558fdb, type: 3} + m_Name: UseSecondaryInput + m_EditorClassIdentifier: + started: {fileID: 0} + performed: {fileID: 0} + canceled: {fileID: 0} + waiting: {fileID: 0} + disabled: {fileID: 0} + reactiveValue: {fileID: 0} + valueAsButton: {fileID: 11400000, guid: 1b0b91e2eaf1545598f3f51dcebd45dc, type: 2} diff --git a/Assets/SOAP/Input/UseSecondaryInput.asset.meta b/Assets/SOAP/Input/UseSecondaryInput.asset.meta new file mode 100644 index 0000000..ea6d0ba --- /dev/null +++ b/Assets/SOAP/Input/UseSecondaryInput.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3db3d6cd301b4258b9f97804f2f85e75 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SOAP/Input/UseSecondaryValue.asset b/Assets/SOAP/Input/UseSecondaryValue.asset new file mode 100644 index 0000000..ec193c5 --- /dev/null +++ b/Assets/SOAP/Input/UseSecondaryValue.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2d5e43591ac8d995589100187bee292b, type: 3} + m_Name: UseSecondaryValue + m_EditorClassIdentifier: + Description: + value: + value: 0 diff --git a/Assets/SOAP/Input/UseSecondaryValue.asset.meta b/Assets/SOAP/Input/UseSecondaryValue.asset.meta new file mode 100644 index 0000000..f48933f --- /dev/null +++ b/Assets/SOAP/Input/UseSecondaryValue.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1b0b91e2eaf1545598f3f51dcebd45dc +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SOAP/Items/Pistol.asset b/Assets/SOAP/Items/Pistol.asset new file mode 100644 index 0000000..9ee9166 --- /dev/null +++ b/Assets/SOAP/Items/Pistol.asset @@ -0,0 +1,24 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 113edbd3ab279ceccacd0762b2ff405f, type: 3} + m_Name: Pistol + m_EditorClassIdentifier: + id: 3aaccf06-f737-4e9b-9daf-2d99e69a14e7 + displayName: Pistol + description: + icon: {fileID: -1451803064, guid: acf7be11a7aec869a96fca7c3cb2e6ff, type: 3} + tags: [] + worldPrefab: {fileID: 919132149155446097, guid: bf9d862a19647f28795df2e666425003, type: 3} + previewPrefab: {fileID: 919132149155446097, guid: bf9d862a19647f28795df2e666425003, type: 3} + stackable: 0 + maxStackCount: 1 + equippedPrefab: {fileID: 492801038359376716, guid: 34383341362bbd7c59b199a69ed897e4, type: 3} diff --git a/Assets/SOAP/Items/Pistol.asset.meta b/Assets/SOAP/Items/Pistol.asset.meta new file mode 100644 index 0000000..a5016d9 --- /dev/null +++ b/Assets/SOAP/Items/Pistol.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 83a7512982c0868bbacfd587c15efbea +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SOAP/Items/PrimaryEquipment.asset b/Assets/SOAP/Items/PrimaryEquipment.asset new file mode 100644 index 0000000..035f4aa --- /dev/null +++ b/Assets/SOAP/Items/PrimaryEquipment.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5418577a5e2be8f218e64364f8b64a5e, type: 3} + m_Name: PrimaryEquipment + m_EditorClassIdentifier: + Description: + value: + value: {fileID: 11400000, guid: 83a7512982c0868bbacfd587c15efbea, type: 2} diff --git a/Assets/SOAP/Items/PrimaryEquipment.asset.meta b/Assets/SOAP/Items/PrimaryEquipment.asset.meta new file mode 100644 index 0000000..cfc2a27 --- /dev/null +++ b/Assets/SOAP/Items/PrimaryEquipment.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e74eeb9e59208cada8b46439b204756d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SOAP/Items/SecondaryEquipment.asset b/Assets/SOAP/Items/SecondaryEquipment.asset new file mode 100644 index 0000000..5b2778c --- /dev/null +++ b/Assets/SOAP/Items/SecondaryEquipment.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5418577a5e2be8f218e64364f8b64a5e, type: 3} + m_Name: SecondaryEquipment + m_EditorClassIdentifier: + Description: + value: + value: {fileID: 0} diff --git a/Assets/SOAP/Items/SecondaryEquipment.asset.meta b/Assets/SOAP/Items/SecondaryEquipment.asset.meta new file mode 100644 index 0000000..98d138a --- /dev/null +++ b/Assets/SOAP/Items/SecondaryEquipment.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0fbc2e68d809b2e94afaccfb3e696a70 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SOAP/Items/SelectedItem.asset b/Assets/SOAP/Items/SelectedItem.asset new file mode 100644 index 0000000..e8d80bb --- /dev/null +++ b/Assets/SOAP/Items/SelectedItem.asset @@ -0,0 +1,23 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1ca5a6e9c022cf971a176095a74df394, type: 3} + m_Name: SelectedItem + m_EditorClassIdentifier: + id: 7602a606-109c-4a58-8786-f4c95fee7a92 + displayName: + description: + icon: {fileID: 0} + tags: [] + worldPrefab: {fileID: 0} + previewPrefab: {fileID: 0} + stackable: 0 + maxStackCount: 1 diff --git a/Assets/SOAP/Items/SelectedItem.asset.meta b/Assets/SOAP/Items/SelectedItem.asset.meta new file mode 100644 index 0000000..f587c52 --- /dev/null +++ b/Assets/SOAP/Items/SelectedItem.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0f16091ed7577d3268f2725cf823d4da +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SOAP/Items/TestInventory.asset b/Assets/SOAP/Items/TestInventory.asset index 80aeecc..a35eb8d 100644 --- a/Assets/SOAP/Items/TestInventory.asset +++ b/Assets/SOAP/Items/TestInventory.asset @@ -15,4 +15,6 @@ MonoBehaviour: serializableItems: - Item: {fileID: 11400000, guid: 3a9b5fc9b523890cf8abd310dbc64940, type: 2} count: 1 - capacity: 8 + - Item: {fileID: 11400000, guid: 83a7512982c0868bbacfd587c15efbea, type: 2} + count: 1 + capacity: 5 diff --git a/Assets/Scenes/RecycleView.unity b/Assets/Scenes/RecycleView.unity index 1bdef73..13b6e48 100644 --- a/Assets/Scenes/RecycleView.unity +++ b/Assets/Scenes/RecycleView.unity @@ -151,7 +151,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_PanelSettings: {fileID: 11400000, guid: d8894ba51a816c451b072d957a1cfe45, type: 2} m_ParentUI: {fileID: 0} - sourceAsset: {fileID: 9197481963319205126, guid: 0c1a0528290b37272b20d94b19311768, type: 3} + sourceAsset: {fileID: 9197481963319205126, guid: 8cea95d71232d8469b296ca7eb59e0a1, type: 3} m_SortingOrder: 0 m_WorldSpaceSizeMode: 1 m_WorldSpaceWidth: 1920 @@ -180,10 +180,12 @@ MonoBehaviour: m_GameObject: {fileID: 1223357529} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2a819c4e399f6cc6c84ace2a31f18d56, type: 3} + m_Script: {fileID: 11500000, guid: b37256e37c5968be89fa34dd8344744f, type: 3} m_Name: m_EditorClassIdentifier: - uiDocument: {fileID: 1223357530} + doc: {fileID: 1223357530} + inventory: {fileID: 11400000, guid: cd3f9ac2afa71f8b6acb3fb0cacfe441, type: 2} + template: {fileID: 9197481963319205126, guid: 01b74a9c8f3685fb2880379892a17e46, type: 3} --- !u!1 &1411077289 GameObject: m_ObjectHideFlags: 0 @@ -341,8 +343,8 @@ Camera: m_GameObject: {fileID: 1889780342} m_Enabled: 1 serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 0.8726415, b: 0.986825, a: 0} m_projectionMatrixMode: 1 m_GateFitMode: 2 m_FOVAxisMode: 0 diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index c9ab256..231587f 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -227,6 +227,11 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 79264407} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &166564785 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1852576806548013000, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + m_PrefabInstance: {fileID: 1574173917} + m_PrefabAsset: {fileID: 0} --- !u!1 &196218278 GameObject: m_ObjectHideFlags: 0 @@ -852,11 +857,43 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 518677613} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 1.5, y: 1.5, z: 5} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 4.1545897, y: -1.00055, z: 10.09304} m_LocalScale: {x: 5, y: 3, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] + m_Father: {fileID: 835116272} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &578612839 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 578612840} + m_Layer: 0 + m_Name: UI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &578612840 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 578612839} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 860068662} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &584591832 @@ -960,13 +997,84 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 584591832} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 5, y: 2.5, z: 5} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 7.6545897, y: -0.00055003166, z: 10.09304} m_LocalScale: {x: 2, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] + m_Father: {fileID: 835116272} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &835116271 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 835116272} + m_Layer: 0 + m_Name: World Objects + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &835116272 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 835116271} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.65459, y: 2.50055, z: -5.09304} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1363717997} + - {fileID: 1918868763} + - {fileID: 983805441} + - {fileID: 1504087848} + - {fileID: 518677617} + - {fileID: 584591836} + - {fileID: 1801804565} + - {fileID: 1632951288} + - {fileID: 1699158561} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &860068661 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 860068662} + m_Layer: 0 + m_Name: Inventory + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &860068662 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 860068661} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 578612840} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &881234002 GameObject: m_ObjectHideFlags: 0 @@ -1226,12 +1334,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 983805437} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 2, y: 1.5, z: -2} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 4.6545897, y: -1.00055, z: 3.09304} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 835116272} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &983805442 MonoBehaviour: @@ -1607,13 +1715,14 @@ GameObject: - component: {fileID: 1363717997} - component: {fileID: 1363717996} - component: {fileID: 1363717995} - - component: {fileID: 1363718000} - component: {fileID: 1363718001} - component: {fileID: 1363718002} - component: {fileID: 1363718005} - component: {fileID: 1363718004} - component: {fileID: 1363718007} - component: {fileID: 1363718006} + - component: {fileID: 1363718009} + - component: {fileID: 1363718010} m_Layer: 6 m_Name: Player m_TagString: Untagged @@ -1679,160 +1788,16 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1363717994} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 2.65459, y: -2.50055, z: 5.09304} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1574173918} - {fileID: 1915136995} - m_Father: {fileID: 0} + - {fileID: 1425066168} + m_Father: {fileID: 835116272} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1363718000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1363717994} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 62899f850307741f2a39c98a8b639597, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Actions: {fileID: -944628639613478452, guid: 052faaac586de48259a63d0c4782560b, type: 3} - m_NotificationBehavior: 2 - m_UIInputModule: {fileID: 0} - m_DeviceLostEvent: - m_PersistentCalls: - m_Calls: [] - m_DeviceRegainedEvent: - m_PersistentCalls: - m_Calls: [] - m_ControlsChangedEvent: - m_PersistentCalls: - m_Calls: [] - m_ActionEvents: - - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 11400000, guid: 1e657df74182d048884bc6974c28671c, type: 2} - m_TargetAssemblyTypeName: KitsuneCafe.SOAP.ReactiveInputAction`1[[UnityEngine.Vector2, - UnityEngine - m_MethodName: Handle - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - m_ActionId: 351f2ccd-1f9f-44bf-9bec-d62ac5c5f408 - m_ActionName: 'Player/Move[/Keyboard/w,/Keyboard/upArrow,/Keyboard/s,/Keyboard/downArrow,/Keyboard/a,/Keyboard/leftArrow,/Keyboard/d,/Keyboard/rightArrow,/8BitDoUltimatewirelessControllerforPC/Stick]' - - m_PersistentCalls: - m_Calls: [] - m_ActionId: 6b444451-8a00-4d00-a97e-f47457f736a8 - m_ActionName: 'Player/Look[/Mouse/delta,/8BitDoUltimatewirelessControllerforPC/Hat]' - - m_PersistentCalls: - m_Calls: [] - m_ActionId: 6c2ab1b8-8984-453a-af3d-a3c78ae1679a - m_ActionName: 'Player/Attack[/Mouse/leftButton,/8BitDoUltimatewirelessControllerforPC/trigger,/Keyboard/enter]' - - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 11400000, guid: 0be47d328354bb886ac463890f6c362d, type: 2} - m_TargetAssemblyTypeName: KitsuneCafe.SOAP.ReactiveInputAction`1[[System.Single, - mscorlib - m_MethodName: Raise - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - m_ActionId: 852140f2-7766-474d-8707-702459ba45f3 - m_ActionName: 'Player/Interact[/Keyboard/e]' - - m_PersistentCalls: - m_Calls: [] - m_ActionId: 27c5f898-bc57-4ee1-8800-db469aca5fe3 - m_ActionName: 'Player/Crouch[/Keyboard/c]' - - m_PersistentCalls: - m_Calls: [] - m_ActionId: f1ba0d36-48eb-4cd5-b651-1c94a6531f70 - m_ActionName: 'Player/Jump[/Keyboard/space]' - - m_PersistentCalls: - m_Calls: [] - m_ActionId: 2776c80d-3c14-4091-8c56-d04ced07a2b0 - m_ActionName: 'Player/Previous[/Keyboard/1]' - - m_PersistentCalls: - m_Calls: [] - m_ActionId: b7230bb6-fc9b-4f52-8b25-f5e19cb2c2ba - m_ActionName: 'Player/Next[/Keyboard/2]' - - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 11400000, guid: 9063053f98c8d434c82d6f4d5e1569ee, type: 2} - m_TargetAssemblyTypeName: KitsuneCafe.SOAP.ReactiveInputAction`1[[System.Single, - mscorlib - m_MethodName: Handle - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - m_ActionId: 641cd816-40e6-41b4-8c3d-04687c349290 - m_ActionName: 'Player/Sprint[/Keyboard/leftShift]' - - m_PersistentCalls: - m_Calls: [] - m_ActionId: c95b2375-e6d9-4b88-9c4c-c5e76515df4b - m_ActionName: 'UI/Navigate[/8BitDoUltimatewirelessControllerforPC/Stick/up,/8BitDoUltimatewirelessControllerforPC/Stick/down,/8BitDoUltimatewirelessControllerforPC/Stick/left,/8BitDoUltimatewirelessControllerforPC/Stick/right,/Keyboard/w,/Keyboard/upArrow,/Keyboard/s,/Keyboard/downArrow,/Keyboard/a,/Keyboard/leftArrow,/Keyboard/d,/Keyboard/rightArrow]' - - m_PersistentCalls: - m_Calls: [] - m_ActionId: 7607c7b6-cd76-4816-beef-bd0341cfe950 - m_ActionName: 'UI/Submit[/Keyboard/enter,/8BitDoUltimatewirelessControllerforPC/trigger]' - - m_PersistentCalls: - m_Calls: [] - m_ActionId: 15cef263-9014-4fd5-94d9-4e4a6234a6ef - m_ActionName: 'UI/Cancel[/Keyboard/escape]' - - m_PersistentCalls: - m_Calls: [] - m_ActionId: 32b35790-4ed0-4e9a-aa41-69ac6d629449 - m_ActionName: 'UI/Point[/Mouse/position]' - - m_PersistentCalls: - m_Calls: [] - m_ActionId: 3c7022bf-7922-4f7c-a998-c437916075ad - m_ActionName: 'UI/Click[/Mouse/leftButton]' - - m_PersistentCalls: - m_Calls: [] - m_ActionId: 44b200b1-1557-4083-816c-b22cbdf77ddf - m_ActionName: 'UI/RightClick[/Mouse/rightButton]' - - m_PersistentCalls: - m_Calls: [] - m_ActionId: dad70c86-b58c-4b17-88ad-f5e53adf419e - m_ActionName: 'UI/MiddleClick[/Mouse/middleButton]' - - m_PersistentCalls: - m_Calls: [] - m_ActionId: 0489e84a-4833-4c40-bfae-cea84b696689 - m_ActionName: 'UI/ScrollWheel[/Mouse/scroll]' - - m_PersistentCalls: - m_Calls: [] - m_ActionId: 24908448-c609-4bc3-a128-ea258674378a - m_ActionName: UI/TrackedDevicePosition - - m_PersistentCalls: - m_Calls: [] - m_ActionId: 9caa3d8a-6b2f-4e8e-8bad-6ede561bd9be - m_ActionName: UI/TrackedDeviceOrientation - m_NeverAutoSwitchControlSchemes: 0 - m_DefaultControlScheme: - m_DefaultActionMap: Player - m_SplitScreenIndex: -1 - m_Camera: {fileID: 0} --- !u!114 &1363718001 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1943,7 +1908,8 @@ MonoBehaviour: sprintingParameter: IsSprinting walkAnimationParamMax: 0.5 sprintAnimationParamMax: 1 - readyParam: + readyParam: IsReady + equipment: {fileID: 1363718009} --- !u!114 &1363718005 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1988,8 +1954,85 @@ MonoBehaviour: collider: {fileID: 1363717996} selectedObject: {fileID: 11400000, guid: b030215acaabb18a58d812e296e6e99f, type: 2} interactSource: {fileID: 11400000, guid: 8ad6b00b0192bc3d4b39b6f91de2447f, type: 2} - updateFrequency: 7 minimumChangeDelta: 0.1 +--- !u!114 &1363718009 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1363717994} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ed1241db3bd1d74899513f3875cbe1, type: 3} + m_Name: + m_EditorClassIdentifier: + inventory: {fileID: 1363718006} + attachment: {fileID: 1425066167} + primary: {fileID: 11400000, guid: e74eeb9e59208cada8b46439b204756d, type: 2} + secondary: {fileID: 11400000, guid: 0fbc2e68d809b2e94afaccfb3e696a70, type: 2} +--- !u!114 &1363718010 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1363717994} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c1373e9dcadbfb4aa0bf837a1d44ce1, type: 3} + m_Name: + m_EditorClassIdentifier: + camera: {fileID: 330585545} + equipment: {fileID: 1363718009} + motor: {fileID: 1363718002} + controlScheme: {fileID: 11400000, guid: 109f5449a99535723ac84505399115e8, type: 2} + lookValue: {fileID: 11400000, guid: c70e76cde8eafc3beb7fcf9b0680f58a, type: 2} +--- !u!1 &1425066166 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1425066168} + - component: {fileID: 1425066167} + m_Layer: 6 + m_Name: Equipment + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1425066167 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1425066166} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 795d0a02aa223804cb45ee88dd31f479, type: 3} + m_Name: + m_EditorClassIdentifier: + bone: {fileID: 166564785} +--- !u!4 &1425066168 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1425066166} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1363717997} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1500704131 GameObject: m_ObjectHideFlags: 0 @@ -2199,12 +2242,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1504087844} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 8.5, y: 1.5, z: 5} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 11.15459, y: -1.00055, z: 10.09304} m_LocalScale: {x: 5, y: 3, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 835116272} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &1574173917 PrefabInstance: @@ -2258,10 +2301,46 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: -8191740002585371210, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 2.5393105 + objectReference: {fileID: 0} + - target: {fileID: -8191740002585371210, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -2.7602558 + objectReference: {fileID: 0} + - target: {fileID: -8191740002585371210, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -25.305489 + objectReference: {fileID: 0} - target: {fileID: -8183481454299698827, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: -8068027186691560116, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 31.676178 + objectReference: {fileID: 0} + - target: {fileID: -8068027186691560116, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 1.0288787 + objectReference: {fileID: 0} + - target: {fileID: -8068027186691560116, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 3.625372 + objectReference: {fileID: 0} + - target: {fileID: -8021001004253913084, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 2.5967364 + objectReference: {fileID: 0} + - target: {fileID: -8021001004253913084, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -7.860185 + objectReference: {fileID: 0} + - target: {fileID: -8021001004253913084, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -1.1188357 + objectReference: {fileID: 0} - target: {fileID: -8006009767450596044, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 @@ -2274,10 +2353,70 @@ PrefabInstance: propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: -7219772299731422950, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -27.245651 + objectReference: {fileID: 0} + - target: {fileID: -7219772299731422950, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 16.650688 + objectReference: {fileID: 0} + - target: {fileID: -7219772299731422950, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -54.267376 + objectReference: {fileID: 0} - target: {fileID: -7121769801107515815, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: -6874584590210671055, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 49.708157 + objectReference: {fileID: 0} + - target: {fileID: -6874584590210671055, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 16.607178 + objectReference: {fileID: 0} + - target: {fileID: -6874584590210671055, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 13.726621 + objectReference: {fileID: 0} + - target: {fileID: -6857788192064577062, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -11.022057 + objectReference: {fileID: 0} + - target: {fileID: -6857788192064577062, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -7.932933 + objectReference: {fileID: 0} + - target: {fileID: -6857788192064577062, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -2.8756566 + objectReference: {fileID: 0} + - target: {fileID: -6803169544883306252, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 72.349594 + objectReference: {fileID: 0} + - target: {fileID: -6803169544883306252, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 121.42653 + objectReference: {fileID: 0} + - target: {fileID: -6803169544883306252, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -130.49387 + objectReference: {fileID: 0} + - target: {fileID: -6768225281626788248, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 51.532135 + objectReference: {fileID: 0} + - target: {fileID: -6768225281626788248, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -2.842689 + objectReference: {fileID: 0} + - target: {fileID: -6768225281626788248, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -5.8853307 + objectReference: {fileID: 0} - target: {fileID: -6621945745981909287, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 @@ -2298,14 +2437,50 @@ PrefabInstance: propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: -6024149945523619558, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 18.732464 + objectReference: {fileID: 0} + - target: {fileID: -6024149945523619558, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.26113355 + objectReference: {fileID: 0} + - target: {fileID: -6024149945523619558, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -1.5831149 + objectReference: {fileID: 0} - target: {fileID: -5857696854640597626, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: -5665043316445423941, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 19.92245 + objectReference: {fileID: 0} + - target: {fileID: -5665043316445423941, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0.37387395 + objectReference: {fileID: 0} + - target: {fileID: -5665043316445423941, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 2.1285405 + objectReference: {fileID: 0} - target: {fileID: -5561550452697079657, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: -5480977901411583989, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 49.668385 + objectReference: {fileID: 0} + - target: {fileID: -5480977901411583989, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -2.5498168 + objectReference: {fileID: 0} + - target: {fileID: -5480977901411583989, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -5.506392 + objectReference: {fileID: 0} - target: {fileID: -5195048882033904264, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 @@ -2334,14 +2509,62 @@ PrefabInstance: propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: -3746190272939815206, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -26.011105 + objectReference: {fileID: 0} + - target: {fileID: -3746190272939815206, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 9.33477 + objectReference: {fileID: 0} + - target: {fileID: -3746190272939815206, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -2.5860448 + objectReference: {fileID: 0} - target: {fileID: -3542885339558904099, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: -3480699329000672020, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -6.6951637 + objectReference: {fileID: 0} + - target: {fileID: -3480699329000672020, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -6.4102345 + objectReference: {fileID: 0} + - target: {fileID: -3480699329000672020, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -3.166779 + objectReference: {fileID: 0} - target: {fileID: -3478013746326755454, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: -3432401550182100168, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 41.0989 + objectReference: {fileID: 0} + - target: {fileID: -3432401550182100168, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 10.770669 + objectReference: {fileID: 0} + - target: {fileID: -3432401550182100168, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -61.627575 + objectReference: {fileID: 0} + - target: {fileID: -3321919801592875672, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -1.0028826 + objectReference: {fileID: 0} + - target: {fileID: -3321919801592875672, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -18.883387 + objectReference: {fileID: 0} + - target: {fileID: -3321919801592875672, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -10.321247 + objectReference: {fileID: 0} - target: {fileID: -3214267034143217929, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 @@ -2350,14 +2573,98 @@ PrefabInstance: propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: -2899422035419094908, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 80.519745 + objectReference: {fileID: 0} + - target: {fileID: -2899422035419094908, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -145.80515 + objectReference: {fileID: 0} + - target: {fileID: -2899422035419094908, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -150.79942 + objectReference: {fileID: 0} + - target: {fileID: -2770666803903516498, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 39.174408 + objectReference: {fileID: 0} + - target: {fileID: -2770666803903516498, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0.0000033041151 + objectReference: {fileID: 0} + - target: {fileID: -2770666803903516498, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0.00000047601654 + objectReference: {fileID: 0} - target: {fileID: -2656431786303760210, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: -2594260964506120097, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 49.85728 + objectReference: {fileID: 0} + - target: {fileID: -2594260964506120097, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 5.8566966 + objectReference: {fileID: 0} + - target: {fileID: -2594260964506120097, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.2583566 + objectReference: {fileID: 0} + - target: {fileID: -2389525917609993686, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 59.867607 + objectReference: {fileID: 0} + - target: {fileID: -2389525917609993686, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 5.8658566 + objectReference: {fileID: 0} + - target: {fileID: -2389525917609993686, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 10.169066 + objectReference: {fileID: 0} - target: {fileID: -2084811680363313996, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: -2072040086291044643, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -30.908527 + objectReference: {fileID: 0} + - target: {fileID: -2072040086291044643, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 11.559987 + objectReference: {fileID: 0} + - target: {fileID: -2072040086291044643, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -5.758815 + objectReference: {fileID: 0} + - target: {fileID: -1864740628597940677, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 23.891237 + objectReference: {fileID: 0} + - target: {fileID: -1864740628597940677, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0.5505373 + objectReference: {fileID: 0} + - target: {fileID: -1864740628597940677, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 2.6017249 + objectReference: {fileID: 0} + - target: {fileID: -1812909498023395591, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0.0000019083852 + objectReference: {fileID: 0} + - target: {fileID: -1812909498023395591, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.000047138892 + objectReference: {fileID: 0} + - target: {fileID: -1812909498023395591, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -82.18631 + objectReference: {fileID: 0} - target: {fileID: -1781356600409242780, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 @@ -2378,6 +2685,30 @@ PrefabInstance: propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: -1070350730909333850, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 25.356129 + objectReference: {fileID: 0} + - target: {fileID: -1070350730909333850, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -1.5339687 + objectReference: {fileID: 0} + - target: {fileID: -1070350730909333850, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -4.8776097 + objectReference: {fileID: 0} + - target: {fileID: -870823317777057635, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -7.690381 + objectReference: {fileID: 0} + - target: {fileID: -870823317777057635, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 24.266287 + objectReference: {fileID: 0} + - target: {fileID: -870823317777057635, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -26.61609 + objectReference: {fileID: 0} - target: {fileID: -751476226918971245, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 @@ -2394,6 +2725,18 @@ PrefabInstance: propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: -104578136787704052, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 56.92608 + objectReference: {fileID: 0} + - target: {fileID: -104578136787704052, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -7.4031186 + objectReference: {fileID: 0} + - target: {fileID: -104578136787704052, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -13.187063 + objectReference: {fileID: 0} - target: {fileID: -76546954072915012, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 @@ -2402,10 +2745,34 @@ PrefabInstance: propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 366175167995203695, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 4.161153 + objectReference: {fileID: 0} + - target: {fileID: 366175167995203695, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -7.89925 + objectReference: {fileID: 0} + - target: {fileID: 366175167995203695, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.9497503 + objectReference: {fileID: 0} - target: {fileID: 414117464747255840, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 608321761475470972, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 58.412933 + objectReference: {fileID: 0} + - target: {fileID: 608321761475470972, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -32.219357 + objectReference: {fileID: 0} + - target: {fileID: 608321761475470972, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -27.812729 + objectReference: {fileID: 0} - target: {fileID: 919132149155446097, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Name value: X Bot @@ -2418,18 +2785,102 @@ PrefabInstance: propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 1092408308860062549, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 49.25673 + objectReference: {fileID: 0} + - target: {fileID: 1092408308860062549, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -2.4892333 + objectReference: {fileID: 0} + - target: {fileID: 1092408308860062549, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -5.4266458 + objectReference: {fileID: 0} + - target: {fileID: 1189529853000058984, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 58.601585 + objectReference: {fileID: 0} + - target: {fileID: 1189529853000058984, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -8.05534 + objectReference: {fileID: 0} + - target: {fileID: 1189529853000058984, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -9.966515 + objectReference: {fileID: 0} + - target: {fileID: 1330755669629619180, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 31.460888 + objectReference: {fileID: 0} + - target: {fileID: 1330755669629619180, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 2.3883386 + objectReference: {fileID: 0} + - target: {fileID: 1330755669629619180, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 3.0228832 + objectReference: {fileID: 0} - target: {fileID: 1339101018200438765, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 1564860333797465651, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 60.896133 + objectReference: {fileID: 0} + - target: {fileID: 1564860333797465651, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 6.2473845 + objectReference: {fileID: 0} + - target: {fileID: 1564860333797465651, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 10.607912 + objectReference: {fileID: 0} - target: {fileID: 1711505207429034123, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 1852576806548013000, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -31.44302 + objectReference: {fileID: 0} + - target: {fileID: 1852576806548013000, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -44.494686 + objectReference: {fileID: 0} + - target: {fileID: 1852576806548013000, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -9.831146 + objectReference: {fileID: 0} - target: {fileID: 2158975759703390516, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 2559285840627121667, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -32.385113 + objectReference: {fileID: 0} + - target: {fileID: 2559285840627121667, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -10.229966 + objectReference: {fileID: 0} + - target: {fileID: 2559285840627121667, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 162.74034 + objectReference: {fileID: 0} + - target: {fileID: 2563496969622287784, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0.000040444043 + objectReference: {fileID: 0} + - target: {fileID: 2563496969622287784, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.0000126556115 + objectReference: {fileID: 0} + - target: {fileID: 2563496969622287784, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 29.423206 + objectReference: {fileID: 0} - target: {fileID: 2586065998465600510, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 @@ -2442,6 +2893,18 @@ PrefabInstance: propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 2916570863362053800, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 39.174488 + objectReference: {fileID: 0} + - target: {fileID: 2916570863362053800, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.000004402392 + objectReference: {fileID: 0} + - target: {fileID: 2916570863362053800, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000034094508 + objectReference: {fileID: 0} - target: {fileID: 3047284246813455858, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 @@ -2450,6 +2913,18 @@ PrefabInstance: propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 3183749884578473501, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 39.129963 + objectReference: {fileID: 0} + - target: {fileID: 3183749884578473501, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 1.7005358 + objectReference: {fileID: 0} + - target: {fileID: 3183749884578473501, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 4.782318 + objectReference: {fileID: 0} - target: {fileID: 3588849560313704984, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 @@ -2458,6 +2933,18 @@ PrefabInstance: propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 3667946887678727147, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 50.94207 + objectReference: {fileID: 0} + - target: {fileID: 3667946887678727147, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -5.3916473 + objectReference: {fileID: 0} + - target: {fileID: 3667946887678727147, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -20.710957 + objectReference: {fileID: 0} - target: {fileID: 3882815353823017779, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 @@ -2486,18 +2973,150 @@ PrefabInstance: propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 4747904710347621765, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 38.225513 + objectReference: {fileID: 0} + - target: {fileID: 4747904710347621765, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 3.1315303 + objectReference: {fileID: 0} + - target: {fileID: 4747904710347621765, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -8.314171 + objectReference: {fileID: 0} + - target: {fileID: 5048025441337412694, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 17.465261 + objectReference: {fileID: 0} + - target: {fileID: 5048025441337412694, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 18.092936 + objectReference: {fileID: 0} + - target: {fileID: 5048025441337412694, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -15.171781 + objectReference: {fileID: 0} + - target: {fileID: 5097370190579632962, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 51.006687 + objectReference: {fileID: 0} + - target: {fileID: 5097370190579632962, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -2.7569404 + objectReference: {fileID: 0} + - target: {fileID: 5097370190579632962, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -5.7754064 + objectReference: {fileID: 0} - target: {fileID: 5120724536234783804, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 5372056943023685468, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 71.165955 + objectReference: {fileID: 0} + - target: {fileID: 5372056943023685468, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -9.910328 + objectReference: {fileID: 0} + - target: {fileID: 5372056943023685468, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -13.818539 + objectReference: {fileID: 0} + - target: {fileID: 5465940246521907071, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 2.248159 + objectReference: {fileID: 0} + - target: {fileID: 5465940246521907071, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 54.242958 + objectReference: {fileID: 0} + - target: {fileID: 5465940246521907071, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 6.6920185 + objectReference: {fileID: 0} + - target: {fileID: 6000407479487422213, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 28.047518 + objectReference: {fileID: 0} + - target: {fileID: 6000407479487422213, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 37.13001 + objectReference: {fileID: 0} + - target: {fileID: 6000407479487422213, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 134.72888 + objectReference: {fileID: 0} - target: {fileID: 6240733294840144465, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 6341119541397085964, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 67.76267 + objectReference: {fileID: 0} + - target: {fileID: 6341119541397085964, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -162.95265 + objectReference: {fileID: 0} + - target: {fileID: 6341119541397085964, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -168.5062 + objectReference: {fileID: 0} + - target: {fileID: 6502182839619065283, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -33.96478 + objectReference: {fileID: 0} + - target: {fileID: 6502182839619065283, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 38.04091 + objectReference: {fileID: 0} + - target: {fileID: 6502182839619065283, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 33.953613 + objectReference: {fileID: 0} - target: {fileID: 6514210125699187276, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 6515712193588681746, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 11.981812 + objectReference: {fileID: 0} + - target: {fileID: 6515712193588681746, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -7.481307 + objectReference: {fileID: 0} + - target: {fileID: 6515712193588681746, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 2.0068052 + objectReference: {fileID: 0} + - target: {fileID: 6655383506977046455, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 58.71873 + objectReference: {fileID: 0} + - target: {fileID: 6655383506977046455, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 5.4715405 + objectReference: {fileID: 0} + - target: {fileID: 6655383506977046455, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 9.710493 + objectReference: {fileID: 0} + - target: {fileID: 7078722787440015773, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 82.09471 + objectReference: {fileID: 0} + - target: {fileID: 7078722787440015773, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 11.085017 + objectReference: {fileID: 0} + - target: {fileID: 7078722787440015773, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -88.589424 + objectReference: {fileID: 0} - target: {fileID: 7363479242261063072, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 @@ -2506,6 +3125,18 @@ PrefabInstance: propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 7666680083751660616, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 61.435116 + objectReference: {fileID: 0} + - target: {fileID: 7666680083751660616, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 6.4591293 + objectReference: {fileID: 0} + - target: {fileID: 7666680083751660616, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 10.849625 + objectReference: {fileID: 0} - target: {fileID: 7732535366517880319, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 @@ -2518,6 +3149,42 @@ PrefabInstance: propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 8169382868667117632, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -15.53679 + objectReference: {fileID: 0} + - target: {fileID: 8169382868667117632, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 14.025381 + objectReference: {fileID: 0} + - target: {fileID: 8169382868667117632, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -174.42992 + objectReference: {fileID: 0} + - target: {fileID: 8255111157037086696, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 41.43787 + objectReference: {fileID: 0} + - target: {fileID: 8255111157037086696, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 3.9581158 + objectReference: {fileID: 0} + - target: {fileID: 8255111157037086696, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 2.306935 + objectReference: {fileID: 0} + - target: {fileID: 8447082967072642302, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 40.87401 + objectReference: {fileID: 0} + - target: {fileID: 8447082967072642302, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 4.0000277 + objectReference: {fileID: 0} + - target: {fileID: 8447082967072642302, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 19.995592 + objectReference: {fileID: 0} - target: {fileID: 8817898888258712963, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} propertyPath: m_Layer value: 6 @@ -2543,6 +3210,71 @@ Transform: m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 39499efe4f068c9f1aa32d2ea7e17fa9, type: 3} m_PrefabInstance: {fileID: 1574173917} m_PrefabAsset: {fileID: 0} +--- !u!1001 &1576051083 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1801804565} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 015f1ddb77bbd0ce980de36f9e227c78, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 015f1ddb77bbd0ce980de36f9e227c78, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 015f1ddb77bbd0ce980de36f9e227c78, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 015f1ddb77bbd0ce980de36f9e227c78, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 015f1ddb77bbd0ce980de36f9e227c78, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 015f1ddb77bbd0ce980de36f9e227c78, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 015f1ddb77bbd0ce980de36f9e227c78, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 015f1ddb77bbd0ce980de36f9e227c78, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 015f1ddb77bbd0ce980de36f9e227c78, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 015f1ddb77bbd0ce980de36f9e227c78, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 015f1ddb77bbd0ce980de36f9e227c78, type: 3} + propertyPath: m_Name + value: Model + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 015f1ddb77bbd0ce980de36f9e227c78, type: 3} + insertIndex: -1 + addedObject: {fileID: 1881513959} + m_SourcePrefab: {fileID: 100100000, guid: 015f1ddb77bbd0ce980de36f9e227c78, type: 3} +--- !u!4 &1576051084 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 015f1ddb77bbd0ce980de36f9e227c78, type: 3} + m_PrefabInstance: {fileID: 1576051083} + m_PrefabAsset: {fileID: 0} --- !u!1 &1632951287 GameObject: m_ObjectHideFlags: 0 @@ -2567,13 +3299,13 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1632951287} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 5, y: 1, z: 5} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 7.6545897, y: -1.50055, z: 10.09304} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1190731366} - m_Father: {fileID: 0} + m_Father: {fileID: 835116272} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1699158560 GameObject: @@ -2599,14 +3331,14 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1699158560} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 2.65459, y: -2.50055, z: 5.09304} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1740748269} - {fileID: 1790144273} - m_Father: {fileID: 0} + m_Father: {fileID: 835116272} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1740748256 stripped GameObject: @@ -2694,6 +3426,422 @@ Transform: - {fileID: 1028304588} m_Father: {fileID: 1699158561} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1801804563 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1801804565} + - component: {fileID: 1801804567} + - component: {fileID: 1801804566} + - component: {fileID: 1801804564} + - component: {fileID: 1801804569} + m_Layer: 0 + m_Name: Dummy + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1801804564 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1801804563} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6bf44a57a6a836c249eac8ba9521ce64, type: 3} + m_Name: + m_EditorClassIdentifier: + max: + value: 25 + current: + value: 0 + restoreOnStart: 1 +--- !u!4 &1801804565 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1801804563} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: 1, z: -0, w: 0} + m_LocalPosition: {x: -1.3454101, y: -2.50055, z: 4.09304} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1576051084} + m_Father: {fileID: 835116272} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} +--- !u!54 &1801804566 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1801804563} + serializedVersion: 5 + m_Mass: 1 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 1 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!136 &1801804567 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1801804563} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 1, z: 0} +--- !u!114 &1801804569 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1801804563} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 452b09482ed36cc83ab8817f704c9acd, type: 3} + m_Name: + m_EditorClassIdentifier: + health: {fileID: 1801804564} + animator: {fileID: 1881513959} + hitParam: 1654612129 + deathParam: 20298039 +--- !u!1 &1881513958 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 015f1ddb77bbd0ce980de36f9e227c78, type: 3} + m_PrefabInstance: {fileID: 1576051083} + m_PrefabAsset: {fileID: 0} +--- !u!95 &1881513959 +Animator: + serializedVersion: 7 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1881513958} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: e48039382405808f08691dc1cb984c22, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_AnimatePhysics: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 +--- !u!1 &1896475836 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1896475839} + - component: {fileID: 1896475838} + - component: {fileID: 1896475837} + m_Layer: 0 + m_Name: Input + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1896475837 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1896475836} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 833c47d8284ff8354ba97485ed999d8e, type: 3} + m_Name: + m_EditorClassIdentifier: + playerInput: {fileID: 1896475838} + controlScheme: {fileID: 11400000, guid: 109f5449a99535723ac84505399115e8, type: 2} + actionMap: {fileID: 11400000, guid: ec7cdb6af08da343ab1b77dab277f433, type: 2} +--- !u!114 &1896475838 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1896475836} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 62899f850307741f2a39c98a8b639597, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Actions: {fileID: -944628639613478452, guid: 052faaac586de48259a63d0c4782560b, type: 3} + m_NotificationBehavior: 2 + m_UIInputModule: {fileID: 0} + m_DeviceLostEvent: + m_PersistentCalls: + m_Calls: [] + m_DeviceRegainedEvent: + m_PersistentCalls: + m_Calls: [] + m_ControlsChangedEvent: + m_PersistentCalls: + m_Calls: [] + m_ActionEvents: + - m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400000, guid: 1e657df74182d048884bc6974c28671c, type: 2} + m_TargetAssemblyTypeName: KitsuneCafe.SOAP.ReactiveInputAction`1[[UnityEngine.Vector2, + UnityEngine + m_MethodName: Handle + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_ActionId: 351f2ccd-1f9f-44bf-9bec-d62ac5c5f408 + m_ActionName: 'Player/Move[/Keyboard/w,/Keyboard/upArrow,/Keyboard/s,/Keyboard/downArrow,/Keyboard/a,/Keyboard/leftArrow,/Keyboard/d,/Keyboard/rightArrow,/8BitDoUltimatewirelessControllerforPC/Stick]' + - m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400000, guid: ab364824386549340bb67aa64460b803, type: 2} + m_TargetAssemblyTypeName: KitsuneCafe.SOAP.ReactiveInputAction`1[[UnityEngine.Vector2, + UnityEngine + m_MethodName: UpdateValue + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_ActionId: 6b444451-8a00-4d00-a97e-f47457f736a8 + m_ActionName: 'Player/Look[/Mouse/delta,/8BitDoUltimatewirelessControllerforPC/Hat]' + - m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400000, guid: 0508750ae653d2c1db583388f54419cd, type: 2} + m_TargetAssemblyTypeName: KitsuneCafe.SOAP.ReactiveInputAction`1[[System.Single, + mscorlib + m_MethodName: Handle + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_ActionId: 6c2ab1b8-8984-453a-af3d-a3c78ae1679a + m_ActionName: 'Player/Attack[/Mouse/leftButton,/8BitDoUltimatewirelessControllerforPC/trigger,/Keyboard/enter]' + - m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400000, guid: 0be47d328354bb886ac463890f6c362d, type: 2} + m_TargetAssemblyTypeName: KitsuneCafe.SOAP.ReactiveInputAction`1[[System.Single, + mscorlib + m_MethodName: Raise + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_ActionId: 852140f2-7766-474d-8707-702459ba45f3 + m_ActionName: 'Player/Interact[/Keyboard/e]' + - m_PersistentCalls: + m_Calls: [] + m_ActionId: 27c5f898-bc57-4ee1-8800-db469aca5fe3 + m_ActionName: 'Player/Crouch[/Keyboard/c]' + - m_PersistentCalls: + m_Calls: [] + m_ActionId: f1ba0d36-48eb-4cd5-b651-1c94a6531f70 + m_ActionName: 'Player/Jump[/Keyboard/space]' + - m_PersistentCalls: + m_Calls: [] + m_ActionId: 2776c80d-3c14-4091-8c56-d04ced07a2b0 + m_ActionName: 'Player/Previous[/Keyboard/1]' + - m_PersistentCalls: + m_Calls: [] + m_ActionId: b7230bb6-fc9b-4f52-8b25-f5e19cb2c2ba + m_ActionName: 'Player/Next[/Keyboard/2]' + - m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400000, guid: 9063053f98c8d434c82d6f4d5e1569ee, type: 2} + m_TargetAssemblyTypeName: KitsuneCafe.SOAP.ReactiveInputAction`1[[System.Single, + mscorlib + m_MethodName: Handle + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_ActionId: 641cd816-40e6-41b4-8c3d-04687c349290 + m_ActionName: 'Player/Sprint[/Keyboard/leftShift]' + - m_PersistentCalls: + m_Calls: [] + m_ActionId: c95b2375-e6d9-4b88-9c4c-c5e76515df4b + m_ActionName: 'UI/Navigate[/8BitDoUltimatewirelessControllerforPC/Stick/up,/8BitDoUltimatewirelessControllerforPC/Stick/down,/8BitDoUltimatewirelessControllerforPC/Stick/left,/8BitDoUltimatewirelessControllerforPC/Stick/right,/Keyboard/w,/Keyboard/upArrow,/Keyboard/s,/Keyboard/downArrow,/Keyboard/a,/Keyboard/leftArrow,/Keyboard/d,/Keyboard/rightArrow]' + - m_PersistentCalls: + m_Calls: [] + m_ActionId: 7607c7b6-cd76-4816-beef-bd0341cfe950 + m_ActionName: 'UI/Submit[/Keyboard/enter,/8BitDoUltimatewirelessControllerforPC/trigger]' + - m_PersistentCalls: + m_Calls: [] + m_ActionId: 15cef263-9014-4fd5-94d9-4e4a6234a6ef + m_ActionName: 'UI/Cancel[/Keyboard/escape]' + - m_PersistentCalls: + m_Calls: [] + m_ActionId: 32b35790-4ed0-4e9a-aa41-69ac6d629449 + m_ActionName: 'UI/Point[/Mouse/position]' + - m_PersistentCalls: + m_Calls: [] + m_ActionId: 3c7022bf-7922-4f7c-a998-c437916075ad + m_ActionName: 'UI/Click[/Mouse/leftButton]' + - m_PersistentCalls: + m_Calls: [] + m_ActionId: 44b200b1-1557-4083-816c-b22cbdf77ddf + m_ActionName: 'UI/RightClick[/Mouse/rightButton]' + - m_PersistentCalls: + m_Calls: [] + m_ActionId: dad70c86-b58c-4b17-88ad-f5e53adf419e + m_ActionName: 'UI/MiddleClick[/Mouse/middleButton]' + - m_PersistentCalls: + m_Calls: [] + m_ActionId: 0489e84a-4833-4c40-bfae-cea84b696689 + m_ActionName: 'UI/ScrollWheel[/Mouse/scroll]' + - m_PersistentCalls: + m_Calls: [] + m_ActionId: 24908448-c609-4bc3-a128-ea258674378a + m_ActionName: UI/TrackedDevicePosition + - m_PersistentCalls: + m_Calls: [] + m_ActionId: 9caa3d8a-6b2f-4e8e-8bad-6ede561bd9be + m_ActionName: UI/TrackedDeviceOrientation + - m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400000, guid: 777586949529005bba30dbfac34b23f6, type: 2} + m_TargetAssemblyTypeName: KitsuneCafe.SOAP.ReactiveInputAction`1[[System.Single, + mscorlib + m_MethodName: Handle + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_ActionId: 43858dfd-eb1e-4d25-81c9-786eda9f383b + m_ActionName: 'Player/Ready[/Mouse/rightButton]' + - m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400000, guid: c32e67c79013726fe9e4572ebc81d809, type: 2} + m_TargetAssemblyTypeName: KitsuneCafe.SOAP.ReactiveInputAction`1[[System.Single, + mscorlib + m_MethodName: Handle + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_ActionId: 8901b52c-9d31-48a0-960d-340a765f6808 + m_ActionName: 'Player/Reload[/Keyboard/r]' + - m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400000, guid: 3db3d6cd301b4258b9f97804f2f85e75, type: 2} + m_TargetAssemblyTypeName: KitsuneCafe.SOAP.ReactiveInputAction`1[[System.Single, + mscorlib + m_MethodName: Handle + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_ActionId: 5588bce1-4ae1-4cda-8730-838650924709 + m_ActionName: 'Player/Use Secondary[/Keyboard/c,/Mouse/backButton]' + m_NeverAutoSwitchControlSchemes: 0 + m_DefaultControlScheme: + m_DefaultActionMap: Player + m_SplitScreenIndex: -1 + m_Camera: {fileID: 0} +--- !u!4 &1896475839 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1896475836} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 42.22913, y: 0, z: 25.19644} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1914178465 GameObject: m_ObjectHideFlags: 0 @@ -2705,7 +3853,7 @@ GameObject: - component: {fileID: 1914178467} - component: {fileID: 1914178466} m_Layer: 0 - m_Name: Selected Object + m_Name: Selected Object Handler m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -2899,12 +4047,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1918868759} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 2.65459, y: -2.50055, z: 5.09304} m_LocalScale: {x: 10, y: 1, z: 10} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 835116272} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2044644165 GameObject: @@ -3182,13 +4330,8 @@ SceneRoots: - {fileID: 230761406} - {fileID: 410087041} - {fileID: 881234004} - - {fileID: 1363717997} - - {fileID: 1918868763} - - {fileID: 983805441} - - {fileID: 1504087848} - - {fileID: 518677617} - - {fileID: 584591836} - - {fileID: 1632951288} + - {fileID: 1896475839} - {fileID: 1281046468} - {fileID: 1914178467} - - {fileID: 1699158561} + - {fileID: 578612840} + - {fileID: 835116272} diff --git a/Assets/Scripts/Editor/PropertyDrawers/AnimatorParamPropertyDrawer.cs b/Assets/Scripts/Editor/PropertyDrawers/AnimatorParamPropertyDrawer.cs index 5b32c4d..3aa5078 100644 --- a/Assets/Scripts/Editor/PropertyDrawers/AnimatorParamPropertyDrawer.cs +++ b/Assets/Scripts/Editor/PropertyDrawers/AnimatorParamPropertyDrawer.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; using KitsuneCafe.Extension; -using KitsuneCafe.System.Attributes; +using KitsuneCafe.Sys.Attributes; using UnityEditor; using UnityEditor.UIElements; using UnityEngine; @@ -132,4 +132,4 @@ namespace KitsuneCafe.Editor } } } -} \ No newline at end of file +} diff --git a/Assets/Scripts/Editor/PropertyDrawers/ConditionalDisplayPropertyDrawer.cs b/Assets/Scripts/Editor/PropertyDrawers/ConditionalDisplayPropertyDrawer.cs index 64fb700..a964573 100644 --- a/Assets/Scripts/Editor/PropertyDrawers/ConditionalDisplayPropertyDrawer.cs +++ b/Assets/Scripts/Editor/PropertyDrawers/ConditionalDisplayPropertyDrawer.cs @@ -1,5 +1,5 @@ using System; -using KitsuneCafe.System.Attributes; +using KitsuneCafe.Sys.Attributes; using UnityEditor; using UnityEditor.UIElements; using UnityEngine.UIElements; diff --git a/Assets/Scripts/Editor/PropertyDrawers/DurationPropertyDrawer.cs b/Assets/Scripts/Editor/PropertyDrawers/DurationPropertyDrawer.cs index f9e9d37..9f0a7cf 100644 --- a/Assets/Scripts/Editor/PropertyDrawers/DurationPropertyDrawer.cs +++ b/Assets/Scripts/Editor/PropertyDrawers/DurationPropertyDrawer.cs @@ -1,8 +1,8 @@ using System; -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEditor; using UnityEngine.UIElements; -using TimeUnit = KitsuneCafe.System.TimeUnit; +using TimeUnit = KitsuneCafe.Sys.TimeUnit; [CustomPropertyDrawer(typeof(Duration))] public class DurationPropertyDrawer : PropertyDrawer diff --git a/Assets/Scripts/Entity/AimFeature.cs b/Assets/Scripts/Entity/AimFeature.cs new file mode 100644 index 0000000..b135c1f --- /dev/null +++ b/Assets/Scripts/Entity/AimFeature.cs @@ -0,0 +1,110 @@ +using System; +using KitsuneCafe.Extension; +using KitsuneCafe.Input; +using KitsuneCafe.ItemSystem; +using KitsuneCafe.SOAP; +using R3; +using UnityEngine; + +namespace KitsuneCafe.Entity +{ + public class AimFeature : MonoBehaviour + { + [SerializeField] + private new Camera camera; + + [SerializeField] + private EquipmentInstance equipment; + + [SerializeField] + private Motor motor; + + [SerializeField] + private ControlSchemeValue controlScheme; + + [SerializeField] + private Vector2Value lookValue; + + private void OnValidate() + { + if (camera == null) + { + camera = Camera.main; + } + + if (equipment == null) + { + equipment = GetComponent(); + } + + if (motor == null) + { + motor = GetComponent(); + } + } + + private void Start() + { + var d = Disposable.CreateBuilder(); + + var readied = Observable.FromEventHandler( + e => equipment.Readied += e, + e => equipment.Readied -= e + ) + .Select(static eh => eh.e); + + readied + .Subscribe(isReady => + { + motor.enabled = !isReady; + }) + .AddTo(ref d); + + readied + .WhereTrue() + .SelectMany(_ => + controlScheme.AsObservable() + .CombineLatest( + Observable.IntervalFrame(1), + static (scheme, _) => scheme + ).TakeUntil(readied.WhereFalse()) + ) + .Subscribe(Aim) + .AddTo(ref d); + + d.RegisterTo(destroyCancellationToken); + } + + private void Aim(ControlScheme scheme) + { + switch (scheme) + { + case ControlScheme.Gamepad: + LookInDirection(lookValue.Value); + break; + default: + LookAtPosition(lookValue.Value); + break; + } + } + + private void LookInDirection(Vector2 value) + { + transform.LookAt(transform.position + new Vector3(value.x, 0, value.y)); + } + + private void LookAtPosition(Vector2 value) + { + var screenPosition = camera.WorldToViewportPoint(transform.position); + var mouseOnScreen = camera.ScreenToViewportPoint(value); + + float angle = AngleBetween(screenPosition, mouseOnScreen); + transform.rotation = Quaternion.Euler(new Vector3(0, -angle + 90, 0)); + } + + static float AngleBetween(Vector3 a, Vector3 b) + { + return Mathf.Atan2(b.y - a.y, b.x - a.x) * Mathf.Rad2Deg; + } + } +} diff --git a/Assets/Scripts/Entity/AimFeature.cs.meta b/Assets/Scripts/Entity/AimFeature.cs.meta new file mode 100644 index 0000000..dc5e032 --- /dev/null +++ b/Assets/Scripts/Entity/AimFeature.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 8c1373e9dcadbfb4aa0bf837a1d44ce1 \ No newline at end of file diff --git a/Assets/Scripts/Entity/BoneAttachment.cs b/Assets/Scripts/Entity/BoneAttachment.cs new file mode 100644 index 0000000..f644ca1 --- /dev/null +++ b/Assets/Scripts/Entity/BoneAttachment.cs @@ -0,0 +1,15 @@ +using UnityEngine; + +namespace KitsuneCafe.Entity +{ + public class BoneAttachment : MonoBehaviour + { + [SerializeField] + private Transform bone; + + private void Start() + { + transform.SetParent(bone, false); + } + } +} diff --git a/Assets/Scripts/Entity/BoneAttachment.cs.meta b/Assets/Scripts/Entity/BoneAttachment.cs.meta new file mode 100644 index 0000000..9dcc77a --- /dev/null +++ b/Assets/Scripts/Entity/BoneAttachment.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 795d0a02aa223804cb45ee88dd31f479 \ No newline at end of file diff --git a/Assets/Scripts/Entity/Damage.cs b/Assets/Scripts/Entity/DamageSource.cs similarity index 53% rename from Assets/Scripts/Entity/Damage.cs rename to Assets/Scripts/Entity/DamageSource.cs index ea5de55..f64cdad 100644 --- a/Assets/Scripts/Entity/Damage.cs +++ b/Assets/Scripts/Entity/DamageSource.cs @@ -1,29 +1,37 @@ -using KitsuneCafe.System; using UnityEngine; namespace KitsuneCafe.Entity { - public interface IDamaging : IGameObject - { - void ApplyDamage(int amount, IDamageable target); - } - - public interface IDamageable : IGameObject - { - void ReceiveDamage(IDamaging source, int amount); - } - - public class DamageSource : MonoBehaviour, IDamaging { [SerializeField] private int damage; + public void ApplyDamage(Collider target) + { + ApplyDamage(damage, target); + } + + public void ApplyDamage(GameObject target) + { + ApplyDamage(damage, target); + } + + public void ApplyDamage(IDamageable target) + { + ApplyDamage(damage, target); + } + public void ApplyDamage(int amount, IDamageable target) { target.ReceiveDamage(this, amount); } + public void ApplyDamage(int amount, Collider target) + { + ApplyDamage(amount, target.gameObject); + } + public void ApplyDamage(int amount, GameObject target) { if (target.TryGetComponent(out IDamageable damageable)) diff --git a/Assets/Scripts/Entity/Damage.cs.meta b/Assets/Scripts/Entity/DamageSource.cs.meta similarity index 100% rename from Assets/Scripts/Entity/Damage.cs.meta rename to Assets/Scripts/Entity/DamageSource.cs.meta diff --git a/Assets/Scripts/Entity/DeathAnimator.cs b/Assets/Scripts/Entity/DeathAnimator.cs new file mode 100644 index 0000000..1f48920 --- /dev/null +++ b/Assets/Scripts/Entity/DeathAnimator.cs @@ -0,0 +1,56 @@ +using KitsuneCafe.Sys.Attributes; +using R3; +using UnityEngine; + +namespace KitsuneCafe.Entity +{ + public class DummyAnimator : MonoBehaviour + { + [SerializeField] + private Health health; + + [SerializeField] + private Animator animator; + + [SerializeField, AnimatorParam("animator")] + private int hitParam; + + [SerializeField, AnimatorParam("animator")] + private int deathParam; + + private void OnValidate() + { + if (animator == null) + { + animator = GetComponent(); + } + + if (health == null) + { + health = GetComponent(); + } + } + + + private void Start() + { + Observable.FromEventHandler( + e => health.HealthChanged += e, + e => health.HealthChanged -= e + ) + .Select(ev => ev.e) + .Subscribe(e => + { + if (e.Current > 0) + { + animator.SetBool(hitParam, true); + } + else + { + animator.SetBool(deathParam, true); + } + }) + .AddTo(this); + } + } +} diff --git a/Assets/Scripts/Entity/DeathAnimator.cs.meta b/Assets/Scripts/Entity/DeathAnimator.cs.meta new file mode 100644 index 0000000..461a23d --- /dev/null +++ b/Assets/Scripts/Entity/DeathAnimator.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 452b09482ed36cc83ab8817f704c9acd \ No newline at end of file diff --git a/Assets/Scripts/Entity/EntityAnimator.cs b/Assets/Scripts/Entity/EntityAnimator.cs index 13a6172..818afb1 100644 --- a/Assets/Scripts/Entity/EntityAnimator.cs +++ b/Assets/Scripts/Entity/EntityAnimator.cs @@ -1,8 +1,9 @@ +using KitsuneCafe.Extension; +using KitsuneCafe.ItemSystem; +using KitsuneCafe.Sys; +using KitsuneCafe.Sys.Attributes; using R3; using UnityEngine; -using KitsuneCafe.System; -using KitsuneCafe.Extension; -using KitsuneCafe.System.Attributes; namespace KitsuneCafe.Entity { @@ -16,6 +17,7 @@ namespace KitsuneCafe.Entity [SerializeField] private new Rigidbody rigidbody; + [Header("Movement")] [SerializeField] private Motor motor; @@ -37,15 +39,39 @@ namespace KitsuneCafe.Entity [SerializeField, Range(0f, 1f)] private float sprintAnimationParamMax = 1.0f; + [Header("Combat")] [SerializeField, AnimatorParam("animator")] private string readyParam; - private void Reset() + [SerializeField] + private EquipmentInstance equipment; + + private void OnValidate() { - animator = GetComponent(); - rigidbody = GetComponent(); - motor = GetComponent(); - sprint = GetComponent(); + if (animator == null) + { + animator = GetComponent(); + } + + if (rigidbody == null) + { + rigidbody = GetComponent(); + } + + if (motor == null) + { + motor = GetComponent(); + } + + if (sprint == null) + { + sprint = GetComponent(); + } + + if (equipment == null) + { + equipment = GetComponent(); + } } private void Awake() @@ -73,6 +99,15 @@ namespace KitsuneCafe.Entity }) .AddTo(ref d); + + Observable.FromEventHandler( + e => equipment.Readied += e, + e => equipment.Readied -= e + ) + .Select(eh => eh.e) + .Subscribe(ready => animator.SetBool(readyParam, ready)) + .AddTo(ref d); + d.RegisterTo(destroyCancellationToken); } @@ -110,4 +145,4 @@ namespace KitsuneCafe.Entity } } } -} \ No newline at end of file +} diff --git a/Assets/Scripts/Entity/Health.cs b/Assets/Scripts/Entity/Health.cs index b281189..e9d1dc5 100644 --- a/Assets/Scripts/Entity/Health.cs +++ b/Assets/Scripts/Entity/Health.cs @@ -4,6 +4,13 @@ using UnityEngine; namespace KitsuneCafe.Entity { + public record HealthChanged(int Previous, int Current) + { + public static implicit operator HealthChanged((int, int) t) => new(t.Item1, t.Item2); + public static implicit operator (int Previous, int Current)(HealthChanged t) => + (t.Previous, t.Current); + } + public class Health : MonoBehaviour, IDamageable { [SerializeField] @@ -16,14 +23,31 @@ namespace KitsuneCafe.Entity public int Current => current.CurrentValue; + [SerializeField] + private bool restoreOnStart = true; + + public event EventHandler HealthChanged; + + private void Start() + { + if (restoreOnStart) + { + current.Value = max.Value; + } + + current.AsObservable() + .Pairwise() + .Subscribe(t => HealthChanged?.Invoke(this, t)); + } + public void Recover(int amount) { - this.current.Value = Math.Clamp(this.Current + amount, 0, this.Max); + current.Value = Math.Clamp(Current + amount, 0, Max); } public void ReceiveDamage(IDamaging source, int amount) { - this.current.Value = Math.Clamp(this.Current - amount, 0, this.Max); + current.Value = Math.Clamp(Current - amount, 0, Max); } } } diff --git a/Assets/Scripts/Entity/IDamageable.cs b/Assets/Scripts/Entity/IDamageable.cs new file mode 100644 index 0000000..0a913a4 --- /dev/null +++ b/Assets/Scripts/Entity/IDamageable.cs @@ -0,0 +1,9 @@ +using KitsuneCafe.Sys; + +namespace KitsuneCafe.Entity +{ + public interface IDamageable : IGameObject + { + void ReceiveDamage(IDamaging source, int amount); + } +} diff --git a/Assets/Scripts/Entity/IDamageable.cs.meta b/Assets/Scripts/Entity/IDamageable.cs.meta new file mode 100644 index 0000000..c54ee47 --- /dev/null +++ b/Assets/Scripts/Entity/IDamageable.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 0a4a01d5c978b1cf8afe37f7e19f4b67 \ No newline at end of file diff --git a/Assets/Scripts/Entity/IDamaging.cs b/Assets/Scripts/Entity/IDamaging.cs new file mode 100644 index 0000000..43f805e --- /dev/null +++ b/Assets/Scripts/Entity/IDamaging.cs @@ -0,0 +1,9 @@ +using KitsuneCafe.Sys; + +namespace KitsuneCafe.Entity +{ + public interface IDamaging : IGameObject + { + void ApplyDamage(int amount, IDamageable target); + } +} diff --git a/Assets/Scripts/Entity/IDamaging.cs.meta b/Assets/Scripts/Entity/IDamaging.cs.meta new file mode 100644 index 0000000..9bb546c --- /dev/null +++ b/Assets/Scripts/Entity/IDamaging.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 8a298d4067ebae12aa214a267d09879b \ No newline at end of file diff --git a/Assets/Scripts/Entity/Motor.cs b/Assets/Scripts/Entity/Motor.cs index 722bae2..d9ad04c 100644 --- a/Assets/Scripts/Entity/Motor.cs +++ b/Assets/Scripts/Entity/Motor.cs @@ -1,3 +1,4 @@ +using System.Threading; using KitsuneCafe.Extension; using KitsuneCafe.SOAP; using R3; @@ -39,19 +40,23 @@ namespace KitsuneCafe.Entity private float epsilon = 0.001f; private float sqEpsilon; - private ReactiveProperty currentMaxSpeed = new ReactiveProperty(); + private ReactiveProperty currentMaxSpeed = new(); public float MaxSpeed => currentMaxSpeed.Value; public ReactiveProperty MaxSpeedSource => currentMaxSpeed; - //private readonly ReactiveProperty direction = new ReactiveProperty(Vector3.zero); + private CancellationTokenSource disableCancellationSource; - private void Reset() + private void OnValidate() { - rigidbody = GetComponent(); + if (rigidbody == null) + { + rigidbody = GetComponent(); + } } - private void Awake() + private void OnEnable() { + disableCancellationSource = new(); var directionSource = direction.AsObservable().Select(v2 => new Vector3(v2.x, 0, v2.y)); currentMaxSpeed.Value = maxSpeed; @@ -77,7 +82,13 @@ namespace KitsuneCafe.Entity }) .AddTo(ref d); - d.RegisterTo(destroyCancellationToken); + d.RegisterTo(disableCancellationSource.Token); + } + + private void OnDisable() + { + rigidbody.linearVelocity = Vector3.zero; + disableCancellationSource.Cancel(); } private Observable CalculateRotationStream(Observable directionSource, FrameProvider provider) diff --git a/Assets/Scripts/Entity/SprintFeature.cs b/Assets/Scripts/Entity/SprintFeature.cs index 46721f3..f4eb3af 100644 --- a/Assets/Scripts/Entity/SprintFeature.cs +++ b/Assets/Scripts/Entity/SprintFeature.cs @@ -16,7 +16,7 @@ namespace KitsuneCafe.Entity private float adjustedMaxSpeed = 3f; public float SprintSpeed => adjustedMaxSpeed; - public readonly ReactiveProperty IsSprinting = new ReactiveProperty(false); + public readonly ReactiveProperty IsSprinting = new(false); private void Reset() { diff --git a/Assets/Scripts/Environment/TriggerAnimation.cs b/Assets/Scripts/Environment/TriggerAnimation.cs index 40dd0ef..b7e635d 100644 --- a/Assets/Scripts/Environment/TriggerAnimation.cs +++ b/Assets/Scripts/Environment/TriggerAnimation.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System.Attributes; +using KitsuneCafe.Sys.Attributes; using UnityEngine; namespace KitsuneCafe.Animation @@ -85,4 +85,4 @@ namespace KitsuneCafe.Animation Trigger(parameter); } } -} \ No newline at end of file +} diff --git a/Assets/Scripts/Extension/Collection.cs b/Assets/Scripts/Extension/Collection.cs index aca2d91..786b74e 100644 --- a/Assets/Scripts/Extension/Collection.cs +++ b/Assets/Scripts/Extension/Collection.cs @@ -1,9 +1,22 @@ using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; namespace KitsuneCafe.Extension { public static class CollectionExtension { + public static bool HasIndex(this IList list, int index) + { + return index >= 0 && index < list.Count; + } + + public static IEnumerable<(T, int)> Enumerate(this IEnumerable enumerable) + { + return enumerable.Select((x, i) => (x, i)); + } + public static bool IsTypeOf() { return IsTypeOf(typeof(T), typeof(U)); diff --git a/Assets/Scripts/Extension/Observable.cs b/Assets/Scripts/Extension/Observable.cs index 37c4eba..b7f21e7 100644 --- a/Assets/Scripts/Extension/Observable.cs +++ b/Assets/Scripts/Extension/Observable.cs @@ -1,9 +1,9 @@ -using R3; -using UnityEngine; using System; -using KitsuneCafe.System; using System.Collections.Generic; using System.Threading; +using KitsuneCafe.Sys; +using R3; +using UnityEngine; using UnityEngine.Rendering.Universal; namespace KitsuneCafe.Extension @@ -179,6 +179,11 @@ namespace KitsuneCafe.Extension return source.Where(Func.Identity); } + public static Observable WhereFalse(this Observable source) + { + return WhereEquals(source, false); + } + public static Observable ObserveBool(this T component, Func predicate) where T : MonoBehaviour { if (predicate(component)) diff --git a/Assets/Scripts/Input/ActionMap.cs b/Assets/Scripts/Input/ActionMap.cs new file mode 100644 index 0000000..6aeda6a --- /dev/null +++ b/Assets/Scripts/Input/ActionMap.cs @@ -0,0 +1,8 @@ +namespace KitsuneCafe.Input +{ + public enum ActionMap + { + Player, + UI + } +} diff --git a/Assets/Scripts/Input/ActionMap.cs.meta b/Assets/Scripts/Input/ActionMap.cs.meta new file mode 100644 index 0000000..385dcbc --- /dev/null +++ b/Assets/Scripts/Input/ActionMap.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 0c363f3d399e01d6ab6b10234746c96a \ No newline at end of file diff --git a/Assets/Scripts/Input/InputChangeHandler.cs b/Assets/Scripts/Input/InputChangeHandler.cs new file mode 100644 index 0000000..57174bf --- /dev/null +++ b/Assets/Scripts/Input/InputChangeHandler.cs @@ -0,0 +1,72 @@ +using KitsuneCafe.SOAP; +using R3; +using UnityEngine; +using UnityEngine.InputSystem; + +namespace KitsuneCafe.Input +{ + public class InputChangeHandler : MonoBehaviour + { + [SerializeField] + private PlayerInput playerInput; + + [SerializeField] + private ControlSchemeValue controlScheme; + + [SerializeField] + private ActionMapValue actionMap; + + private void OnValidate() + { + if (playerInput == null) + { + playerInput = GetComponent(); + } + } + + private void Start() + { + var d = Disposable.CreateBuilder(); + + actionMap.AsObservable() + .DistinctUntilChanged() + .Subscribe(map => + { + var name = map switch + { + ActionMap.Player => "Player", + ActionMap.UI => "UI", + _ => throw new System.NotImplementedException() + }; + + var inputActionMap = playerInput.actions.FindActionMap(name); + playerInput.currentActionMap = inputActionMap; + }) + .AddTo(ref d); + + controlScheme.Value = GetControlScheme(playerInput.currentControlScheme); + + Observable.FromEvent( + e => playerInput.onControlsChanged += e, + e => playerInput.onControlsChanged -= e + ) + .Subscribe(value => + { + controlScheme.Value = GetControlScheme(value.currentControlScheme); + }) + .AddTo(ref d); + + d.RegisterTo(destroyCancellationToken); + } + + private static ControlScheme GetControlScheme(string controlScheme) + { + return controlScheme switch + { + "Gamepad" => ControlScheme.Gamepad, + "Keyboard&Mouse" => ControlScheme.KeyboardAndMouse, + _ => ControlScheme.Other + }; + } + } +} diff --git a/Assets/Scripts/Input/InputChangeHandler.cs.meta b/Assets/Scripts/Input/InputChangeHandler.cs.meta new file mode 100644 index 0000000..9de0113 --- /dev/null +++ b/Assets/Scripts/Input/InputChangeHandler.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 833c47d8284ff8354ba97485ed999d8e \ No newline at end of file diff --git a/Assets/Scripts/Input/InputDevice.cs b/Assets/Scripts/Input/InputDevice.cs new file mode 100644 index 0000000..4cec12e --- /dev/null +++ b/Assets/Scripts/Input/InputDevice.cs @@ -0,0 +1,9 @@ +namespace KitsuneCafe.Input +{ + public enum ControlScheme + { + Gamepad, + KeyboardAndMouse, + Other + } +} diff --git a/Assets/Scripts/Input/InputDevice.cs.meta b/Assets/Scripts/Input/InputDevice.cs.meta new file mode 100644 index 0000000..eeca0cd --- /dev/null +++ b/Assets/Scripts/Input/InputDevice.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 5df883635b91c2a58acc85689ffbf0da \ No newline at end of file diff --git a/Assets/Scripts/Interaction/Gate.cs b/Assets/Scripts/Interaction/Gate.cs index 20ac068..3500095 100644 --- a/Assets/Scripts/Interaction/Gate.cs +++ b/Assets/Scripts/Interaction/Gate.cs @@ -1,7 +1,7 @@ using System; using KitsuneCafe.ItemSystem; -using KitsuneCafe.System; -using KitsuneCafe.System.Attributes; +using KitsuneCafe.Sys; +using KitsuneCafe.Sys.Attributes; using UnityEngine; using UnityEngine.Events; diff --git a/Assets/Scripts/Interaction/IInteractable.cs b/Assets/Scripts/Interaction/IInteractable.cs index 9ea05ce..3b530c1 100644 --- a/Assets/Scripts/Interaction/IInteractable.cs +++ b/Assets/Scripts/Interaction/IInteractable.cs @@ -1,5 +1,5 @@ using System; -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.Interaction @@ -74,9 +74,9 @@ namespace KitsuneCafe.Interaction { public static class Result { - public static IResult Ok() => System.Result.Ok(default); - public static IResult Err(InteractionError error) => System.Result.Err(error); - public static IResult Err(InteractionErrorCode error) => System.Result.Err(error); + public static IResult Ok() => Sys.Result.Ok(default); + public static IResult Err(InteractionError error) => Sys.Result.Err(error); + public static IResult Err(InteractionErrorCode error) => Sys.Result.Err(error); } bool IsInteractable { get; } @@ -86,4 +86,4 @@ namespace KitsuneCafe.Interaction IResult Interact(IInteractor interactor); } -} \ No newline at end of file +} diff --git a/Assets/Scripts/Interaction/Interactable.cs b/Assets/Scripts/Interaction/Interactable.cs index 1609234..71a92ac 100644 --- a/Assets/Scripts/Interaction/Interactable.cs +++ b/Assets/Scripts/Interaction/Interactable.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; using UnityEngine.Events; diff --git a/Assets/Scripts/Item/BaseItem.cs b/Assets/Scripts/Item/BaseItem.cs new file mode 100644 index 0000000..f0ebf29 --- /dev/null +++ b/Assets/Scripts/Item/BaseItem.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using KitsuneCafe.SOAP; +using KitsuneCafe.Sys.Attributes; +using UnityEngine; + +namespace KitsuneCafe.ItemSystem +{ + public abstract class BaseItem : ScriptableObject, IItem + { + [SerializeField] + private string id; + public string Id => id; + + [SerializeField] + private string displayName; + public string DisplayName => displayName; + + [SerializeField, TextArea] + private string description; + public string Description => description; + + [SerializeField] + private Sprite icon; + public Sprite Icon => icon; + + [SerializeField] + private List tags; + public IReadOnlyCollection Tags => tags; + + [SerializeField] + private GameObject worldPrefab; + + [SerializeField] + private GameObject previewPrefab; + + [Button("Generate New ID")] + protected void GenerateNewId() + { + id = Guid.NewGuid().ToString(); +#if UNITY_EDITOR + UnityEditor.EditorUtility.SetDirty(this); +#endif + } + + public GameObject CreateInstance() + { + return Instantiate(worldPrefab); + } + + public GameObject CreatePreview() + { + return Instantiate(previewPrefab); + } + } +} diff --git a/Assets/Scripts/Item/BaseItem.cs.meta b/Assets/Scripts/Item/BaseItem.cs.meta new file mode 100644 index 0000000..8bc6e9d --- /dev/null +++ b/Assets/Scripts/Item/BaseItem.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 38f485775f9f15e6f9d9dd3874bd6bef \ No newline at end of file diff --git a/Assets/Scripts/Item/EquipmentInstance.cs b/Assets/Scripts/Item/EquipmentInstance.cs new file mode 100644 index 0000000..ccfae5b --- /dev/null +++ b/Assets/Scripts/Item/EquipmentInstance.cs @@ -0,0 +1,111 @@ +using System; +using KitsuneCafe.Entity; +using KitsuneCafe.SOAP; +using R3; +using UnityEngine; + +namespace KitsuneCafe.ItemSystem +{ + public record ChangedEquipmentEvent(IEquippable Previous, IEquippable Current); + + public class EquipmentInstance : MonoBehaviour + { + [SerializeField] + private InventoryInstance inventory; + + [SerializeField] + private BoneAttachment attachment; + + [SerializeField] + private EquipmentValue primary; + public EquipmentItem Primary => primary.Value; + + [SerializeField] + private EquipmentValue secondary; + public EquipmentItem Secondary => secondary.Value; + + private IEquippable equippedPrimary; + + public event EventHandler ChangedEquipment; + public event EventHandler Readied; + public event EventHandler Attacked; + public event EventHandler Reloaded; + + public bool HasPrimaryEquipped => primary != null; + public bool HasSecondaryEquipped => secondary != null; + + private void OnValidate() + { + if (inventory == null) + { + inventory = GetComponent(); + } + + if (attachment == null) + { + attachment = GetComponent(); + } + } + + private void Start() + { + var d = Disposable.CreateBuilder(); + + primary.AsObservable() + .Subscribe(EquipPrimary) + .AddTo(ref d); + + secondary.AsObservable() + .Subscribe() + .AddTo(ref d); + + d.RegisterTo(destroyCancellationToken); + } + + private void EquipPrimary(EquipmentItem equipment) + { + var previous = equippedPrimary; + + if (equippedPrimary != null) + { + equippedPrimary.OnUnequip(); + equippedPrimary.Readied -= OnReady; + equippedPrimary.Attacked -= OnAttack; + equippedPrimary.Reloaded -= OnReload; + + Destroy(equippedPrimary.gameObject); + equippedPrimary = null; + } + + IEquippable instance = null; + if (equipment != null) + { + instance = equipment.CreateEquipment(); + instance.Readied += OnReady; + instance.Attacked += OnAttack; + instance.Reloaded += OnReload; + instance.gameObject.transform.SetParent(attachment.transform, false); + equippedPrimary = instance; + + equippedPrimary.OnEquip(inventory); + } + + ChangedEquipment?.Invoke(this, new ChangedEquipmentEvent(previous, instance)); + } + + private void OnReload(object sender, EventArgs e) + { + Reloaded?.Invoke(sender, e); + } + + private void OnAttack(object sender, EventArgs e) + { + Attacked?.Invoke(sender, e); + } + + private void OnReady(object sender, bool e) + { + Readied?.Invoke(sender, e); + } + } +} diff --git a/Assets/Scripts/Item/EquipmentInstance.cs.meta b/Assets/Scripts/Item/EquipmentInstance.cs.meta new file mode 100644 index 0000000..b4f5b76 --- /dev/null +++ b/Assets/Scripts/Item/EquipmentInstance.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: d5ed1241db3bd1d74899513f3875cbe1 \ No newline at end of file diff --git a/Assets/Scripts/Item/EquipmentItem.cs b/Assets/Scripts/Item/EquipmentItem.cs new file mode 100644 index 0000000..015d22f --- /dev/null +++ b/Assets/Scripts/Item/EquipmentItem.cs @@ -0,0 +1,27 @@ +using KitsuneCafe.Sys; +using UnityEngine; + +namespace KitsuneCafe.ItemSystem +{ + [CreateAssetMenu(menuName = KitsuneCafeMenu.Item + "Equipment")] + public class EquipmentItem : Item, IEquipmentItem + { + [SerializeField] + private GameObject equippedPrefab; + public GameObject EquippedPrefab => equippedPrefab; + + private void OnValidate() + { + if (equippedPrefab != null && equippedPrefab.GetComponent() == null) + { + Debug.LogWarning($"Equipment prefab {equippedPrefab} has no instance of IEquipment."); + equippedPrefab = null; + } + } + + public IEquippable CreateEquipment() + { + return Instantiate(equippedPrefab).GetComponent(); + } + } +} diff --git a/Assets/Scripts/Item/EquipmentItem.cs.meta b/Assets/Scripts/Item/EquipmentItem.cs.meta new file mode 100644 index 0000000..e5553a2 --- /dev/null +++ b/Assets/Scripts/Item/EquipmentItem.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 113edbd3ab279ceccacd0762b2ff405f \ No newline at end of file diff --git a/Assets/Scripts/Item/Firearm.cs b/Assets/Scripts/Item/Firearm.cs new file mode 100644 index 0000000..7baa9e8 --- /dev/null +++ b/Assets/Scripts/Item/Firearm.cs @@ -0,0 +1,126 @@ +using System; +using KitsuneCafe.Entity; +using KitsuneCafe.Extension; +using KitsuneCafe.SOAP; +using R3; +using UnityEngine; + +namespace KitsuneCafe.ItemSystem +{ + public class Firearm : MonoBehaviour, IEquippable, IDamaging + { + [SerializeField] + private BoolValue ready; + + [SerializeField] + private BoolValue fire; + + [SerializeField] + private BoolValue reload; + + [SerializeField] + private Transform projectileOrigin; + + [SerializeField] + private DamageSource damageSource; + + [SerializeField] + private float projectileLength = 15; + + [SerializeField] + private LayerMask layerMask; + + public event EventHandler Readied; + public event EventHandler Attacked; + public event EventHandler Reloaded; + + private InventoryInstance inventory; + private readonly RaycastHit[] hits = new RaycastHit[1]; + + private void OnValidate() + { + if (damageSource == null) + { + damageSource = GetComponent(); + } + } + + public void OnEquip(InventoryInstance inventory) + { + this.inventory = inventory; + } + + public void OnUnequip() { } + + private void Start() + { + if (projectileOrigin == null) + { + projectileOrigin = transform; + } + + var d = Disposable.CreateBuilder(); + + ready + .AsObservable() + .Subscribe(Ready) + .AddTo(ref d); + + fire + .AsObservable() + .CombineLatest(ready.AsObservable(), (ready, fire) => ready && fire) + .WhereTrue() + .AsUnitObservable() + .Subscribe(_ => Fire()) + .AddTo(ref d); + + reload + .AsObservable() + .WhereTrue() + .Subscribe(_ => Reload()) + .AddTo(ref d); + + d.RegisterTo(destroyCancellationToken); + } + + private void Ready(bool isReady) + { + Readied?.Invoke(this, isReady); + } + + private void Fire() + { + var count = Physics.RaycastNonAlloc( + projectileOrigin.position, + projectileOrigin.forward, + hits, + projectileLength, + layerMask + ); + + if (count > 0) + { + damageSource.ApplyDamage(hits[0].collider); + } + + Attacked?.Invoke(this, EventArgs.Empty); + } + + private void Reload() + { + Reloaded?.Invoke(this, EventArgs.Empty); + Debug.Log("rewowd"); + } + + public void ApplyDamage(int amount, IDamageable target) + { + damageSource.ApplyDamage(amount, target); + } + + private void OnDrawGizmos() + { + Gizmos.color = Color.red; + Gizmos.DrawRay(projectileOrigin.position, projectileOrigin.forward * projectileLength); + } + } +} diff --git a/Assets/Scripts/Item/Firearm.cs.meta b/Assets/Scripts/Item/Firearm.cs.meta new file mode 100644 index 0000000..5bdd779 --- /dev/null +++ b/Assets/Scripts/Item/Firearm.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: a9bef8fb859e614a48357ece1c529698 \ No newline at end of file diff --git a/Assets/Scripts/Item/IEquipment.cs b/Assets/Scripts/Item/IEquipment.cs new file mode 100644 index 0000000..1dd4fc2 --- /dev/null +++ b/Assets/Scripts/Item/IEquipment.cs @@ -0,0 +1,16 @@ +using System; +using KitsuneCafe.Sys; +using UnityEngine; + +namespace KitsuneCafe.ItemSystem +{ + public interface IEquippable : IGameObject + { + event EventHandler Readied; + event EventHandler Attacked; + event EventHandler Reloaded; + + void OnEquip(InventoryInstance inventory); + void OnUnequip(); + } +} diff --git a/Assets/Scripts/Item/IEquipment.cs.meta b/Assets/Scripts/Item/IEquipment.cs.meta new file mode 100644 index 0000000..5208c66 --- /dev/null +++ b/Assets/Scripts/Item/IEquipment.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: acdd766073e954e45bace8b1d7d69a88 \ No newline at end of file diff --git a/Assets/Scripts/Item/IEquipmentItem.cs b/Assets/Scripts/Item/IEquipmentItem.cs new file mode 100644 index 0000000..0f8015f --- /dev/null +++ b/Assets/Scripts/Item/IEquipmentItem.cs @@ -0,0 +1,9 @@ +using UnityEngine; + +namespace KitsuneCafe.ItemSystem +{ + public interface IEquipmentItem : IItem + { + GameObject EquippedPrefab { get; } + } +} diff --git a/Assets/Scripts/Item/IEquipmentItem.cs.meta b/Assets/Scripts/Item/IEquipmentItem.cs.meta new file mode 100644 index 0000000..417853e --- /dev/null +++ b/Assets/Scripts/Item/IEquipmentItem.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: a8915224351f977c8b65a98baf25b5e6 \ No newline at end of file diff --git a/Assets/Scripts/Item/IItem.cs b/Assets/Scripts/Item/IItem.cs new file mode 100644 index 0000000..7299cb9 --- /dev/null +++ b/Assets/Scripts/Item/IItem.cs @@ -0,0 +1,15 @@ +using System.Collections.Generic; +using KitsuneCafe.SOAP; +using UnityEngine; + +namespace KitsuneCafe.ItemSystem +{ + public interface IItem + { + string Id { get; } + string DisplayName { get; } + string Description { get; } + Sprite Icon { get; } + IReadOnlyCollection Tags { get; } + } +} diff --git a/Assets/Scripts/Item/IItem.cs.meta b/Assets/Scripts/Item/IItem.cs.meta new file mode 100644 index 0000000..f810a33 --- /dev/null +++ b/Assets/Scripts/Item/IItem.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 470c7308b27c9451eaa2f30b663e15ca \ No newline at end of file diff --git a/Assets/Scripts/Item/IStackable.cs b/Assets/Scripts/Item/IStackable.cs new file mode 100644 index 0000000..d00d63e --- /dev/null +++ b/Assets/Scripts/Item/IStackable.cs @@ -0,0 +1,7 @@ +namespace KitsuneCafe.ItemSystem +{ + public interface IStackable + { + int MaxStackCount { get; } + } +} diff --git a/Assets/Scripts/Item/IStackable.cs.meta b/Assets/Scripts/Item/IStackable.cs.meta new file mode 100644 index 0000000..4a6b326 --- /dev/null +++ b/Assets/Scripts/Item/IStackable.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 4fb21fae91cb26c0d89fabf2cb3b9642 \ No newline at end of file diff --git a/Assets/Scripts/Item/Inventory.cs b/Assets/Scripts/Item/Inventory.cs index 531a445..409c199 100644 --- a/Assets/Scripts/Item/Inventory.cs +++ b/Assets/Scripts/Item/Inventory.cs @@ -1,309 +1,357 @@ using System; using System.Collections; using System.Collections.Generic; -using KitsuneCafe.System; +using KitsuneCafe.Sys; using ObservableCollections; using UnityEngine; -using Unit = KitsuneCafe.System.Unit; +using Unit = KitsuneCafe.Sys.Unit; namespace KitsuneCafe.ItemSystem { - [Serializable] - public struct InventoryItem : IEquatable, ICountable + [Serializable] + public struct InventoryItem : IEquatable, ICountable + { + public Item Item; + [SerializeField] + private int count; + public readonly int Count => count; + + private InventoryItem(Item item, int count) { - public Item Item; - [SerializeField] - private int count; - public readonly int Count => count; - - private InventoryItem(Item item, int count) - { - Item = item; - this.count = count; - } - - public static int Create(Item item, int count, out InventoryItem? inventoryItem) - { - int quantity = Math.Clamp(count, 0, item.MaxStackCount); - inventoryItem = quantity > 0 ? new InventoryItem(item, quantity) : null; - return quantity; - } - - public readonly int IncreaseCount(int count, out InventoryItem? item) - { - return Create(Item, Count + count, out item); - } - - public readonly int ReduceCount(int count, out InventoryItem? item) - { - return Create(Item, Count - count, out item); - } - - public readonly bool Equals(Item other) - { - return Item == other; - } - - public override readonly bool Equals(object obj) - { - return obj is InventoryItem other - && Item == other.Item - && Count == other.Count; - } - - public override int GetHashCode() - { - return HashCode.Combine(Item, Count); - } + Item = item; + this.count = count; } - public enum InventoryError + public static int Create(Item item, int count, out InventoryItem? inventoryItem) { - None, - InventoryFull, - ItemNotFound, - NotEnoughQuantity, - ItemNotStackable, - InvalidQuantity + int quantity = Math.Clamp(count, 0, item.MaxStackCount); + inventoryItem = quantity > 0 ? new InventoryItem(item, quantity) : null; + return quantity; } - public interface ICountable + public readonly int IncreaseCount(int count, out InventoryItem? item) { - int Count { get; } + return Create(Item, Count + count, out item); } - public interface IInventory where T : IEquatable, ICountable + public readonly int ReduceCount(int count, out InventoryItem? item) { - int Capacity { get; } - int Count { get; } - - IResult Add(Item item, int count = 1); - IResult Remove(Item item, int count = 1); - IEnumerable Find(Func predicate); - bool Has(Item item); + return Create(Item, Count - count, out item); } - [CreateAssetMenu(menuName = KitsuneCafeMenu.Item + "Inventory")] - public class Inventory : ScriptableObject, IInventory, IEnumerable, IObservableCollection, ISerializationCallbackReceiver + public readonly bool Equals(Item other) { - [SerializeField] - private List serializableItems = new(); + return Item == other; + } - private ObservableList runtimeItems; + public override readonly bool Equals(object obj) + { + return obj is InventoryItem other + && Item == other.Item + && Count == other.Count; + } - [SerializeField] - private int capacity = 8; + public override int GetHashCode() + { + return HashCode.Combine(Item, Count); + } + } - public event NotifyCollectionChangedEventHandler CollectionChanged = default; + public enum InventoryError + { + None, + InventoryFull, + ItemNotFound, + NotEnoughQuantity, + ItemNotStackable, + InvalidQuantity + } - public int Capacity => capacity; + public interface ICountable + { + int Count { get; } + } - public int Count => runtimeItems?.Count ?? 0; + public interface IInventory where T : IEquatable, ICountable + { + int Capacity { get; } + int Count { get; } - public bool IsEmpty => Count == 0; - public bool IsFull => Count == Capacity; + IResult Add(Item item, int count = 1); + IResult Remove(Item item, int count = 1); + IEnumerable Find(Func predicate); + bool Has(Item item); + } - public object SyncRoot => runtimeItems.SyncRoot; + [CreateAssetMenu(menuName = KitsuneCafeMenu.Item + "Inventory")] + public class Inventory : ScriptableObject, IList, IInventory, IEnumerable, IObservableCollection, ISerializationCallbackReceiver + { + [SerializeField] + private List serializableItems = new(); - public InventoryItem this[int index] + private ObservableList runtimeItems; + + [SerializeField] + private int capacity = 8; + + public event NotifyCollectionChangedEventHandler CollectionChanged = default; + + public int Capacity => capacity; + + public int Count => runtimeItems?.Count ?? 0; + + public bool IsEmpty => Count == 0; + public bool IsFull => Count == Capacity; + + public object SyncRoot => runtimeItems.SyncRoot; + + public bool IsFixedSize => ((IList)runtimeItems).IsFixedSize; + + public bool IsReadOnly => ((IList)runtimeItems).IsReadOnly; + + public bool IsSynchronized => ((ICollection)runtimeItems).IsSynchronized; + + object IList.this[int index] { get => runtimeItems[index]; set => runtimeItems[index] = (InventoryItem)value; } + + public InventoryItem this[int index] + { + get => runtimeItems[index]; + set => runtimeItems[index] = value; + } + + private void OnEnable() + { + if (runtimeItems == null) + { + runtimeItems = new ObservableList(); + } + + runtimeItems.CollectionChanged -= OnCollectionChanged; + runtimeItems.CollectionChanged += OnCollectionChanged; + } + + private void OnDisable() + { + if (runtimeItems != null) + { + runtimeItems.CollectionChanged -= OnCollectionChanged; + } + } + + private void OnCollectionChanged(in NotifyCollectionChangedEventArgs e) + { + CollectionChanged?.Invoke(e); + } + + public void OnBeforeSerialize() + { + if (runtimeItems != null) + { + serializableItems.Clear(); + foreach (var item in runtimeItems) { - get => runtimeItems[index]; - set => runtimeItems[index] = value; + serializableItems.Add(item); + } + } + } + + public void OnAfterDeserialize() + { + if (runtimeItems == null) + { + runtimeItems = new ObservableList(); + } + else + { + runtimeItems.Clear(); + } + + foreach (var item in serializableItems) + { + runtimeItems.Add(item); + } + } + + public IEnumerable Find(Func predicate) + { + for (int i = 0; i < Count; i++) + { + var item = runtimeItems[i]; + + if (predicate(item)) + { + yield return item; + } + } + } + + private IResult AddToExisting(Item item, int count) + { + if (count <= 0) + { + return Result.Err(InventoryError.InvalidQuantity); + } + + for (int i = 0; i < Count; i++) + { + var existingItem = runtimeItems[i]; + + if (existingItem.Equals(item)) + { + if (!item.IsStackable) + { + return Result.Err(InventoryError.ItemNotStackable); + } + + var consumedAmount = existingItem.IncreaseCount(count, out var updatedItem); + runtimeItems[i] = updatedItem.Value; + + count -= consumedAmount; + if (count <= 0) + { + return Result.Ok(0); + } + } + } + + return Result.Ok(count); + } + + private IResult AddNew(Item item, int count) + { + while (count > 0) + { + if (IsFull) + { + return Result.Err(InventoryError.InventoryFull); } - private void OnEnable() + count -= InventoryItem.Create(item, count, out var newItem); + runtimeItems.Add(newItem.Value); + + } + + return Result.Ok(default); + } + + public IResult Add(Item item, int count = 1) + { + return AddToExisting(item, count) + .Where(count => count > 0) + .SelectMany(count => AddNew(item, count)) switch + { + Ok ok => ok, + Err(InventoryError.None) => Result.Ok(default), + var err => err + }; + } + + public IResult Remove(Item item, int count = 1) + { + if (count <= 0) + { + return Result.Err(InventoryError.InvalidQuantity); + } + + for (int i = runtimeItems.Count - 1; i >= 0; i--) + { + var existingItem = runtimeItems[i]; + + if (existingItem.Item == item) { - if (runtimeItems == null) - { - runtimeItems = new ObservableList(); - } - - runtimeItems.CollectionChanged -= OnCollectionChanged; - runtimeItems.CollectionChanged += OnCollectionChanged; - } - - private void OnDisable() - { - if (runtimeItems != null) - { - runtimeItems.CollectionChanged -= OnCollectionChanged; - } - } - - private void OnCollectionChanged(in NotifyCollectionChangedEventArgs e) - { - CollectionChanged?.Invoke(e); - } - - public void OnBeforeSerialize() - { - if (runtimeItems != null) - { - serializableItems.Clear(); - foreach (var item in runtimeItems) - { - serializableItems.Add(item); - } - } - } - - public void OnAfterDeserialize() - { - if (runtimeItems == null) - { - runtimeItems = new ObservableList(); - } - else - { - runtimeItems.Clear(); - } - - foreach (var item in serializableItems) - { - runtimeItems.Add(item); - } - } - - public IEnumerable Find(Func predicate) - { - for (int i = 0; i < Count; i++) - { - var item = runtimeItems[i]; - - if (predicate(item)) - { - yield return item; - } - } - } - - private IResult AddToExisting(Item item, int count) - { - if (count <= 0) - { - return Result.Err(InventoryError.InvalidQuantity); - } - - for (int i = 0; i < Count; i++) - { - var existingItem = runtimeItems[i]; - - if (existingItem.Equals(item)) - { - if (!item.IsStackable) - { - return Result.Err(InventoryError.ItemNotStackable); - } - - var consumedAmount = existingItem.IncreaseCount(count, out var updatedItem); - runtimeItems[i] = updatedItem.Value; - - count -= consumedAmount; - if (count <= 0) - { - return Result.Ok(0); - } - } - } - - return Result.Ok(count); - } - - private IResult AddNew(Item item, int count) - { - while (count > 0) - { - if (IsFull) - { - return Result.Err(InventoryError.InventoryFull); - } - - count -= InventoryItem.Create(item, count, out var newItem); - runtimeItems.Add(newItem.Value); - - } - - return Result.Ok(default); - } - - public IResult Add(Item item, int count = 1) - { - return AddToExisting(item, count) - .Where(count => count > 0) - .SelectMany(count => AddNew(item, count)) switch - { - Ok ok => ok, - Err(InventoryError.None) => Result.Ok(default), - var err => err - }; - } - - public IResult Remove(Item item, int count = 1) - { - if (count <= 0) - { - return Result.Err(InventoryError.InvalidQuantity); - } - - for (int i = runtimeItems.Count - 1; i >= 0; i--) - { - var existingItem = runtimeItems[i]; - - if (existingItem.Item == item) - { - if (existingItem.Count > count) - { - existingItem.ReduceCount(count, out var updatedItem); - runtimeItems[i] = updatedItem.Value; - return Result.Ok(Unit.Default); - } - else - { - count -= existingItem.Count; - runtimeItems.RemoveAt(i); - - if (count == 0) - { - return Result.Ok(Unit.Default); - } - } - } - } - - if (count > 0) - { - return Result.Err(InventoryError.NotEnoughQuantity); - } - + if (existingItem.Count > count) + { + existingItem.ReduceCount(count, out var updatedItem); + runtimeItems[i] = updatedItem.Value; return Result.Ok(Unit.Default); - } + } + else + { + count -= existingItem.Count; + runtimeItems.RemoveAt(i); - public bool Has(Item item) - { - for (int i = 0; i < Count; i++) + if (count == 0) { - if (runtimeItems[i].Equals(item)) - { - return true; - } + return Result.Ok(Unit.Default); } - - return false; + } } + } - public IEnumerator GetEnumerator() - { - return runtimeItems.GetEnumerator(); - } + if (count > 0) + { + return Result.Err(InventoryError.NotEnoughQuantity); + } - IEnumerator IEnumerable.GetEnumerator() - { - return GetEnumerator(); - } - - public ISynchronizedView CreateView(Func transform) - { - return runtimeItems.CreateView(transform); - } + return Result.Ok(Unit.Default); } + + public bool Has(Item item) + { + for (int i = 0; i < Count; i++) + { + if (runtimeItems[i].Equals(item)) + { + return true; + } + } + + return false; + } + + public IEnumerator GetEnumerator() + { + return runtimeItems.GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + public ISynchronizedView CreateView(Func transform) + { + return runtimeItems.CreateView(transform); + } + + public int Add(object value) + { + return ((IList)runtimeItems).Add(value); + } + + public void Clear() + { + ((IList)runtimeItems).Clear(); + } + + public bool Contains(object value) + { + return ((IList)runtimeItems).Contains(value); + } + + public int IndexOf(object value) + { + return ((IList)runtimeItems).IndexOf(value); + } + + public void Insert(int index, object value) + { + ((IList)runtimeItems).Insert(index, value); + } + + public void Remove(object value) + { + ((IList)runtimeItems).Remove(value); + } + + public void RemoveAt(int index) + { + ((IList)runtimeItems).RemoveAt(index); + } + + public void CopyTo(Array array, int index) + { + ((ICollection)runtimeItems).CopyTo(array, index); + } + } } diff --git a/Assets/Scripts/Item/InventoryInstance.cs b/Assets/Scripts/Item/InventoryInstance.cs index e9e40d0..efc310e 100644 --- a/Assets/Scripts/Item/InventoryInstance.cs +++ b/Assets/Scripts/Item/InventoryInstance.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.ItemSystem diff --git a/Assets/Scripts/Item/Item.cs b/Assets/Scripts/Item/Item.cs index 8c0cad8..9543155 100644 --- a/Assets/Scripts/Item/Item.cs +++ b/Assets/Scripts/Item/Item.cs @@ -1,83 +1,24 @@ -using System; -using System.Collections.Generic; -using KitsuneCafe.SOAP; -using KitsuneCafe.System; -using KitsuneCafe.System.Attributes; +using KitsuneCafe.Sys; +using KitsuneCafe.Sys.Attributes; using UnityEngine; namespace KitsuneCafe.ItemSystem { - public enum ItemType - { - Normal, - Weapon, - Tool - } [CreateAssetMenu(menuName = KitsuneCafeMenu.Item + "Item")] - public class Item : ScriptableObject + public class Item : BaseItem, IStackable { - [SerializeField] - private string id; - public string Id => id; - - [SerializeField] - private string displayName; - public string DisplayName => displayName; - - [SerializeField, TextArea] - private string description; - public string Description => description; - - [SerializeField] - private List tags; - public IReadOnlyList Tags => tags; - - [SerializeField] - private ItemType type; - public ItemType Type => type; - [SerializeField] private bool stackable; public bool IsStackable => stackable; [SerializeField, ShowIf("stackable")] - private int maxStackCount = 10; + private int maxStackCount = 1; public int MaxStackCount => maxStackCount; - [SerializeField] - private Texture2D icon; - public Texture2D Icon => icon; - - [SerializeField] - private GameObject instancePrefab; - - [SerializeField] - private GameObject previewPrefab; - private void Reset() { GenerateNewId(); } - - [Button("Generate New ID")] - private void GenerateNewId() - { - id = Guid.NewGuid().ToString(); -#if UNITY_EDITOR - UnityEditor.EditorUtility.SetDirty(this); -#endif - } - - - public GameObject CreateInstance() - { - return Instantiate(instancePrefab); - } - - public GameObject CreatePreview() - { - return Instantiate(previewPrefab); - } } } diff --git a/Assets/Scripts/Item/Recipe.cs b/Assets/Scripts/Item/Recipe.cs index e237c99..db19b9a 100644 --- a/Assets/Scripts/Item/Recipe.cs +++ b/Assets/Scripts/Item/Recipe.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.ItemSystem @@ -23,4 +23,4 @@ namespace KitsuneCafe.ItemSystem public Item ResultItem => result; public int ResultQuantity => resultQuantity; } -} \ No newline at end of file +} diff --git a/Assets/Scripts/SOAP/Constant/BoolConstant.cs b/Assets/Scripts/SOAP/Constant/BoolConstant.cs index ac5c17b..3a274d3 100644 --- a/Assets/Scripts/SOAP/Constant/BoolConstant.cs +++ b/Assets/Scripts/SOAP/Constant/BoolConstant.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/Constant/FloatConstant.cs b/Assets/Scripts/SOAP/Constant/FloatConstant.cs index e54deb9..14738a8 100644 --- a/Assets/Scripts/SOAP/Constant/FloatConstant.cs +++ b/Assets/Scripts/SOAP/Constant/FloatConstant.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/Constant/IntConstant.cs b/Assets/Scripts/SOAP/Constant/IntConstant.cs index 3ea9316..a1fb538 100644 --- a/Assets/Scripts/SOAP/Constant/IntConstant.cs +++ b/Assets/Scripts/SOAP/Constant/IntConstant.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/Constant/StringConstant.cs b/Assets/Scripts/SOAP/Constant/StringConstant.cs index 8298577..4c3d27a 100644 --- a/Assets/Scripts/SOAP/Constant/StringConstant.cs +++ b/Assets/Scripts/SOAP/Constant/StringConstant.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/Constant/Vector2Constant.cs b/Assets/Scripts/SOAP/Constant/Vector2Constant.cs index fa1ae6d..e3d1f27 100644 --- a/Assets/Scripts/SOAP/Constant/Vector2Constant.cs +++ b/Assets/Scripts/SOAP/Constant/Vector2Constant.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/Constant/Vector3Constant.cs b/Assets/Scripts/SOAP/Constant/Vector3Constant.cs index 9b33335..217f591 100644 --- a/Assets/Scripts/SOAP/Constant/Vector3Constant.cs +++ b/Assets/Scripts/SOAP/Constant/Vector3Constant.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/Event/BoolEvent.cs b/Assets/Scripts/SOAP/Event/BoolEvent.cs index 22f1e35..d001af5 100644 --- a/Assets/Scripts/SOAP/Event/BoolEvent.cs +++ b/Assets/Scripts/SOAP/Event/BoolEvent.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/Event/FloatEvent.cs b/Assets/Scripts/SOAP/Event/FloatEvent.cs index 737f46a..ffb3510 100644 --- a/Assets/Scripts/SOAP/Event/FloatEvent.cs +++ b/Assets/Scripts/SOAP/Event/FloatEvent.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/Event/IntEvent.cs b/Assets/Scripts/SOAP/Event/IntEvent.cs index 348c005..60c43c7 100644 --- a/Assets/Scripts/SOAP/Event/IntEvent.cs +++ b/Assets/Scripts/SOAP/Event/IntEvent.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/Event/StringEvent.cs b/Assets/Scripts/SOAP/Event/StringEvent.cs index e355046..b7641e7 100644 --- a/Assets/Scripts/SOAP/Event/StringEvent.cs +++ b/Assets/Scripts/SOAP/Event/StringEvent.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/Event/UnitEvent.cs b/Assets/Scripts/SOAP/Event/UnitEvent.cs index c59b89e..1a89cf1 100644 --- a/Assets/Scripts/SOAP/Event/UnitEvent.cs +++ b/Assets/Scripts/SOAP/Event/UnitEvent.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/Event/Vector2Event.cs b/Assets/Scripts/SOAP/Event/Vector2Event.cs index f3b4788..20956d0 100644 --- a/Assets/Scripts/SOAP/Event/Vector2Event.cs +++ b/Assets/Scripts/SOAP/Event/Vector2Event.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/Event/Vector3Event.cs b/Assets/Scripts/SOAP/Event/Vector3Event.cs index 2b9ccc5..375b07e 100644 --- a/Assets/Scripts/SOAP/Event/Vector3Event.cs +++ b/Assets/Scripts/SOAP/Event/Vector3Event.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/InputAction/BoolInputAction.cs b/Assets/Scripts/SOAP/InputAction/BoolInputAction.cs index f9bd0a4..ccddb6c 100644 --- a/Assets/Scripts/SOAP/InputAction/BoolInputAction.cs +++ b/Assets/Scripts/SOAP/InputAction/BoolInputAction.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/InputAction/FloatInputAction.cs b/Assets/Scripts/SOAP/InputAction/FloatInputAction.cs index 6cf7d2c..d98ce38 100644 --- a/Assets/Scripts/SOAP/InputAction/FloatInputAction.cs +++ b/Assets/Scripts/SOAP/InputAction/FloatInputAction.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/InputAction/IntInputAction.cs b/Assets/Scripts/SOAP/InputAction/IntInputAction.cs index 07a9489..13fda63 100644 --- a/Assets/Scripts/SOAP/InputAction/IntInputAction.cs +++ b/Assets/Scripts/SOAP/InputAction/IntInputAction.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/InputAction/UnitInputAction.cs b/Assets/Scripts/SOAP/InputAction/UnitInputAction.cs index c294a2b..eac950a 100644 --- a/Assets/Scripts/SOAP/InputAction/UnitInputAction.cs +++ b/Assets/Scripts/SOAP/InputAction/UnitInputAction.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/InputAction/Vector2InputAction.cs b/Assets/Scripts/SOAP/InputAction/Vector2InputAction.cs index f625ca5..3401fdb 100644 --- a/Assets/Scripts/SOAP/InputAction/Vector2InputAction.cs +++ b/Assets/Scripts/SOAP/InputAction/Vector2InputAction.cs @@ -1,5 +1,5 @@ using System.Numerics; -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/Value/ActionMapValue.cs b/Assets/Scripts/SOAP/Value/ActionMapValue.cs new file mode 100644 index 0000000..a82b742 --- /dev/null +++ b/Assets/Scripts/SOAP/Value/ActionMapValue.cs @@ -0,0 +1,13 @@ +using KitsuneCafe.Input; +using KitsuneCafe.Sys; +using UnityEngine; + +namespace KitsuneCafe.SOAP +{ + [CreateAssetMenu(fileName = "ActionMapValue", menuName = KitsuneCafeMenu.SoapValue + "ActionMap")] + public class ActionMapValue : ReactiveValue + { + + } +} + diff --git a/Assets/Scripts/SOAP/Value/ActionMapValue.cs.meta b/Assets/Scripts/SOAP/Value/ActionMapValue.cs.meta new file mode 100644 index 0000000..7bee7dd --- /dev/null +++ b/Assets/Scripts/SOAP/Value/ActionMapValue.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 6d52e2f42c12ad4e7baa16ee84bbd922 \ No newline at end of file diff --git a/Assets/Scripts/SOAP/Value/BoolValue.cs b/Assets/Scripts/SOAP/Value/BoolValue.cs index 953696e..677b8d0 100644 --- a/Assets/Scripts/SOAP/Value/BoolValue.cs +++ b/Assets/Scripts/SOAP/Value/BoolValue.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/Value/ControlSchemeValue.cs b/Assets/Scripts/SOAP/Value/ControlSchemeValue.cs new file mode 100644 index 0000000..ae303e1 --- /dev/null +++ b/Assets/Scripts/SOAP/Value/ControlSchemeValue.cs @@ -0,0 +1,13 @@ +using KitsuneCafe.Input; +using KitsuneCafe.Sys; +using UnityEngine; + +namespace KitsuneCafe.SOAP +{ + [CreateAssetMenu(fileName = "ControlSchemeValue", menuName = KitsuneCafeMenu.SoapValue + "ControlScheme")] + public class ControlSchemeValue : ReactiveValue + { + + } +} + diff --git a/Assets/Scripts/SOAP/Value/ControlSchemeValue.cs.meta b/Assets/Scripts/SOAP/Value/ControlSchemeValue.cs.meta new file mode 100644 index 0000000..60c9e63 --- /dev/null +++ b/Assets/Scripts/SOAP/Value/ControlSchemeValue.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: e5090e65294fb8ff1a7d06242e9c7a1f \ No newline at end of file diff --git a/Assets/Scripts/SOAP/Value/EquipmentValue.cs b/Assets/Scripts/SOAP/Value/EquipmentValue.cs new file mode 100644 index 0000000..ae0ca0d --- /dev/null +++ b/Assets/Scripts/SOAP/Value/EquipmentValue.cs @@ -0,0 +1,13 @@ + +using KitsuneCafe.ItemSystem; +using KitsuneCafe.Sys; +using UnityEngine; + +namespace KitsuneCafe.SOAP +{ + [CreateAssetMenu(fileName = "EquipmentValue", menuName = KitsuneCafeMenu.SoapValue + "Equipment")] + public class EquipmentValue : ReactiveValue + { + + } +} diff --git a/Assets/Scripts/SOAP/Value/EquipmentValue.cs.meta b/Assets/Scripts/SOAP/Value/EquipmentValue.cs.meta new file mode 100644 index 0000000..100014e --- /dev/null +++ b/Assets/Scripts/SOAP/Value/EquipmentValue.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 5418577a5e2be8f218e64364f8b64a5e \ No newline at end of file diff --git a/Assets/Scripts/SOAP/Value/FloatValue.cs b/Assets/Scripts/SOAP/Value/FloatValue.cs index 1974d1c..f16ea9f 100644 --- a/Assets/Scripts/SOAP/Value/FloatValue.cs +++ b/Assets/Scripts/SOAP/Value/FloatValue.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/Value/GameObjectValue.cs b/Assets/Scripts/SOAP/Value/GameObjectValue.cs index e0a3799..8990fd8 100644 --- a/Assets/Scripts/SOAP/Value/GameObjectValue.cs +++ b/Assets/Scripts/SOAP/Value/GameObjectValue.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/Value/IntValue.cs b/Assets/Scripts/SOAP/Value/IntValue.cs index e3e3130..dfd7f1a 100644 --- a/Assets/Scripts/SOAP/Value/IntValue.cs +++ b/Assets/Scripts/SOAP/Value/IntValue.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/Value/ItemValue.cs b/Assets/Scripts/SOAP/Value/ItemValue.cs index 1272d27..7870679 100644 --- a/Assets/Scripts/SOAP/Value/ItemValue.cs +++ b/Assets/Scripts/SOAP/Value/ItemValue.cs @@ -1,10 +1,11 @@ -using KitsuneCafe.System; +using KitsuneCafe.ItemSystem; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP { - [CreateAssetMenu(fileName = "ItemValue", menuName = KitsuneCafeMenu.SoapValue + "Item")] - public class ItemValue : ReactiveValue + [CreateAssetMenu(fileName = "Item", menuName = KitsuneCafeMenu.SoapValue + "Item")] + public class ItemValue : ReactiveValue { } diff --git a/Assets/Scripts/SOAP/Value/StringValue.cs b/Assets/Scripts/SOAP/Value/StringValue.cs index 9b0277f..dd8abe5 100644 --- a/Assets/Scripts/SOAP/Value/StringValue.cs +++ b/Assets/Scripts/SOAP/Value/StringValue.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/Value/UnitValue.cs b/Assets/Scripts/SOAP/Value/UnitValue.cs index 45cd548..86ac8b8 100644 --- a/Assets/Scripts/SOAP/Value/UnitValue.cs +++ b/Assets/Scripts/SOAP/Value/UnitValue.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; namespace KitsuneCafe.SOAP { diff --git a/Assets/Scripts/SOAP/Value/Vector2Value.cs b/Assets/Scripts/SOAP/Value/Vector2Value.cs index b1d7cad..dc2e82a 100644 --- a/Assets/Scripts/SOAP/Value/Vector2Value.cs +++ b/Assets/Scripts/SOAP/Value/Vector2Value.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/SOAP/Value/Vector3Value.cs b/Assets/Scripts/SOAP/Value/Vector3Value.cs index 351a2c2..216e8e1 100644 --- a/Assets/Scripts/SOAP/Value/Vector3Value.cs +++ b/Assets/Scripts/SOAP/Value/Vector3Value.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.SOAP diff --git a/Assets/Scripts/Scripting/Environment.cs b/Assets/Scripts/Scripting/Environment.cs index e137088..6b5a458 100644 --- a/Assets/Scripts/Scripting/Environment.cs +++ b/Assets/Scripts/Scripting/Environment.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; using Wacs.Core.Runtime; diff --git a/Assets/Scripts/Scripting/GlobalValueBinding.cs b/Assets/Scripts/Scripting/GlobalValueBinding.cs index c343b13..7819da1 100644 --- a/Assets/Scripts/Scripting/GlobalValueBinding.cs +++ b/Assets/Scripts/Scripting/GlobalValueBinding.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; using Wacs.Core.Runtime; using Wacs.Core.Types; diff --git a/Assets/Scripts/Scripting/Module.cs b/Assets/Scripts/Scripting/Module.cs index b6cbf09..9c6eb79 100644 --- a/Assets/Scripts/Scripting/Module.cs +++ b/Assets/Scripts/Scripting/Module.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; using Wacs.Core.Runtime; using Wacs.Core.Runtime.Types; diff --git a/Assets/Scripts/Scripting/Runtime.cs b/Assets/Scripts/Scripting/Runtime.cs index a36300c..8f5f5f5 100644 --- a/Assets/Scripts/Scripting/Runtime.cs +++ b/Assets/Scripts/Scripting/Runtime.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; using Wacs.Core.Runtime; using Wacs.Core.Runtime.Types; diff --git a/Assets/Scripts/Scripting/SayCBinding.cs b/Assets/Scripts/Scripting/SayCBinding.cs index 02f9ebf..91d73b4 100644 --- a/Assets/Scripts/Scripting/SayCBinding.cs +++ b/Assets/Scripts/Scripting/SayCBinding.cs @@ -1,6 +1,6 @@ using System; using System.Text; -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; using Wacs.Core.Runtime; diff --git a/Assets/Scripts/System/Attributes/AnimatorParamAttribute.cs b/Assets/Scripts/System/Attributes/AnimatorParamAttribute.cs index 81ec69f..b100040 100644 --- a/Assets/Scripts/System/Attributes/AnimatorParamAttribute.cs +++ b/Assets/Scripts/System/Attributes/AnimatorParamAttribute.cs @@ -2,7 +2,7 @@ using System; using UnityEngine; using AnimatorControllerParameterType = UnityEngine.AnimatorControllerParameterType; -namespace KitsuneCafe.System.Attributes +namespace KitsuneCafe.Sys.Attributes { [AttributeUsage(AttributeTargets.Field)] public class AnimatorParamAttribute : PropertyAttribute @@ -20,4 +20,4 @@ namespace KitsuneCafe.System.Attributes Type = type; } } -} \ No newline at end of file +} diff --git a/Assets/Scripts/System/Attributes/ButtonAttribute.cs b/Assets/Scripts/System/Attributes/ButtonAttribute.cs index d4dbbb9..dd27e33 100644 --- a/Assets/Scripts/System/Attributes/ButtonAttribute.cs +++ b/Assets/Scripts/System/Attributes/ButtonAttribute.cs @@ -1,7 +1,7 @@ using System; using UnityEngine; -namespace KitsuneCafe.System.Attributes +namespace KitsuneCafe.Sys.Attributes { [AttributeUsage(AttributeTargets.Method, Inherited = false, AllowMultiple = false)] public sealed class ButtonAttribute : PropertyAttribute @@ -13,4 +13,4 @@ namespace KitsuneCafe.System.Attributes Label = label; } } -} \ No newline at end of file +} diff --git a/Assets/Scripts/System/Attributes/ConditionalDisplayAttribute.cs b/Assets/Scripts/System/Attributes/ConditionalDisplayAttribute.cs index 5baa0eb..07349de 100644 --- a/Assets/Scripts/System/Attributes/ConditionalDisplayAttribute.cs +++ b/Assets/Scripts/System/Attributes/ConditionalDisplayAttribute.cs @@ -1,6 +1,6 @@ using UnityEngine; -namespace KitsuneCafe.System.Attributes +namespace KitsuneCafe.Sys.Attributes { public enum LogicalOperator { diff --git a/Assets/Scripts/System/Attributes/HideIfAttribute.cs b/Assets/Scripts/System/Attributes/HideIfAttribute.cs index fe60d65..1a8c8a7 100644 --- a/Assets/Scripts/System/Attributes/HideIfAttribute.cs +++ b/Assets/Scripts/System/Attributes/HideIfAttribute.cs @@ -1,6 +1,6 @@ using System; -namespace KitsuneCafe.System.Attributes +namespace KitsuneCafe.Sys.Attributes { public class HideIfAttribute : ConditionalDisplayAttribute { diff --git a/Assets/Scripts/System/Attributes/ShowIfAttribute.cs b/Assets/Scripts/System/Attributes/ShowIfAttribute.cs index 115e4b9..11e8d79 100644 --- a/Assets/Scripts/System/Attributes/ShowIfAttribute.cs +++ b/Assets/Scripts/System/Attributes/ShowIfAttribute.cs @@ -1,6 +1,6 @@ using System; -namespace KitsuneCafe.System.Attributes +namespace KitsuneCafe.Sys.Attributes { public class ShowIfAttribute : ConditionalDisplayAttribute { diff --git a/Assets/Scripts/System/Collections/BiDictionary.cs b/Assets/Scripts/System/Collections/BiDictionary.cs index 5a2750e..1d2df67 100644 --- a/Assets/Scripts/System/Collections/BiDictionary.cs +++ b/Assets/Scripts/System/Collections/BiDictionary.cs @@ -1,7 +1,7 @@ using System.Collections; using System.Collections.Generic; -namespace KitsuneCafe.System.Collections +namespace KitsuneCafe.Sys.Collections { public class BiDictionary : IDictionary.Left, BiDictionary.Right>, diff --git a/Assets/Scripts/System/Collections/CycleList.cs b/Assets/Scripts/System/Collections/CycleList.cs index 055ec48..e1c4b46 100644 --- a/Assets/Scripts/System/Collections/CycleList.cs +++ b/Assets/Scripts/System/Collections/CycleList.cs @@ -3,7 +3,7 @@ using System.Collections; using System.Collections.Generic; using System.Linq; -namespace KitsuneCafe.System.Collections +namespace KitsuneCafe.Sys.Collections { public class CycleList : IList, IList { diff --git a/Assets/Scripts/System/Duration.cs b/Assets/Scripts/System/Duration.cs index 97319e7..71844fc 100644 --- a/Assets/Scripts/System/Duration.cs +++ b/Assets/Scripts/System/Duration.cs @@ -2,7 +2,7 @@ using System; using UnityEngine; using UnityEngine.UIElements; -namespace KitsuneCafe.System +namespace KitsuneCafe.Sys { public enum TimeUnit : byte { diff --git a/Assets/Scripts/System/ExponentialMovingAverage.cs b/Assets/Scripts/System/ExponentialMovingAverage.cs new file mode 100644 index 0000000..ae212d3 --- /dev/null +++ b/Assets/Scripts/System/ExponentialMovingAverage.cs @@ -0,0 +1,22 @@ +namespace KitsuneCafe.Sys +{ + public class ExponentialMovingAverage + { + private readonly float alpha; + private float previousAverage = float.NaN; + + public ExponentialMovingAverage(int period) + { + alpha = 2f / (period + 1); + } + + public float Add(float value) + { + if (float.IsNaN(previousAverage)) + { + return value; + } + return (value - previousAverage) * alpha + previousAverage; + } + } +} diff --git a/Assets/Scripts/System/ExponentialMovingAverage.cs.meta b/Assets/Scripts/System/ExponentialMovingAverage.cs.meta new file mode 100644 index 0000000..19002d4 --- /dev/null +++ b/Assets/Scripts/System/ExponentialMovingAverage.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 92f47e76775c89e5eb67d3754e4af708 \ No newline at end of file diff --git a/Assets/Scripts/System/FComparer.cs b/Assets/Scripts/System/FComparer.cs index d998789..8777767 100644 --- a/Assets/Scripts/System/FComparer.cs +++ b/Assets/Scripts/System/FComparer.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace KitsuneCafe.System +namespace KitsuneCafe.Sys { public class FComparer : IComparer { @@ -46,4 +46,4 @@ namespace KitsuneCafe.System return obj.GetHashCode(); } } -} \ No newline at end of file +} diff --git a/Assets/Scripts/System/Func.cs b/Assets/Scripts/System/Func.cs index 31dd7b2..b91f91f 100644 --- a/Assets/Scripts/System/Func.cs +++ b/Assets/Scripts/System/Func.cs @@ -1,4 +1,4 @@ -namespace KitsuneCafe.System +namespace KitsuneCafe.Sys { public static class Func { diff --git a/Assets/Scripts/System/IGameObject.cs b/Assets/Scripts/System/IGameObject.cs index 1cb14ee..6cfef71 100644 --- a/Assets/Scripts/System/IGameObject.cs +++ b/Assets/Scripts/System/IGameObject.cs @@ -1,6 +1,6 @@ using UnityEngine; -namespace KitsuneCafe.System +namespace KitsuneCafe.Sys { public interface IGameObject { diff --git a/Assets/Scripts/System/KCMenu.cs b/Assets/Scripts/System/KCMenu.cs index 1eee189..856fe6c 100644 --- a/Assets/Scripts/System/KCMenu.cs +++ b/Assets/Scripts/System/KCMenu.cs @@ -1,4 +1,4 @@ -namespace KitsuneCafe.System +namespace KitsuneCafe.Sys { public static class KitsuneCafeMenu { diff --git a/Assets/Scripts/UI/Elements/RecycleView.meta b/Assets/Scripts/System/Numerics.meta similarity index 77% rename from Assets/Scripts/UI/Elements/RecycleView.meta rename to Assets/Scripts/System/Numerics.meta index f1d109e..bd8b1ea 100644 --- a/Assets/Scripts/UI/Elements/RecycleView.meta +++ b/Assets/Scripts/System/Numerics.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 0721663a92e075ca781f4fde5b3aec5d +guid: 4ab45429df276e83f82db2562da41204 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Scripts/System/Numerics/Saturating.cs b/Assets/Scripts/System/Numerics/Saturating.cs new file mode 100644 index 0000000..5a0dae3 --- /dev/null +++ b/Assets/Scripts/System/Numerics/Saturating.cs @@ -0,0 +1,101 @@ +namespace KitsuneCafe.Sys.Numerics +{ + public static class Saturating + { + public static sbyte Add(sbyte a, sbyte b) + { + sbyte value = unchecked((sbyte)(a + b)); + return value < a ? sbyte.MaxValue : value; + } + + public static byte Add(byte a, byte b) + { + byte value = unchecked((byte)(a + b)); + return value < a ? byte.MaxValue : value; + } + + public static short Add(short a, short b) + { + short value = unchecked((short)(a + b)); + return value < a ? short.MaxValue : value; + } + + public static ushort Add(ushort a, ushort b) + { + ushort value = unchecked((ushort)(a + b)); + return value < a ? ushort.MaxValue : value; + } + + public static int Add(int a, int b) + { + int value = unchecked(a + b); + return value < a ? int.MaxValue : value; + } + + public static uint Add(uint a, uint b) + { + uint value = unchecked(a + b); + return value < a ? uint.MaxValue : value; + } + + public static long Add(long a, long b) + { + long value = unchecked(a + b); + return value < a ? long.MaxValue : value; + } + + public static ulong Add(ulong a, ulong b) + { + ulong value = unchecked(a + b); + return value < a ? ulong.MaxValue : value; + } + + public static sbyte Sub(sbyte a, sbyte b) + { + sbyte value = unchecked((sbyte)(a - b)); + return value < a ? sbyte.MaxValue : value; + } + + public static byte Sub(byte a, byte b) + { + byte value = unchecked((byte)(a - b)); + return value < a ? byte.MaxValue : value; + } + + public static short Sub(short a, short b) + { + short value = unchecked((short)(a - b)); + return value < a ? short.MaxValue : value; + } + + public static ushort Sub(ushort a, ushort b) + { + ushort value = unchecked((ushort)(a - b)); + return value < a ? ushort.MaxValue : value; + } + + public static int Sub(int a, int b) + { + int value = unchecked(a - b); + return value < a ? int.MaxValue : value; + } + + public static uint Sub(uint a, uint b) + { + uint value = unchecked(a - b); + return value < a ? uint.MaxValue : value; + } + + public static long Sub(long a, long b) + { + long value = unchecked(a - b); + return value < a ? long.MaxValue : value; + } + + public static ulong Sub(ulong a, ulong b) + { + ulong value = unchecked(a - b); + return value < a ? ulong.MaxValue : value; + } + } +} diff --git a/Assets/Scripts/System/Numerics/Saturating.cs.meta b/Assets/Scripts/System/Numerics/Saturating.cs.meta new file mode 100644 index 0000000..90c4def --- /dev/null +++ b/Assets/Scripts/System/Numerics/Saturating.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 9113188fe65cbf3f4bacb78c3be76428 \ No newline at end of file diff --git a/Assets/Scripts/System/Option.cs b/Assets/Scripts/System/Option.cs index 1c81e30..73c3ce9 100644 --- a/Assets/Scripts/System/Option.cs +++ b/Assets/Scripts/System/Option.cs @@ -1,6 +1,6 @@ using System; -namespace KitsuneCafe.System +namespace KitsuneCafe.Sys { public class Option { diff --git a/Assets/Scripts/System/PooledObject.cs b/Assets/Scripts/System/PooledObject.cs index aa6e4a4..27ce86e 100644 --- a/Assets/Scripts/System/PooledObject.cs +++ b/Assets/Scripts/System/PooledObject.cs @@ -1,7 +1,7 @@ using UnityEngine; using UnityEngine.Pool; -namespace KitsuneCafe.System +namespace KitsuneCafe.Sys { public class PooledObject : MonoBehaviour { diff --git a/Assets/Scripts/System/Range.cs b/Assets/Scripts/System/Range.cs new file mode 100644 index 0000000..52f5d33 --- /dev/null +++ b/Assets/Scripts/System/Range.cs @@ -0,0 +1,155 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using KitsuneCafe.Sys.Numerics; + +namespace KitsuneCafe.Sys +{ + public record Index(int Value, bool IsFromEnd = false) + { + public static Index Start = new(0); + public static Index End = new(0, true); + public static Index NegativeInfinity = new(int.MinValue); + public static Index Infinity = new(int.MaxValue); + + public static Index FromStart(int value) => new(value); + public static Index FromEnd(int value) => new(value, true); + + public int GetOffset(int length) => IsFromEnd ? length - Value : Value; + + public static implicit operator int(Index value) => value.IsFromEnd ? -value.Value : value.Value; + public static implicit operator Index(int value) => new(value, value < 0); + public static implicit operator global::System.Index(Index index) => new(index.Value, index.IsFromEnd); + public static implicit operator Index(global::System.Index index) => new(index.Value, index.IsFromEnd); + } + + public record Range(Index Start, Index End) + { + public static Range All = new(Index.Start, Index.End); + + public static Range StartAt(Index start) => new(start, Index.End); + public static Range EndAt(Index end) => new(Index.Start, end); + public static Range OfLength(Index offset, int length) => new(offset, offset + length); + + public ClampingRange Clamp() => new(Start, End); + public ShiftingRange Shift() => new(Start, End); + public WrappingRange Wrap() => new(Start, End); + + public static implicit operator System.Range(Range range) => new(range.Start, range.End); + public static implicit operator Range(System.Range range) => new(range.Start, range.End); + + public virtual (int Offset, int Length) GetOffsetAndLength(int length) + { + var start = Start.GetOffset(length); + var end = End.GetOffset(length); + return (start, end - start); + } + + public virtual bool Contains(int length, Index index) + { + var start = Start.GetOffset(length); + var end = End.GetOffset(length); + return index >= start && index < end; + } + + public virtual IEnumerable Indices(int length) + { + var (start, len) = GetOffsetAndLength(length); + UnityEngine.Debug.Log($"making indices: start {start}, length {len}"); + + for (int i = start; i < start + len; i++) + { + yield return i; + } + } + + public virtual int[] ToArray(int length) + { + UnityEngine.Debug.Log($"making array of indices of length {length}"); + return Indices(length).ToArray(); + } + + public void Deconstruct(out Index start, out Index end) + { + start = Start; + end = End; + } + } + + public record ClampingRange(Index Start, Index End) : Range(Start, End) + { + public override (int Offset, int Length) GetOffsetAndLength(int length) + { + var (start, len) = base.GetOffsetAndLength(length); + return (start, Math.Clamp(len, 0, length - 1)); + } + } + + public record ShiftingRange(Index Start, Index End) : Range(Start, End) + { + public override (int Offset, int Length) GetOffsetAndLength(int length) + { + + var (start, len) = base.GetOffsetAndLength(length); + + int newStart = start; + int newEnd = start + len; + + if (newEnd > length) + { + int offset = newEnd - length; + newStart -= offset; + newEnd -= offset; + } + + if (newStart < 0) + { + int shiftAmount = 0 - newStart; + newStart += shiftAmount; + newEnd += shiftAmount; + } + + int newLength = Math.Min(newEnd - newStart, length); + + int newOffset = newStart; + + return (newOffset, newLength); + } + }; + + public record WrappingRange(Index Start, Index End) : Range(Start, End) + { + public static WrappingRange WrapFrom(Index start) => new(start, Index.Infinity); + public static WrappingRange WrapUntil(Index end) => new(Index.NegativeInfinity, end); + + public override (int Offset, int Length) GetOffsetAndLength(int length) + { + var start = Start.GetOffset(length); + var end = End.GetOffset(length); + var len = start + Math.Abs(end - start); + return (start, len); + } + + public override bool Contains(int length, Index index) + { + if (Start <= End) + { + return base.Contains(length, index); + } + else + { + return (Start <= index && index < length) || (0 <= index && index < End); + } + } + + public override IEnumerable Indices(int length) + { + var (start, len) = GetOffsetAndLength(length); + + for (int i = start; i < len; i++) + { + yield return i % length; + } + } + } +} diff --git a/Assets/Scripts/System/Range.cs.meta b/Assets/Scripts/System/Range.cs.meta new file mode 100644 index 0000000..da8009c --- /dev/null +++ b/Assets/Scripts/System/Range.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 33d168f59680b03f7a79e41e3f4f9906 \ No newline at end of file diff --git a/Assets/Scripts/System/Result.cs b/Assets/Scripts/System/Result.cs index 85d1589..b4fa6a9 100644 --- a/Assets/Scripts/System/Result.cs +++ b/Assets/Scripts/System/Result.cs @@ -1,7 +1,7 @@ using System; using UnityEngine.Rendering.Universal; -namespace KitsuneCafe.System +namespace KitsuneCafe.Sys { public static class Result { diff --git a/Assets/Scripts/System/SpawnPrefab.cs b/Assets/Scripts/System/SpawnPrefab.cs index 96f4c42..615638d 100644 --- a/Assets/Scripts/System/SpawnPrefab.cs +++ b/Assets/Scripts/System/SpawnPrefab.cs @@ -1,6 +1,6 @@ using UnityEngine; -namespace KitsuneCafe.System +namespace KitsuneCafe.Sys { public class SpawnPrefab : MonoBehaviour { @@ -18,4 +18,4 @@ namespace KitsuneCafe.System SpawnAt(transform.position); } } -} \ No newline at end of file +} diff --git a/Assets/Scripts/System/Timer.cs b/Assets/Scripts/System/Timer.cs index ad69996..88e791b 100644 --- a/Assets/Scripts/System/Timer.cs +++ b/Assets/Scripts/System/Timer.cs @@ -6,7 +6,7 @@ using UnityEditor; using UnityEngine; using UnityEngine.Events; using static KitsuneCafe.Extension.R3Extensions; -using TimeUnit = KitsuneCafe.System.TimeUnit; +using TimeUnit = KitsuneCafe.Sys.TimeUnit; namespace KitsuneCafe { @@ -171,7 +171,7 @@ namespace KitsuneCafe private TimeSpan GetDuration() { - return System.Duration.From(duration, unit); + return Sys.Duration.From(duration, unit); } private TimeSpan DeltaTime(TimeProvider timeProvider) diff --git a/Assets/Scripts/System/Unit.cs b/Assets/Scripts/System/Unit.cs index 63c564d..89f7f71 100644 --- a/Assets/Scripts/System/Unit.cs +++ b/Assets/Scripts/System/Unit.cs @@ -1,7 +1,7 @@ using System; using System.Runtime.InteropServices; -namespace KitsuneCafe.System +namespace KitsuneCafe.Sys { [StructLayout(LayoutKind.Sequential, Size = 1)] public readonly struct Unit : IEquatable, IEquatable diff --git a/Assets/Scripts/UI/Effect/FadeEffect.cs b/Assets/Scripts/UI/Effect/FadeEffect.cs index 59b8be9..d1aa6f7 100644 --- a/Assets/Scripts/UI/Effect/FadeEffect.cs +++ b/Assets/Scripts/UI/Effect/FadeEffect.cs @@ -1,12 +1,12 @@ +using System; using System.Threading; -using KitsuneCafe.System; -using KitsuneCafe.System.Attributes; +using KitsuneCafe.Extension; +using KitsuneCafe.Sys; +using KitsuneCafe.Sys.Attributes; using R3; using UnityEngine; using UnityEngine.UIElements; -using KitsuneCafe.Extension; using Unit = R3.Unit; -using System; namespace KitsuneCafe.UI { diff --git a/Assets/Scripts/UI/Elements/Layout/DynamicLayout.cs b/Assets/Scripts/UI/Elements/Layout/DynamicLayout.cs deleted file mode 100644 index b88c518..0000000 --- a/Assets/Scripts/UI/Elements/Layout/DynamicLayout.cs +++ /dev/null @@ -1,142 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.UIElements; - -namespace KitsuneCafe.UI -{ - - public class DynamicLayout : ILayout - { - public float DefaultItemSize { get; set; } - public float GutterSize { get; set; } = 0; - public FlowDirection Direction { get; set; } = FlowDirection.Vertical; - public int Buffer { get; set; } = 0; - public bool Wrap { get; set; } = false; - public int Count { get; set; } - public float ContentSize { get; private set; } - - private readonly List positions = new(); - private readonly List sizes = new(); - - public DynamicLayout(FlowDirection direction, float defaultItemSize = 22, float gutterSize = 0) - { - Direction = direction; - GutterSize = gutterSize; - DefaultItemSize = defaultItemSize; - } - - public float GetItemPosition(int index) - { - if (index > 0) - { - return GetItemPosition(index - 1) + GetItemSize(index - 1) + GutterSize; - } - - return 0; - } - - public float GetItemSize(int index) - { - if (index >= 0 && index < sizes.Count) - { - return sizes[index]; - } - - return DefaultItemSize; - } - - private float LastPositionOrDefault() - { - return positions.Count > 0 ? positions[^1] : DefaultItemSize + GutterSize; - } - - public void Update(int itemCount, VisualElement container) - { - while (positions.Count < itemCount) - { - var last = LastPositionOrDefault(); - positions.Add(last + DefaultItemSize + GutterSize); - sizes.Add(DefaultItemSize); - } - - if (positions.Count > itemCount) - { - positions.RemoveRange(itemCount, positions.Count - itemCount); - sizes.RemoveRange(itemCount, sizes.Count - itemCount); - } - - Count = itemCount; - ContentSize = LastPositionOrDefault(); - } - - private float CalculatePositions(int startingIndex = 0, float initialPosition = 0) - { - var position = initialPosition; - - for (int i = startingIndex; i < Count; i++) - { - positions[i] = position; - position += GetItemSize(i) + GutterSize; - } - - return ContentSize = position; - } - - public void SetMeasuredItemSize(int index, float size) - { - if (index < sizes.Count && Mathf.Approximately(sizes[index], size)) - { - return; - } - - sizes[index] = size; - - var position = index > 0 ? positions[index - 1] + sizes[index - 1] + GutterSize : 0; - CalculatePositions(index, position); - } - - public int GetFirstVisibleIndex(float offset) - { - if (offset <= 0) { return 0; } - - for (int i = 0; i < Count; i++) - { - if (positions[i] >= offset) - { - return i; - } - } - - return positions.Count - 1; - } - - public Range GetVisibleRange(float offset, float size) - { - var halfBuffer = Mathf.CeilToInt(Buffer / 2); - - var first = Math.Max( - GetFirstVisibleIndex(offset) - halfBuffer, - 0 - ); - - var count = 1; - var position = GetItemPosition(first); - var width = position + size; - - for (int i = first; i < Count; i++) - { - var item = GetItemPosition(i); - if (item > width) { break; } - count += 1; - } - - count += halfBuffer; - var last = Math.Min(Count, first + count); - - Debug.Log($"{first}:{last}"); - return new Range(first, last); - } - } -} diff --git a/Assets/Scripts/UI/Elements/Layout/DynamicLayout.cs.meta b/Assets/Scripts/UI/Elements/Layout/DynamicLayout.cs.meta deleted file mode 100644 index 577cc50..0000000 --- a/Assets/Scripts/UI/Elements/Layout/DynamicLayout.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: e38b8fbcaf537546ab9ecd9312112a49 \ No newline at end of file diff --git a/Assets/Scripts/UI/Elements/Layout/FixedLayout.cs b/Assets/Scripts/UI/Elements/Layout/FixedLayout.cs deleted file mode 100644 index e79341b..0000000 --- a/Assets/Scripts/UI/Elements/Layout/FixedLayout.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System; -using UnityEngine; -using UnityEngine.UIElements; - -namespace KitsuneCafe.UI -{ - public class FixedLayout : ILayout - { - public FlowDirection Direction { get; set; } = FlowDirection.Vertical; - public float ItemSize { get; set; } - public float GutterSize { get; set; } = 0; - public int Buffer { get; set; } = 0; - public bool Wrap { get; set; } = false; - - public int Count { get; set; } - public float ContentSize { get; private set; } - - public FixedLayout(FlowDirection direction, float itemSize, float gutterSize) - { - Direction = direction; - ItemSize = itemSize; - GutterSize = gutterSize; - } - - public FixedLayout(FlowDirection direction, float itemSize) : this(direction, itemSize, 0) { } - - public float GetItemPosition(int index) - { - return index * (ItemSize + GutterSize); - } - - public float GetItemSize(int _index) - { - return ItemSize; - } - - public void Update(int itemCount, VisualElement _container) - { - Count = itemCount; - ContentSize = itemCount * (ItemSize + GutterSize); - } - - public Range GetVisibleRange(float offset, float containerSize) - { - var size = ItemSize + GutterSize; - var halfBuffer = Mathf.CeilToInt(Buffer / 2); - var first = Mathf.FloorToInt(offset / (ItemSize + GutterSize)) - halfBuffer; - var count = Mathf.CeilToInt(containerSize / size) + halfBuffer; - var last = Math.Min(Count, first + count); - - Debug.Log($"{first}:{last}"); - return new Range(first, last); - } - } -} diff --git a/Assets/Scripts/UI/Elements/Layout/FixedLayout.cs.meta b/Assets/Scripts/UI/Elements/Layout/FixedLayout.cs.meta deleted file mode 100644 index 90326b1..0000000 --- a/Assets/Scripts/UI/Elements/Layout/FixedLayout.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 59a6a1d658db51ba5acf7f0235f34571 \ No newline at end of file diff --git a/Assets/Scripts/UI/Elements/Layout/ILayout.cs b/Assets/Scripts/UI/Elements/Layout/ILayout.cs deleted file mode 100644 index 125f3e5..0000000 --- a/Assets/Scripts/UI/Elements/Layout/ILayout.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using UnityEngine.UIElements; - -namespace KitsuneCafe.UI -{ - public interface ILayout - { - FlowDirection Direction { get; } - float ContentSize { get; } - int Buffer { get; } - - float GetItemPosition(int index); - float GetItemSize(int index); - Range GetVisibleRange(float offset, float size); - void Update(int itemCount, VisualElement container); - } -} diff --git a/Assets/Scripts/UI/Elements/Layout/ILayout.cs.meta b/Assets/Scripts/UI/Elements/Layout/ILayout.cs.meta deleted file mode 100644 index 47eff30..0000000 --- a/Assets/Scripts/UI/Elements/Layout/ILayout.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 0cfd00f2409d6a95ca26d19888b4d8d2 \ No newline at end of file diff --git a/Assets/Scripts/UI/Elements/ModalElement.cs b/Assets/Scripts/UI/Elements/ModalElement.cs index 3d9a0fb..130e2da 100644 --- a/Assets/Scripts/UI/Elements/ModalElement.cs +++ b/Assets/Scripts/UI/Elements/ModalElement.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; using UnityEngine.UIElements; diff --git a/Assets/Scripts/UI/Elements/RecycleView/ICollectionDataSource.cs b/Assets/Scripts/UI/Elements/RecycleView/ICollectionDataSource.cs deleted file mode 100644 index e123346..0000000 --- a/Assets/Scripts/UI/Elements/RecycleView/ICollectionDataSource.cs +++ /dev/null @@ -1,13 +0,0 @@ -using UnityEngine.UIElements; - -namespace KitsuneCafe.UI -{ - public interface ICollectionDataSource - { - int Length { get; } - - VisualElement CreateItem(); - void BindItem(VisualElement element, int index); - void UnbindItem(VisualElement element, int index); - } -} diff --git a/Assets/Scripts/UI/Elements/RecycleView/ICollectionDataSource.cs.meta b/Assets/Scripts/UI/Elements/RecycleView/ICollectionDataSource.cs.meta deleted file mode 100644 index b37b8f5..0000000 --- a/Assets/Scripts/UI/Elements/RecycleView/ICollectionDataSource.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 8cc192cc5a0da4ac0ba2505e808281ef \ No newline at end of file diff --git a/Assets/Scripts/UI/Elements/RecycleView/IDragAndDropController.cs b/Assets/Scripts/UI/Elements/RecycleView/IDragAndDropController.cs deleted file mode 100644 index 60088d6..0000000 --- a/Assets/Scripts/UI/Elements/RecycleView/IDragAndDropController.cs +++ /dev/null @@ -1,4 +0,0 @@ -namespace KitsuneCafe.UI -{ - public interface IDragAndDropController { } -} diff --git a/Assets/Scripts/UI/Elements/RecycleView/IDragAndDropController.cs.meta b/Assets/Scripts/UI/Elements/RecycleView/IDragAndDropController.cs.meta deleted file mode 100644 index b0b8fd1..0000000 --- a/Assets/Scripts/UI/Elements/RecycleView/IDragAndDropController.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 3206838b8b365654090a0ba619bf954f \ No newline at end of file diff --git a/Assets/Scripts/UI/Elements/RecycleView/IVirtualizationController.cs b/Assets/Scripts/UI/Elements/RecycleView/IVirtualizationController.cs deleted file mode 100644 index df409c2..0000000 --- a/Assets/Scripts/UI/Elements/RecycleView/IVirtualizationController.cs +++ /dev/null @@ -1,14 +0,0 @@ -using UnityEngine.UIElements; - -namespace KitsuneCafe.UI -{ - public interface IVirtualizationController - { - ICollectionDataSource DataSource { get; set; } - VisualElement Container { get; set; } - void Setup(); - void OnParentSizeChanged(UnityEngine.Vector2 size); - void OnScrolled(float scrollOffset); - float GetContentSize(); - } -} diff --git a/Assets/Scripts/UI/Elements/RecycleView/IVirtualizationController.cs.meta b/Assets/Scripts/UI/Elements/RecycleView/IVirtualizationController.cs.meta deleted file mode 100644 index 5774fd5..0000000 --- a/Assets/Scripts/UI/Elements/RecycleView/IVirtualizationController.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: b0f05a19f2918482b8d5c617729a9b31 \ No newline at end of file diff --git a/Assets/Scripts/UI/Elements/RecycleView/RecycleView.cs b/Assets/Scripts/UI/Elements/RecycleView/RecycleView.cs deleted file mode 100644 index 70b63ca..0000000 --- a/Assets/Scripts/UI/Elements/RecycleView/RecycleView.cs +++ /dev/null @@ -1,273 +0,0 @@ -using System; -using Unity.Properties; -using UnityEditor.UIElements; -using UnityEngine; -using UnityEngine.UIElements; - -namespace KitsuneCafe.UI -{ - public enum FlowDirection - { - Vertical = 0, - Horizontal = 1 - } - - - public abstract record CollectionItemSize; - - [Serializable] - public record FixedItemSize(float Size) : CollectionItemSize; - - [Serializable] - public record DynamicItemSize() : CollectionItemSize - { - public static readonly DynamicItemSize Instance = new(); - } - - public class CollectionItemSizeConverter : UxmlAttributeConverter - { - public override CollectionItemSize FromString(string value) - { - return value switch - { - "()" => new DynamicItemSize(), - var v => new FixedItemSize(int.Parse(v)) - }; - } - - public override string ToString(CollectionItemSize value) - { - return value switch - { - DynamicItemSize => "()", - var v => v.ToString(), - }; - } - } - - [UxmlElement] - public partial class RecycleView : VisualElement, IDisposable - { - public const string RecycleViewBaseClass = "kitsunecafe__recycle-view"; - public const string RecycleViewScrollViewClass = "kitsunecafe__recycle-view--scroll-view"; - public const string RecycleViewContentContainerClass = "kitsunecafe__recycle-view--content-container"; - public const string RecycleViewDynamicItemClass = "kitsunecafe__recycle-view--dynamic-item"; - - - private FlowDirection direction; - - [UxmlAttribute, CreateProperty] - public FlowDirection Direction - { - get => direction; - set - { - if (direction != value) - { - direction = value; - virtualizationController.Layout = CreateLayout(); - UpdateDirection(); - } - - } - } - - private bool isDynamicSize = false; - - [UxmlAttribute, CreateProperty] - public bool IsDynamicSize - { - get => isDynamicSize; - set - { - if (isDynamicSize != value) - { - isDynamicSize = value; - virtualizationController.Layout = CreateLayout(); - } - - } - } - - private float itemSize = 22; - - [UxmlAttribute, CreateProperty, Delayed, Tooltip("In a dynamic layout, this is used for initial calculations")] - public float ItemSize - { - get => itemSize; - set - { - if (itemSize != value) - { - itemSize = value; - if (virtualizationController.Layout is FixedLayout fixedLayout) - { - fixedLayout.ItemSize = value; - } - else if (virtualizationController.Layout is DynamicLayout dynamicLayout) - { - dynamicLayout.DefaultItemSize = value; - } - } - } - } - - private int bufferCount = 8; - - [UxmlAttribute, CreateProperty, Delayed] - public int BufferCount - { - get => bufferCount; - set - { - if (bufferCount != value) - { - bufferCount = value; - if (virtualizationController.Layout is FixedLayout fixedLayout) - { - fixedLayout.Buffer = value; - } - else if (virtualizationController.Layout is DynamicLayout dynamicLayout) - { - dynamicLayout.Buffer = value; - } - } - } - } - - private float gutter = 0; - - [UxmlAttribute, CreateProperty, Delayed] - public float Gutter - { - get => gutter; - set - { - if (gutter != value) - { - gutter = value; - if (virtualizationController.Layout is FixedLayout fixedLayout) - { - fixedLayout.GutterSize = value; - } - else if (virtualizationController.Layout is DynamicLayout dynamicLayout) - { - dynamicLayout.GutterSize = value; - } - } - } - } - - private bool wrap = false; - - [UxmlAttribute, CreateProperty] - public bool Wrap - { - get => wrap; - set - { - if (wrap != value) - { - wrap = value; - if (virtualizationController.Layout is FixedLayout fixedLayout) - { - fixedLayout.Wrap = wrap; - } - else if (virtualizationController.Layout is DynamicLayout dynamicLayout) - { - dynamicLayout.Wrap = wrap; - } - } - } - } - - - [CreateProperty] - public ICollectionDataSource DataSource - { - get => virtualizationController?.DataSource; - set - { - if (virtualizationController != null) - { - virtualizationController.DataSource = value; - virtualizationController.Setup(); - } - } - } - - private readonly ScrollView scrollView; - public override VisualElement contentContainer => scrollView.contentContainer; - - private readonly IRecycleVirtualizationContainer virtualizationController; - - public RecycleView() - { - AddToClassList(RecycleViewBaseClass); - - scrollView = new ScrollView(); - scrollView.AddToClassList(RecycleViewScrollViewClass); - hierarchy.Add(scrollView); - contentContainer.AddToClassList(RecycleViewContentContainerClass); - - virtualizationController = new RecycleVirtualizationController - { - Container = contentContainer - }; - - RegisterCallback(OnGeometryChanged); - } - - private ILayout CreateLayout() - { - UpdateDirection(); - - return isDynamicSize switch - { - true => new DynamicLayout(Direction, itemSize) { Buffer = bufferCount, GutterSize = gutter }, - false => new FixedLayout(Direction, itemSize) { Buffer = bufferCount, GutterSize = gutter } - }; - } - - - private void UpdateDirection() - { - switch (direction) - { - case FlowDirection.Vertical: - scrollView.mode = ScrollViewMode.Vertical; - scrollView.horizontalScroller.valueChanged -= virtualizationController.OnScrolled; - scrollView.verticalScroller.valueChanged += virtualizationController.OnScrolled; - Debug.Log("vertical"); - break; - case FlowDirection.Horizontal: - scrollView.mode = ScrollViewMode.Horizontal; - scrollView.verticalScroller.valueChanged -= virtualizationController.OnScrolled; - scrollView.horizontalScroller.valueChanged += virtualizationController.OnScrolled; - Debug.Log("horizontal"); - break; - } - } - - public void OnGeometryChanged(GeometryChangedEvent evt) - { - if (evt.newRect.size != evt.oldRect.size && virtualizationController != null) - { - virtualizationController.OnParentSizeChanged(evt.newRect.size); - } - } - - public void Dispose() - { - if (virtualizationController is IDisposable disposable) - { - disposable.Dispose(); - } - } - - ~RecycleView() - { - Dispose(); - } - } -} diff --git a/Assets/Scripts/UI/Elements/RecycleView/RecycleView.cs.meta b/Assets/Scripts/UI/Elements/RecycleView/RecycleView.cs.meta deleted file mode 100644 index 3a46aba..0000000 --- a/Assets/Scripts/UI/Elements/RecycleView/RecycleView.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 902d6b824a8533b7982956ca9cb66e40 \ No newline at end of file diff --git a/Assets/Scripts/UI/Elements/RecycleView/RecycleVirtualizationController.cs b/Assets/Scripts/UI/Elements/RecycleView/RecycleVirtualizationController.cs deleted file mode 100644 index 4f75519..0000000 --- a/Assets/Scripts/UI/Elements/RecycleView/RecycleVirtualizationController.cs +++ /dev/null @@ -1,335 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using KitsuneCafe.System.Collections; -using R3; -using UnityEngine; -using UnityEngine.UIElements; - -namespace KitsuneCafe.UI -{ - - interface IRecycleVirtualizationContainer : IVirtualizationController - { - ILayout Layout { get; set; } - } - - public class RecycleVirtualizationController : IRecycleVirtualizationContainer, IDisposable - { - internal record ItemGeometry(float Position, float Size); - - public abstract record UpdateRequest; - public record FullUpdate : UpdateRequest; - public record PartialUpdate(int Index) : UpdateRequest; - - private ICollectionDataSource dataSource; - - public ICollectionDataSource DataSource - { - get => dataSource; - set - { - if (dataSource != value) - { - dataSource = value; - Setup(); - } - } - } - - private VisualElement container; - public VisualElement Container - { - get => container; - set - { - if (container != value) - { - container = value; - Setup(); - } - } - } - - private ILayout layout; - public ILayout Layout - { - get => layout; - set - { - if (layout != value) - { - layout = value; - Setup(); - } - } - } - - public FlowDirection Direction => Layout.Direction; - - private readonly Queue itemPool = new(); - private readonly BiDictionary visibleItems = new(); - private float parentSize = 0; - private float lastKnownScrollOffset = 0; - private readonly Subject requestSubject = new(); - private IDisposable subscriptions; - - public void Setup() - { - Dispose(); - - - if (DataSource == null || DataSource.Length == 0 || Layout == null || Container == null) - { - return; - } - - var full = requestSubject.Where(req => req is FullUpdate) - .ThrottleLastFrame(1) - .Subscribe(_ => UpdateVisibleItems()); - - var partial = requestSubject.Where(req => req is PartialUpdate) - .Select(req => (PartialUpdate)req) - .ChunkFrame(1) - .Where(requests => requests.Any()) - .Subscribe(requests => - { - var index = requests.Min(req => req.Index); - UpdateFromIndex(index); - }); - - subscriptions = Disposable.Combine(full, partial); - - Layout.Update(DataSource.Length, Container); - ScheduleUpdate(); - } - - public void OnScrolled(float scrollOffset) - { - Debug.Log("scrolling"); - lastKnownScrollOffset = scrollOffset; - ScheduleUpdate(); - } - - public void OnParentSizeChanged(Vector2 size) - { - parentSize = Direction switch - { - FlowDirection.Vertical => size.y, - FlowDirection.Horizontal => size.x, - _ => throw new NotImplementedException(), - }; - - if (!float.IsNaN(parentSize)) - { - ScheduleUpdate(); - } - } - - private void ScheduleUpdate() - { - requestSubject.OnNext(new FullUpdate()); - } - - private void ScheduleUpdate(int index) - { - requestSubject.OnNext(new PartialUpdate(index)); - } - - private void UpdateSize(VisualElement element, StyleLength size) - { - if (Layout is null) - { - element.style.width = 0; - element.style.height = 0; - } - else if (Direction == FlowDirection.Vertical) - { - element.style.width = StyleKeyword.Auto; - element.style.height = size; - } - else if (Direction == FlowDirection.Horizontal) - { - element.style.height = StyleKeyword.Auto; - element.style.width = size; - } - } - - private VisualElement RecycleItem() - { - var item = itemPool.Dequeue(); - item.UnregisterCallback(OnItemGeometryChanged); - - return item; - } - - private VisualElement CreateItem(int index) - { - var item = DataSource.CreateItem(); - - if (Layout is FixedLayout) - { - float itemSize = Layout.GetItemSize(index); - UpdateSize(item, itemSize); - } - - return item; - } - - private VisualElement GetItem(int index) - { - VisualElement item = itemPool.Count > 0 ? RecycleItem() : CreateItem(index); - - item.RegisterCallback(OnItemGeometryChanged, index); - - DataSource.BindItem(item, index); - visibleItems[index] = item; - Container.Add(item); - - var position = Layout.GetItemPosition(index); - if (Direction == FlowDirection.Horizontal) - { - item.style.left = position; - } - else - { - item.style.top = position; - } - - - if (Layout is DynamicLayout layout) - { - var size = Direction switch - { - FlowDirection.Vertical => item.resolvedStyle.height, - FlowDirection.Horizontal => item.resolvedStyle.width, - _ => throw new NotImplementedException() - }; - - if (!float.IsNaN(size)) - { - layout.SetMeasuredItemSize(index, size); - } - } - - return item; - } - - private void OnItemGeometryChanged(GeometryChangedEvent evt, int index) - { - if (Layout is DynamicLayout layout) - { - var newSize = Direction == FlowDirection.Horizontal ? evt.newRect.width : evt.newRect.height; - layout.SetMeasuredItemSize(index, newSize); - UpdateSize(Container, Layout.ContentSize); - ScheduleUpdate(index); - } - } - - private void UpdateVisibleItems() - { - if (DataSource == null || DataSource.Length == 0 || Mathf.Approximately(parentSize, 0)) - { - return; - } - - var scrollOffset = lastKnownScrollOffset; - - var range = layout.GetVisibleRange(scrollOffset, parentSize); - - var firstIndex = range.Start.Value; - var lastIndex = range.End.Value; - - var itemsToRemove = new List(); - foreach (var (index, item) in visibleItems) - { - if (index < firstIndex || index >= lastIndex) - { - item.Value.UnregisterCallback(OnItemGeometryChanged); - DataSource.UnbindItem(item, index); - itemPool.Enqueue(item); - Container.Remove(item); - itemsToRemove.Add(index); - } - } - - foreach (int index in itemsToRemove) - { - visibleItems.Remove(index); - } - - for (int i = firstIndex; i < lastIndex; i++) - { - if (!visibleItems.ContainsKey(i)) - { - var item = GetItem(i); - - float position = Layout.GetItemPosition(i); - if (Direction == FlowDirection.Horizontal) - { - item.style.left = position; - } - else - { - item.style.top = position; - } - } - } - } - - private void UpdateFromIndex(int index) - { - foreach (var (i, item) in visibleItems) - { - if (i >= index) - { - float position = Layout.GetItemPosition(i); - if (Direction == FlowDirection.Horizontal) - { - item.Value.style.left = position; - } - else - { - item.Value.style.top = position; - } - } - } - } - - public float GetContentSize() - { - return Layout.ContentSize; - } - - private void UnregisterCallback(VisualElement element) - { - element.UnregisterCallback(OnItemGeometryChanged); - } - - public void Dispose() - { - foreach (var item in visibleItems.Values) - { - UnregisterCallback(item); - } - - foreach (var item in itemPool) - { - UnregisterCallback(item); - } - - - lastKnownScrollOffset = 0; - - subscriptions?.Dispose(); - Container.Clear(); - itemPool.Clear(); - visibleItems.Clear(); - } - - ~RecycleVirtualizationController() - { - Dispose(); - } - } -} diff --git a/Assets/Scripts/UI/Elements/RecycleView/RecycleVirtualizationController.cs.meta b/Assets/Scripts/UI/Elements/RecycleView/RecycleVirtualizationController.cs.meta deleted file mode 100644 index 132302b..0000000 --- a/Assets/Scripts/UI/Elements/RecycleView/RecycleVirtualizationController.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: a6e0bb01a1a66c1098e4392d86ce88df \ No newline at end of file diff --git a/Assets/Scripts/UI/Elements/UiElement.cs b/Assets/Scripts/UI/Elements/UiElement.cs index 909193d..a4aaca0 100644 --- a/Assets/Scripts/UI/Elements/UiElement.cs +++ b/Assets/Scripts/UI/Elements/UiElement.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; using UnityEngine.UIElements; diff --git a/Assets/UI/Test/Resources.meta b/Assets/Scripts/UI/MVVM.meta similarity index 77% rename from Assets/UI/Test/Resources.meta rename to Assets/Scripts/UI/MVVM.meta index 0763d18..571c887 100644 --- a/Assets/UI/Test/Resources.meta +++ b/Assets/Scripts/UI/MVVM.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 60c39b18b580f6428994e67d5c6c02a8 +guid: c57e2225bf598f10c9fa72ecf2a2e080 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Scripts/UI/MVVM/AdHocBinder.cs b/Assets/Scripts/UI/MVVM/AdHocBinder.cs new file mode 100644 index 0000000..c718b77 --- /dev/null +++ b/Assets/Scripts/UI/MVVM/AdHocBinder.cs @@ -0,0 +1,65 @@ +using System; +using UnityEngine.UIElements; + +namespace KitsuneCafe.UI.MVVM +{ + public class AdHocBinder : IBinder + { + private readonly Func create; + private readonly Action bind; + private readonly Action unbind; + private readonly Action destroy; + + public AdHocBinder( + Func create, + Action bind, + Action unbind, + Action destroy + ) + { + this.create = create; + this.bind = bind; + this.unbind = unbind; + this.destroy = destroy; + } + + public AdHocBinder( + Func create, + Action bind, + Action unbind + ) : this(create, bind, unbind, null) + { } + + public AdHocBinder( + Func create, + Action bind + ) : this(create, bind, null, null) + { } + + public VisualElement CreateItem() + { + return create(); + } + + public void BindItem(VisualElement element, int index) + { + bind(element, index); + } + + public void UnbindItem(VisualElement element) + { + if (unbind is not null) + { + unbind(element); + } + } + + public void DestroyItem(VisualElement element) + { + if (destroy is not null) + { + destroy(element); + } + } + } +} diff --git a/Assets/Scripts/UI/MVVM/AdHocBinder.cs.meta b/Assets/Scripts/UI/MVVM/AdHocBinder.cs.meta new file mode 100644 index 0000000..e9dfebf --- /dev/null +++ b/Assets/Scripts/UI/MVVM/AdHocBinder.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: cc93169827ffe3e24ae748901593a155 \ No newline at end of file diff --git a/Assets/Scripts/UI/MVVM/Command.cs b/Assets/Scripts/UI/MVVM/Command.cs new file mode 100644 index 0000000..8388bd4 --- /dev/null +++ b/Assets/Scripts/UI/MVVM/Command.cs @@ -0,0 +1,81 @@ +using System; + +namespace KitsuneCafe.UI.MVVM +{ + public interface ICommand + { + bool CanExecute(); + void Execute(); + + bool TryExecute() + { + if (CanExecute()) + { + Execute(); + return true; + } + return false; + } + } + + public interface ICommand + { + bool CanExecute(T value); + void Execute(T value); + + bool TryExecute(T value) + { + if (CanExecute(value)) + { + Execute(value); + return true; + } + + return false; + } + } + + public class RelayCommand : ICommand + { + public Func canExecute; + public Action execute; + + public RelayCommand(Func canExecute, Action execute) + { + this.canExecute = canExecute; + this.execute = execute; + } + + public bool CanExecute() + { + return canExecute(); + } + + public void Execute() + { + execute(); + } + } + + public class RelayCommand : ICommand + { + public Predicate canExecute; + public Action execute; + + public RelayCommand(Predicate canExecute, Action execute) + { + this.canExecute = canExecute; + this.execute = execute; + } + + public bool CanExecute(T value) + { + return canExecute(value); + } + + public void Execute(T value) + { + execute(value); + } + } +} diff --git a/Assets/Scripts/UI/MVVM/Command.cs.meta b/Assets/Scripts/UI/MVVM/Command.cs.meta new file mode 100644 index 0000000..52b4a86 --- /dev/null +++ b/Assets/Scripts/UI/MVVM/Command.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 574335d496721c882a2296b72b02f420 \ No newline at end of file diff --git a/Assets/Scripts/UI/MVVM/IBinder.cs b/Assets/Scripts/UI/MVVM/IBinder.cs new file mode 100644 index 0000000..1e21afa --- /dev/null +++ b/Assets/Scripts/UI/MVVM/IBinder.cs @@ -0,0 +1,12 @@ +using UnityEngine.UIElements; + +namespace KitsuneCafe.UI.MVVM +{ + public interface IBinder + { + VisualElement CreateItem(); + void BindItem(VisualElement element, int index); + void UnbindItem(VisualElement element); + void DestroyItem(VisualElement element); + } +} diff --git a/Assets/Scripts/UI/MVVM/IBinder.cs.meta b/Assets/Scripts/UI/MVVM/IBinder.cs.meta new file mode 100644 index 0000000..d76add8 --- /dev/null +++ b/Assets/Scripts/UI/MVVM/IBinder.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 0395a332e746ec229afc4092dc98339e \ No newline at end of file diff --git a/Assets/Scripts/UI/Orchestration/UiElementInstance.cs b/Assets/Scripts/UI/Orchestration/UiElementInstance.cs index 176b309..6e09adf 100644 --- a/Assets/Scripts/UI/Orchestration/UiElementInstance.cs +++ b/Assets/Scripts/UI/Orchestration/UiElementInstance.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; using System.Threading; -using KitsuneCafe.System; +using KitsuneCafe.Sys; using R3; using UnityEngine; using UnityEngine.UIElements; diff --git a/Assets/Scripts/UI/Orchestration/UiOrchestrator.cs b/Assets/Scripts/UI/Orchestration/UiOrchestrator.cs index 1aeea49..d0f3b26 100644 --- a/Assets/Scripts/UI/Orchestration/UiOrchestrator.cs +++ b/Assets/Scripts/UI/Orchestration/UiOrchestrator.cs @@ -1,5 +1,5 @@ using System; -using KitsuneCafe.System; +using KitsuneCafe.Sys; using UnityEngine; namespace KitsuneCafe.UI @@ -23,4 +23,4 @@ namespace KitsuneCafe.UI DespawnRequested.Invoke(this, DespawnElementRequest.Create(id)); } } -} \ No newline at end of file +} diff --git a/Assets/Scripts/UI/Orchestration/UiSceneManager.cs b/Assets/Scripts/UI/Orchestration/UiSceneManager.cs index 374185e..37fe348 100644 --- a/Assets/Scripts/UI/Orchestration/UiSceneManager.cs +++ b/Assets/Scripts/UI/Orchestration/UiSceneManager.cs @@ -1,10 +1,10 @@ -using UnityEngine; -using R3; -using System.Collections.Generic; using System; -using UnityEngine.UIElements; +using System.Collections.Generic; +using KitsuneCafe.Sys; +using R3; +using UnityEngine; using UnityEngine.Pool; -using KitsuneCafe.System; +using UnityEngine.UIElements; namespace KitsuneCafe.UI { @@ -155,4 +155,4 @@ namespace KitsuneCafe.UI } } } -} \ No newline at end of file +} diff --git a/Assets/UI/Test.meta b/Assets/Scripts/UI/Screen.meta similarity index 77% rename from Assets/UI/Test.meta rename to Assets/Scripts/UI/Screen.meta index fb2118e..54ee035 100644 --- a/Assets/UI/Test.meta +++ b/Assets/Scripts/UI/Screen.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 6be3a53c19fb771fa95c8b22fe8d5778 +guid: 00eba19d3bb1bed8bbc049695d573823 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Scripts/UI/Screen/InventoryScreen.cs b/Assets/Scripts/UI/Screen/InventoryScreen.cs new file mode 100644 index 0000000..b974655 --- /dev/null +++ b/Assets/Scripts/UI/Screen/InventoryScreen.cs @@ -0,0 +1,53 @@ +using System.Collections; +using KitsuneCafe.ItemSystem; +using KitsuneCafe.UI.MVVM; +using UnityEngine; +using UnityEngine.UIElements; + +namespace KitsuneCafe.UI +{ + public class InventoryScreen : MonoBehaviour + { + public const string ItemListIndicators = "item-list-indicator"; + public const string ItemList = "item-list"; + + + + public const string ItemDetailsTitle = "item-details-title-label"; + public const string ItemDetailsContent = "item-details-content-label"; + + [SerializeField] + private UIDocument doc; + + [SerializeField] + private Inventory inventory; + + [SerializeField] + private VisualTreeAsset template; + + private VisualElement root => doc.rootVisualElement; + + private VisualElement indicators; + private VisualElement itemList; + private VisualElement detailsTitle; + private VisualElement detailsContent; + + private void OnValidate() + { + if (doc == null) + { + doc = GetComponent(); + } + } + + private void Reset() + { + OnValidate(); + } + + private void Start() + { + + } + } +} diff --git a/Assets/Scripts/UI/Screen/InventoryScreen.cs.meta b/Assets/Scripts/UI/Screen/InventoryScreen.cs.meta new file mode 100644 index 0000000..7e63a3f --- /dev/null +++ b/Assets/Scripts/UI/Screen/InventoryScreen.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: b37256e37c5968be89fa34dd8344744f \ No newline at end of file diff --git a/Assets/Scripts/UI/TestRecycleView.cs b/Assets/Scripts/UI/TestRecycleView.cs deleted file mode 100644 index 8bf4555..0000000 --- a/Assets/Scripts/UI/TestRecycleView.cs +++ /dev/null @@ -1,57 +0,0 @@ -using KitsuneCafe.System.Collections; -using UnityEngine; -using UnityEngine.UIElements; - -namespace KitsuneCafe.UI -{ - public class TestRecycleView : MonoBehaviour - { - [SerializeField] - private UIDocument doc; - - private ListView listView; - - private void OnValidate() - { - if (doc == null) - { - doc = GetComponent(); - } - } - - private void Awake() - { - listView = doc.rootVisualElement.Q(); - listView.Q().verticalScrollerVisibility = ScrollerVisibility.Hidden; - listView.makeItem = () => new Label(); - listView.bindItem = (visualElement, index) => - { - Label label = visualElement as Label; - label.text = listView.itemsSource[index].ToString(); - }; - - } - - private void Start() - { - var list = new CycleList() { "one", "two", "three" }; - listView.itemsSource = list; - listView.RefreshItems(); - } - - private void OnEnable() - { - listView.itemsSourceChanged += ScrollToMiddle; - } - - private void OnDisable() - { - listView.itemsSourceChanged -= ScrollToMiddle; - } - - private void ScrollToMiddle() - { - listView.ScrollToItem(listView.itemsSource.Count / 2); - } - } -} diff --git a/Assets/Scripts/UI/TestRecycleView.cs.meta b/Assets/Scripts/UI/TestRecycleView.cs.meta deleted file mode 100644 index df9ba6d..0000000 --- a/Assets/Scripts/UI/TestRecycleView.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 0b73a6c894b05e193a00e4926ac578ed \ No newline at end of file diff --git a/Assets/Scripts/UI/TestThing.cs b/Assets/Scripts/UI/TestThing.cs index 236a992..635abef 100644 --- a/Assets/Scripts/UI/TestThing.cs +++ b/Assets/Scripts/UI/TestThing.cs @@ -1,4 +1,4 @@ -using KitsuneCafe.System.Attributes; +using KitsuneCafe.Sys.Attributes; using UnityEngine; namespace KitsuneCafe.UI diff --git a/Assets/UI Toolkit/PanelSettings.asset b/Assets/UI Toolkit/ScreenSpaceUI.asset similarity index 93% rename from Assets/UI Toolkit/PanelSettings.asset rename to Assets/UI Toolkit/ScreenSpaceUI.asset index fb84d7b..5e046f8 100644 --- a/Assets/UI Toolkit/PanelSettings.asset +++ b/Assets/UI Toolkit/ScreenSpaceUI.asset @@ -10,9 +10,9 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 19101, guid: 0000000000000000e000000000000000, type: 0} - m_Name: PanelSettings + m_Name: ScreenSpaceUI m_EditorClassIdentifier: - themeUss: {fileID: -4733365628477956816, guid: 255b091878454b37c92e400e84da7ebe, type: 3} + themeUss: {fileID: -4733365628477956816, guid: 3c3937ea58c441ab93fc1e0f7ec5fa46, type: 3} m_DisableNoThemeWarning: 0 m_TargetTexture: {fileID: 0} m_RenderMode: 0 diff --git a/Assets/UI Toolkit/PanelSettings.asset.meta b/Assets/UI Toolkit/ScreenSpaceUI.asset.meta similarity index 100% rename from Assets/UI Toolkit/PanelSettings.asset.meta rename to Assets/UI Toolkit/ScreenSpaceUI.asset.meta diff --git a/Assets/UI Toolkit/UnityThemes/CantoComponents.uss b/Assets/UI Toolkit/UnityThemes/CantoComponents.uss index 087f009..efd5055 100644 --- a/Assets/UI Toolkit/UnityThemes/CantoComponents.uss +++ b/Assets/UI Toolkit/UnityThemes/CantoComponents.uss @@ -11,11 +11,27 @@ } .kitsunecafe__recycle-view, -.kitsunecafe__recycle-view--scroll-view, +.kitsunecafe__recycle-view--scroll-view { +} + .kitsunecafe__recycle-view--content-container { flex-grow: 1; } -.kitsunecafe__recycle-view--content-container > * { - position: absolute; +.kitsunecafe__recycle-view--content-horizontal { + min-width: 300%; + flex-direction: row; +} + +.kitsunecafe__recycle-view--content-horizontal > * { + width: 100%; +} + +.kitsunecafe__recycle-view--content-vertical { + min-height: 300%; + flex-direction: column; +} + +.kitsunecafe__recycle-view--content-vertical > * { + height: 100%; } diff --git a/Assets/UI/Inventory.uxml b/Assets/UI/Inventory.uxml index d063435..77eca22 100644 --- a/Assets/UI/Inventory.uxml +++ b/Assets/UI/Inventory.uxml @@ -3,13 +3,14 @@ - - - - - - + + + + + + + @@ -21,13 +22,34 @@ - - - + + + + + + + + + + + + + + + + + + + + - + - + + + + + @@ -35,12 +57,20 @@ - + - - + + + + + + + + + + diff --git a/Assets/UI/ItemSlot.uxml b/Assets/UI/ItemSlot.uxml index a7a196b..4a5e216 100644 --- a/Assets/UI/ItemSlot.uxml +++ b/Assets/UI/ItemSlot.uxml @@ -1,11 +1,11 @@ -