diff --git a/Assets/Scene.unity b/Assets/Scene.unity new file mode 100644 index 0000000..86b61b0 --- /dev/null +++ b/Assets/Scene.unity @@ -0,0 +1,987 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &42357753 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 42357756} + - component: {fileID: 42357755} + - component: {fileID: 42357754} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &42357754 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 42357753} + m_Enabled: 1 +--- !u!20 &42357755 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 42357753} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &42357756 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 42357753} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &762063264 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 762063265} + m_Layer: 0 + m_Name: UI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &762063265 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 762063264} + 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: 831773407} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &831773406 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 831773407} + - component: {fileID: 831773410} + - component: {fileID: 831773409} + - component: {fileID: 831773408} + - component: {fileID: 831773411} + m_Layer: 0 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &831773407 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 831773406} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1276161489} + m_Father: {fileID: 762063265} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &831773408 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 831773406} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &831773409 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 831773406} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1600, y: 900} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!223 &831773410 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 831773406} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &831773411 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 831773406} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2270781166138a84fa19eefc3f92bda6, type: 3} + m_Name: + m_EditorClassIdentifier: + inventoryContainer: {fileID: 1276161489} + itemSlotTemplate: {fileID: 1081364496} +--- !u!224 &1081364496 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4215392545969358082, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + m_PrefabInstance: {fileID: 4215392547039679762} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1270691016 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1270691017} + m_Layer: 0 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1270691017 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1270691016} + 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: 1858773272} + m_Father: {fileID: 1276161489} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.00048828125} + m_SizeDelta: {x: 0.000061035, y: -0.00097656} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1276161485 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1276161489} + - component: {fileID: 1276161488} + m_Layer: 0 + m_Name: InventoryContainer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1276161488 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1276161485} + m_CullTransparentMesh: 1 +--- !u!224 &1276161489 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1276161485} + 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: 1270691017} + - {fileID: 1081364496} + m_Father: {fileID: 831773407} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 259.71698, y: -211.72588} + m_SizeDelta: {x: 561.131, y: 592.292} + m_Pivot: {x: 0, y: 1} +--- !u!1 &1327223488 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1327223490} + - component: {fileID: 1327223489} + - component: {fileID: 1327223491} + m_Layer: 0 + m_Name: player + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1327223489 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1327223488} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cff3b5ce3863a7442a86b400700ff131, type: 3} + m_Name: + m_EditorClassIdentifier: + item1: {fileID: 11400000, guid: a29513e23691eb0408e3b0e1a8e99148, type: 2} + item2: {fileID: 11400000, guid: e04039a6cbed5e5439b605aeee90485f, type: 2} + inventory: {fileID: 0} + uiInventory: {fileID: 831773411} +--- !u!4 &1327223490 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1327223488} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 209.55298, y: 268.50955, z: 3.2421181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1327223491 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1327223488} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ee2fcb6d299019740bbede78bbc6a1d7, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1404527750 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1404527751} + - component: {fileID: 1404527753} + - component: {fileID: 1404527752} + m_Layer: 0 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1404527751 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1404527750} + 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: 1632946789} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -25, y: 15} + m_SizeDelta: {x: 40, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1404527752 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1404527750} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 100 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2100000, guid: 79459efec17a4d00a321bdcc27bbc385, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 4 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1404527753 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1404527750} + m_CullTransparentMesh: 1 +--- !u!1 &1618529780 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1618529782} + - component: {fileID: 1618529781} + m_Layer: 0 + m_Name: ItemAtlas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1618529781 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1618529780} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 362c4fe8229e41c46b489ad07bfa9133, type: 3} + m_Name: + m_EditorClassIdentifier: + stoneSprite: {fileID: 21300000, guid: 475f050511847c0499c1ca4f47fcaefa, type: 3} + woodSprite: {fileID: 0} +--- !u!4 &1618529782 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1618529780} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -4.46076, y: 190.54059, z: 0.77190876} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1632946788 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1031884711933943707, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + m_PrefabInstance: {fileID: 4215392547039679762} + m_PrefabAsset: {fileID: 0} +--- !u!224 &1632946789 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2917703646420147887, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + m_PrefabInstance: {fileID: 4215392547039679762} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1632946793 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1632946788} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8e3ae0ca7d3fa0f4cb5a877a7f8183ec, type: 3} + m_Name: + m_EditorClassIdentifier: + index: 0 +--- !u!1 &1683721763 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1683721766} + - component: {fileID: 1683721765} + - component: {fileID: 1683721764} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1683721764 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1683721763} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &1683721765 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1683721763} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &1683721766 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1683721763} + 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: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1858773271 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1858773272} + - component: {fileID: 1858773274} + - component: {fileID: 1858773273} + m_Layer: 0 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1858773272 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1858773271} + 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: 1270691017} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -0.000045776, y: 0.000015259} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1858773273 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1858773271} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: bc5f789010615674bb9b456338ed4ad3, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1858773274 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1858773271} + m_CullTransparentMesh: 1 +--- !u!1001 &4215392547039679762 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1276161489} + m_Modifications: + - target: {fileID: 2310262034725730047, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2310262034725730047, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 2310262034725730047, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 831773411} + - target: {fileID: 2310262034725730047, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2310262034725730047, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: buttonEvent + objectReference: {fileID: 0} + - target: {fileID: 2310262034725730047, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: UI_Inventory, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 2310262034725730047, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 4215392545672552185, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358082, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358082, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358082, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358082, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358082, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358082, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358082, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358082, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_SizeDelta.x + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358082, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_SizeDelta.y + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358082, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358082, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358082, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358082, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358082, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358082, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358082, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358082, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 66 + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358082, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -62 + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358082, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358082, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358082, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358109, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_Name + value: ContainerTemplate + objectReference: {fileID: 0} + - target: {fileID: 4215392545969358109, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ac29b266608f92b419b28a16d8ee7c1b, type: 3} diff --git a/Assets/Scene.unity.meta b/Assets/Scene.unity.meta new file mode 100644 index 0000000..1cce305 --- /dev/null +++ b/Assets/Scene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5e7d834e74f65cc4d9aa775c80b8f79a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ButtonEventHandler.cs b/Assets/Scripts/ButtonEventHandler.cs new file mode 100644 index 0000000..8e3f26e --- /dev/null +++ b/Assets/Scripts/ButtonEventHandler.cs @@ -0,0 +1,10 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ButtonEventHandler : MonoBehaviour +{ + + [SerializeField] UI_Inventory inventory; + +} diff --git a/Assets/Scripts/ButtonEventHandler.cs.meta b/Assets/Scripts/ButtonEventHandler.cs.meta new file mode 100644 index 0000000..8f6bbcb --- /dev/null +++ b/Assets/Scripts/ButtonEventHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 005d6c21020af7e41813cdc4202c886f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Identity.cs b/Assets/Scripts/Identity.cs new file mode 100644 index 0000000..6566834 --- /dev/null +++ b/Assets/Scripts/Identity.cs @@ -0,0 +1,8 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Identity : MonoBehaviour +{ + public int index; +} diff --git a/Assets/Scripts/Identity.cs.meta b/Assets/Scripts/Identity.cs.meta new file mode 100644 index 0000000..98d885e --- /dev/null +++ b/Assets/Scripts/Identity.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8e3ae0ca7d3fa0f4cb5a877a7f8183ec +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Inventory.meta b/Assets/Scripts/Inventory.meta new file mode 100644 index 0000000..1c64f9c --- /dev/null +++ b/Assets/Scripts/Inventory.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 27c09b7e7d0e7824f882a062a77737c2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Inventory/FoodItem.cs b/Assets/Scripts/Inventory/FoodItem.cs new file mode 100644 index 0000000..ef65e4c --- /dev/null +++ b/Assets/Scripts/Inventory/FoodItem.cs @@ -0,0 +1,10 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +[CreateAssetMenu(fileName = "FoodItem", menuName = "Items/FoodItem", order = 2)] +public class FoodItem : Item +{ + public int health; + public int water; + public int regeneration; +} diff --git a/Assets/Scripts/Inventory/FoodItem.cs.meta b/Assets/Scripts/Inventory/FoodItem.cs.meta new file mode 100644 index 0000000..948f09e --- /dev/null +++ b/Assets/Scripts/Inventory/FoodItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0f6fecdcda7efd84baa350f4c41432a6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Inventory/Inventory.cs b/Assets/Scripts/Inventory/Inventory.cs new file mode 100644 index 0000000..c3626c6 --- /dev/null +++ b/Assets/Scripts/Inventory/Inventory.cs @@ -0,0 +1,145 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Inventory : MonoBehaviour +{ + /// + /// -------------------------------------------------------------------------------/// + /// + /// Inventory holds a list of Slots where Items can be added. + /// + ///[IMPORTANT] + /// !!createEmptyInventory(int numberOfSlots, int maxSpaceOfSlots) : Has to be called after the Inventory has been initialized!! + /// + ///[Methods] + /// getInventory() : Gets the list of Slots. + /// addItemAt(int index, Item itemType,int count) : Adds a number (count) of items of type itemType (itemType) to an item slot(index). + /// removeItemAt(int index, int count) : Removes a number of items (count) from a specific slot (index). + /// addInventorySlots(int numberOfSlots, int maxSpaceOfSlots = 10) + /// + /// -------------------------------------------------------------------------------/// + /// + + + public delegate void OnItemChanged(); + public OnItemChanged onItemChangedCallback; // + + List inventory = new List(); + + public List getInventory { get => inventory;} + public void createEmptyInventory(int numberOfSlots, int maxSpaceOfSlots = 10) + { + // Initializes the inventory with a specific number of slots and slotsize. + // !!!Has to be called bevore adding any items!!! + // Example createEmptyInventory(5, 10) : 5 Slots with space for 10 items each + inventory = new List(); + for (int i = 0; i < numberOfSlots; i++) + { + inventory.Add(new Slot(maxSpaceOfSlots)); + } + if (onItemChangedCallback != null) + onItemChangedCallback.Invoke(); + } + public void addInventorySlots(int numberOfSlots, int maxSpaceOfSlots = 10) + { + // Adds a specific number of slots and slotsize to the inventory. + // Example addInventorySlots(5, 10) : Adds 5 Slots with space for 10 items each + for (int i = 0; i < numberOfSlots; i++) + { + inventory.Add(new Slot(maxSpaceOfSlots)); + } + if (onItemChangedCallback != null) + onItemChangedCallback.Invoke(); + } + public int addItemAt(int index, Item itemType,int count) + { + // Adds a number (count = 7) of items of type itemType (itemType = Stone) to an item slot(index = 3). + //Returns the number of items that could not be added because of unsufficent space in the specefied slot + //or Return -1 if the index is out of bound or the item slot is already filled with a different itemType. + // + // Example inventory.addItemAt(3,Stone,7); + + if (indexIsInRange(index) && (inventory[index].ItemType == null || inventory[index].ItemType.id == itemType.id)) + { + if (inventory[index].ItemType == null) + { + inventory[index].ItemType = Instantiate(itemType); // Set the itemType if the slot was empty. + } + + if (inventory[index].MaxItems == inventory[index].Count) + { + + if (onItemChangedCallback != null) + onItemChangedCallback.Invoke(); + return count; // Can't add any items if the slot is full. + } + else if (inventory[index].MaxItems >= inventory[index].Count + count) + { + inventory[index].addItem(count); // Adds all items if there is enought space. + if(onItemChangedCallback != null) + onItemChangedCallback.Invoke(); + return 0; + } else + { + int rest = count - inventory[index].MaxItems - inventory[index].Count; + inventory[index].addItem(inventory[index].MaxItems - inventory[index].Count); // Adds the number of items until the slot is full and returns the number of items that didn't fit. + if (onItemChangedCallback != null) + onItemChangedCallback.Invoke(); + return rest; + } + } + else + { + + return -1;//Wrong item or index not in range. + } + } + public int removeItemAt(int index, int count) + { + // Removes a number of items (count = 5) from a specific slot (index = 4). + // Example inventory.removeItemAt(4,5) + if (indexIsInRange(index)) + { + if (inventory[index].ItemType == null) + { + return count;// Can't remove any items if the slot is empty. + } + else if (inventory[index].Count > count) + { + inventory[index].removeItem(count);// Removes the number of items if there are more or equal items in the slot. + return 0; + } + else if (inventory[index].Count <= count) + { + int rest = count - inventory[index].Count; + inventory[index].Count = 0; // Removes all the items from the slot and returns the number of items that could not be removed. + inventory[index].ItemType = null; // When the slot is empty the itemType can also be removed. + return rest; + } + else + { + return -1; // Something went wrong (you should never end up in here). + } + + } + else + { + return -1;//Index not in range. + } + } + private bool indexIsInRange(int index) + { + // Returns true if a given index is in the bounds of the inventory. + // Example (maxSize = 10) index = -10 : false , index = 100: false, index = 7 : true + + if (index < inventory.Count && index >= 0) + { + return true; + } + else + { + return false; + } + } +} diff --git a/Assets/Scripts/Inventory/Inventory.cs.meta b/Assets/Scripts/Inventory/Inventory.cs.meta new file mode 100644 index 0000000..8e85ac9 --- /dev/null +++ b/Assets/Scripts/Inventory/Inventory.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ee2fcb6d299019740bbede78bbc6a1d7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Inventory/InventoryController.cs b/Assets/Scripts/Inventory/InventoryController.cs new file mode 100644 index 0000000..2925274 --- /dev/null +++ b/Assets/Scripts/Inventory/InventoryController.cs @@ -0,0 +1,39 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class InventoryController : MonoBehaviour +{ + [SerializeField] Item item1;// not needed + [SerializeField] Item item2;// not needed + public Inventory inventory; + [SerializeField] UI_Inventory uiInventory; + private void Awake() + { + inventory = transform.GetComponent(); + inventory.createEmptyInventory(8,10); + + inventory.addItemAt(0, item1, 8); + inventory.addItemAt(0, item1, 1); + inventory.addItemAt(3, item2, 15); + inventory.addItemAt(4, item1, 3); + + /* + Debug.Log(inventory.addItemAt(0, item2, 15)); + Debug.Log(inventory.getInventory[0].Count); + Debug.Log(inventory.removeItemAt(0, 10)); + Debug.Log(inventory.getInventory[0].Count); + */ + uiInventory.setInventory(inventory); + } + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Inventory/InventoryController.cs.meta b/Assets/Scripts/Inventory/InventoryController.cs.meta new file mode 100644 index 0000000..4eccd65 --- /dev/null +++ b/Assets/Scripts/Inventory/InventoryController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cff3b5ce3863a7442a86b400700ff131 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Inventory/Item.cs b/Assets/Scripts/Inventory/Item.cs new file mode 100644 index 0000000..66753d1 --- /dev/null +++ b/Assets/Scripts/Inventory/Item.cs @@ -0,0 +1,12 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[CreateAssetMenu(fileName = "Item", menuName = "Items/Item", order = 1)] +public class Item : ScriptableObject +{ + public new string name; + public int id; + public bool isStackable; + public Sprite sprite; +} diff --git a/Assets/Scripts/Inventory/Item.cs.meta b/Assets/Scripts/Inventory/Item.cs.meta new file mode 100644 index 0000000..de9863c --- /dev/null +++ b/Assets/Scripts/Inventory/Item.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: de55e2e3081d4ee4a9d0737e718a5b3b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Inventory/ItemAtlas.cs b/Assets/Scripts/Inventory/ItemAtlas.cs new file mode 100644 index 0000000..44e5ba4 --- /dev/null +++ b/Assets/Scripts/Inventory/ItemAtlas.cs @@ -0,0 +1,19 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ItemAtlas : MonoBehaviour +{ + public static ItemAtlas Instance { get; private set; } + + private void Awake() + { + Instance = this; + } + enum ItemTypes { + STONE,TOMATO + + } + public Sprite stoneSprite; + public Sprite woodSprite; +} diff --git a/Assets/Scripts/Inventory/ItemAtlas.cs.meta b/Assets/Scripts/Inventory/ItemAtlas.cs.meta new file mode 100644 index 0000000..eeeec63 --- /dev/null +++ b/Assets/Scripts/Inventory/ItemAtlas.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 362c4fe8229e41c46b489ad07bfa9133 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Inventory/Items.meta b/Assets/Scripts/Inventory/Items.meta new file mode 100644 index 0000000..ffadd7a --- /dev/null +++ b/Assets/Scripts/Inventory/Items.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: db274161008cc6a4a8c92d42b6a81832 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Inventory/Items/ContainerTemplate.prefab b/Assets/Scripts/Inventory/Items/ContainerTemplate.prefab new file mode 100644 index 0000000..2095541 --- /dev/null +++ b/Assets/Scripts/Inventory/Items/ContainerTemplate.prefab @@ -0,0 +1,237 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1031884711933943707 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2917703646420147887} + - component: {fileID: 9007524712572810876} + - component: {fileID: 5255690316907466923} + - component: {fileID: 2310262034725730047} + m_Layer: 0 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2917703646420147887 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1031884711933943707} + 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: 4215392545672552190} + m_Father: {fileID: 4215392545969358082} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 0} + m_SizeDelta: {x: 85, y: 85} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9007524712572810876 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1031884711933943707} + m_CullTransparentMesh: 1 +--- !u!114 &5255690316907466923 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1031884711933943707} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 0543fd6b654bedd4fa82b563887c0609, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2310262034725730047 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1031884711933943707} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.4811321, g: 0.4811321, b: 0.4811321, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5255690316907466923} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &4215392545672552185 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4215392545672552190} + - component: {fileID: 4215392545672552188} + - component: {fileID: 4215392545672552191} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4215392545672552190 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4215392545672552185} + 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: 2917703646420147887} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 70, y: 70} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4215392545672552188 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4215392545672552185} + m_CullTransparentMesh: 1 +--- !u!114 &4215392545672552191 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4215392545672552185} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 475f050511847c0499c1ca4f47fcaefa, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &4215392545969358109 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4215392545969358082} + m_Layer: 0 + m_Name: ContainerTemplate + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4215392545969358082 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4215392545969358109} + 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: 2917703646420147887} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -443, y: 131.1} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/Scripts/Inventory/Items/ContainerTemplate.prefab.meta b/Assets/Scripts/Inventory/Items/ContainerTemplate.prefab.meta new file mode 100644 index 0000000..82145e9 --- /dev/null +++ b/Assets/Scripts/Inventory/Items/ContainerTemplate.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ac29b266608f92b419b28a16d8ee7c1b +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Inventory/Items/Lumber.asset b/Assets/Scripts/Inventory/Items/Lumber.asset new file mode 100644 index 0000000..4ba876b --- /dev/null +++ b/Assets/Scripts/Inventory/Items/Lumber.asset @@ -0,0 +1,18 @@ +%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: de55e2e3081d4ee4a9d0737e718a5b3b, type: 3} + m_Name: Lumber + m_EditorClassIdentifier: + name: Lumber + id: 3 + isStackable: 1 + sprite: {fileID: 21300000, guid: 636c61591a702914dadb6abf17d92f6f, type: 3} diff --git a/Assets/Scripts/Inventory/Items/Lumber.asset.meta b/Assets/Scripts/Inventory/Items/Lumber.asset.meta new file mode 100644 index 0000000..55d9f76 --- /dev/null +++ b/Assets/Scripts/Inventory/Items/Lumber.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 90fd8b1738596514f860a4ce5adaba88 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Inventory/Items/Stone.asset b/Assets/Scripts/Inventory/Items/Stone.asset new file mode 100644 index 0000000..7bea6e7 --- /dev/null +++ b/Assets/Scripts/Inventory/Items/Stone.asset @@ -0,0 +1,18 @@ +%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: de55e2e3081d4ee4a9d0737e718a5b3b, type: 3} + m_Name: Stone + m_EditorClassIdentifier: + name: Stone + id: 0 + isStackable: 1 + sprite: {fileID: 21300000, guid: 475f050511847c0499c1ca4f47fcaefa, type: 3} diff --git a/Assets/Scripts/Inventory/Items/Stone.asset.meta b/Assets/Scripts/Inventory/Items/Stone.asset.meta new file mode 100644 index 0000000..2e2e48f --- /dev/null +++ b/Assets/Scripts/Inventory/Items/Stone.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e04039a6cbed5e5439b605aeee90485f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Inventory/Items/Tomato.asset b/Assets/Scripts/Inventory/Items/Tomato.asset new file mode 100644 index 0000000..4c0cc67 --- /dev/null +++ b/Assets/Scripts/Inventory/Items/Tomato.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: 0f6fecdcda7efd84baa350f4c41432a6, type: 3} + m_Name: Tomato + m_EditorClassIdentifier: + name: Tomato + id: 1 + isStackable: 1 + sprite: {fileID: 21300000, guid: 5ee3152fa9663e94092921b0bd6b4821, type: 3} + health: 15 + water: 10 + regeneration: 2 diff --git a/Assets/Scripts/Inventory/Items/Tomato.asset.meta b/Assets/Scripts/Inventory/Items/Tomato.asset.meta new file mode 100644 index 0000000..2ac23e8 --- /dev/null +++ b/Assets/Scripts/Inventory/Items/Tomato.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a29513e23691eb0408e3b0e1a8e99148 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Inventory/Items/Wood.asset b/Assets/Scripts/Inventory/Items/Wood.asset new file mode 100644 index 0000000..22176e0 --- /dev/null +++ b/Assets/Scripts/Inventory/Items/Wood.asset @@ -0,0 +1,18 @@ +%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: de55e2e3081d4ee4a9d0737e718a5b3b, type: 3} + m_Name: Wood + m_EditorClassIdentifier: + name: Wood + id: 2 + isStackable: 1 + sprite: {fileID: 21300000, guid: 30728ae26107dfe438d180ab175fdaca, type: 3} diff --git a/Assets/Scripts/Inventory/Items/Wood.asset.meta b/Assets/Scripts/Inventory/Items/Wood.asset.meta new file mode 100644 index 0000000..6206576 --- /dev/null +++ b/Assets/Scripts/Inventory/Items/Wood.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8ac3fa2505f8292498c5c20cf4fea84d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Inventory/Slot.cs b/Assets/Scripts/Inventory/Slot.cs new file mode 100644 index 0000000..2a5fe68 --- /dev/null +++ b/Assets/Scripts/Inventory/Slot.cs @@ -0,0 +1,54 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Slot +{ + /// + /// Holds an itemType the number of items and the number of maxItems + /// this has no logic so everything has to be done from the outside + /// [Get/Set] + /// ItemType + /// Count + /// MaxItems + /// [Methods] + /// void addItem(int count = 1) + /// void removeItem(int count = 1) + /// void clear() + /// + + Item item; + int maxItems = 1; + int count = 0; + public Item ItemType { get => item; set => item = value; } + public int Count { get => count; set => count = value; } + public int MaxItems { get => maxItems; set => maxItems = value; } + public Slot(int maxItems = 1) + { + item = null; + this.maxItems = maxItems; + } + public void addItem(int count = 1) + { + // adds any number of items to the slot will also go over the max items + this.count += count; + } + public void removeItem(int count = 1) + { + // removes any number of items from the slot will also go negative + this.count -= count; + } + public void clear() + { + item = null; + count = 0; + } + public Slot copy() + { + Slot slot = new Slot(maxItems); + slot.count = count; + slot.ItemType = ItemType; + + return slot; + } +} diff --git a/Assets/Scripts/Inventory/Slot.cs.meta b/Assets/Scripts/Inventory/Slot.cs.meta new file mode 100644 index 0000000..6a1248a --- /dev/null +++ b/Assets/Scripts/Inventory/Slot.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 497c0b5449a4c3141b273db4d97546c3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Inventory/UI_Inventory.cs b/Assets/Scripts/Inventory/UI_Inventory.cs new file mode 100644 index 0000000..2172cb8 --- /dev/null +++ b/Assets/Scripts/Inventory/UI_Inventory.cs @@ -0,0 +1,136 @@ +using System.Collections; +using System.Collections.Generic; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +public class UI_Inventory : MonoBehaviour +{ + Inventory playerInventory; + public Transform inventoryContainer; + public Transform itemSlotTemplate; + private RectTransform[] UIItemSlots; + private Button[] buttons; + private Slot pickedItem = new Slot(); + private RectTransform pickedItemSlot; + private void Awake() + { + //itemSlotTemplate = inventoryContainer.Find("containerTemplate"); + pickedItemSlot = Instantiate(itemSlotTemplate, this.transform).GetComponent(); + } + + void pickItem(int index) + { + pickedItem = playerInventory.getInventory[index].copy(); + playerInventory.getInventory[index].clear(); + UIItemSlots[index].GetChild(0).Find("Icon").gameObject.SetActive(false); + } + void placeItem() + { + + } + public void buttonEvent(int index) + { + if (pickedItem.ItemType == null && playerInventory.getInventory[index].ItemType != null) + { + pickItem(index); + } + else + { + if (pickedItem.ItemType != null) + { + int rest = playerInventory.addItemAt(index, pickedItem.ItemType, pickedItem.Count); + if (rest == 0) + { + pickedItem.clear(); + } + else + { + pickedItem.Count = rest; + } + //placeItem(index); + } + + } + + //Debug.Log("button " + index + " has been pressed!"); + } + public void setInventory(Inventory inventory) + { + playerInventory = inventory; + inventory.onItemChangedCallback += updateInventory; + updateInventory(); + } + private void Update() + { + //buttons[index] = itemSlotRectTransform.Find("Button").GetComponent