mirror of
https://github.com/DerTyp7/harvestdale-unity.git
synced 2025-10-29 04:42:08 +01:00
a
This commit is contained in:
27
Assets/Items/Crops/Apple.asset
Normal file
27
Assets/Items/Crops/Apple.asset
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
%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: f00df81b4ec12f844a6f928d013437b2, type: 3}
|
||||||
|
m_Name: Apple
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
uuid: apple
|
||||||
|
itemName: Apple Crop
|
||||||
|
sprite: {fileID: -992969038, guid: 81f3e7dd6e7b15747a4a5c1923fb8521, type: 3}
|
||||||
|
stackable: 0
|
||||||
|
maxStackSize: 1
|
||||||
|
daysToGrow: 6
|
||||||
|
sprites:
|
||||||
|
- {fileID: -1568493089, guid: 81f3e7dd6e7b15747a4a5c1923fb8521, type: 3}
|
||||||
|
- {fileID: 1918686608, guid: 81f3e7dd6e7b15747a4a5c1923fb8521, type: 3}
|
||||||
|
- {fileID: -400346732, guid: 81f3e7dd6e7b15747a4a5c1923fb8521, type: 3}
|
||||||
|
- {fileID: -1058307475, guid: 81f3e7dd6e7b15747a4a5c1923fb8521, type: 3}
|
||||||
|
- {fileID: -1664452952, guid: 81f3e7dd6e7b15747a4a5c1923fb8521, type: 3}
|
||||||
|
- {fileID: 1402415594, guid: 81f3e7dd6e7b15747a4a5c1923fb8521, type: 3}
|
||||||
8
Assets/Items/Crops/Apple.asset.meta
Normal file
8
Assets/Items/Crops/Apple.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4ce577b0996dc314ab1b42f42614e3a2
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -142,7 +142,7 @@ GameObject:
|
|||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 1
|
m_IsActive: 0
|
||||||
--- !u!224 &153338328
|
--- !u!224 &153338328
|
||||||
RectTransform:
|
RectTransform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -215,6 +215,9 @@ MonoBehaviour:
|
|||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
panelName: Hotbar
|
panelName: Hotbar
|
||||||
hotbarSlotPrefab: {fileID: 1989902681405785901, guid: 9bed75a8e605a864fb4b41f3e0ae9517, type: 3}
|
hotbarSlotPrefab: {fileID: 1989902681405785901, guid: 9bed75a8e605a864fb4b41f3e0ae9517, type: 3}
|
||||||
|
slots: []
|
||||||
|
playerController: {fileID: 0}
|
||||||
|
hotbarSlotCount: 9
|
||||||
--- !u!114 &153338332
|
--- !u!114 &153338332
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -318,7 +321,6 @@ GameObject:
|
|||||||
- component: {fileID: 224768190}
|
- component: {fileID: 224768190}
|
||||||
- component: {fileID: 224768189}
|
- component: {fileID: 224768189}
|
||||||
- component: {fileID: 224768188}
|
- component: {fileID: 224768188}
|
||||||
- component: {fileID: 224768193}
|
|
||||||
- component: {fileID: 224768187}
|
- component: {fileID: 224768187}
|
||||||
- component: {fileID: 224768191}
|
- component: {fileID: 224768191}
|
||||||
- component: {fileID: 224768192}
|
- component: {fileID: 224768192}
|
||||||
@@ -468,21 +470,6 @@ CapsuleCollider2D:
|
|||||||
m_Offset: {x: 0.005384445, y: -0.8123081}
|
m_Offset: {x: 0.005384445, y: -0.8123081}
|
||||||
m_Size: {x: 0.3146143, y: 0.3146143}
|
m_Size: {x: 0.3146143, y: 0.3146143}
|
||||||
m_Direction: 0
|
m_Direction: 0
|
||||||
--- !u!114 &224768193
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 224768186}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: d50a6d9f6c7ba0e49a308d097eb64fb7, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
isPlayerInventory: 1
|
|
||||||
maxSlots: 36
|
|
||||||
items: []
|
|
||||||
--- !u!114 &224768194
|
--- !u!114 &224768194
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -495,12 +482,90 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: fd29210254821be4dab438ab0312df18, type: 3}
|
m_Script: {fileID: 11500000, guid: fd29210254821be4dab438ab0312df18, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
testItem1: {fileID: 11400000, guid: 601d7a33a6c338d49a35134d5c772940, type: 2}
|
--- !u!1 &518922041
|
||||||
testItem2: {fileID: 11400000, guid: cbbbe8384f7ec2845b4145744d51ecf8, type: 2}
|
GameObject:
|
||||||
interactionDistance: 2
|
m_ObjectHideFlags: 0
|
||||||
hotbarSlotCount: 9
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
activeHotbarSlot: 0
|
m_PrefabInstance: {fileID: 0}
|
||||||
playerInventory: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 518922043}
|
||||||
|
- component: {fileID: 518922042}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Crops
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!212 &518922042
|
||||||
|
SpriteRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 518922041}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 0
|
||||||
|
m_ReceiveShadows: 0
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_StaticShadowCaster: 0
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 0
|
||||||
|
m_RayTraceProcedural: 0
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_ReceiveGI: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 1
|
||||||
|
m_SelectedEditorRenderState: 0
|
||||||
|
m_MinimumChartSize: 4
|
||||||
|
m_AutoUVMaxDistance: 0.5
|
||||||
|
m_AutoUVMaxAngle: 89
|
||||||
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_SortingLayerID: 949894591
|
||||||
|
m_SortingLayer: -1
|
||||||
|
m_SortingOrder: 1
|
||||||
|
m_Sprite: {fileID: 109301499, guid: 81f3e7dd6e7b15747a4a5c1923fb8521, type: 3}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_FlipX: 0
|
||||||
|
m_FlipY: 0
|
||||||
|
m_DrawMode: 2
|
||||||
|
m_Size: {x: 10, y: 10}
|
||||||
|
m_AdaptiveModeThreshold: 0.5
|
||||||
|
m_SpriteTileMode: 0
|
||||||
|
m_WasSpriteAssigned: 1
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_SpriteSortPoint: 0
|
||||||
|
--- !u!4 &518922043
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 518922041}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0.1, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 1047402456}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &519420028
|
--- !u!1 &519420028
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -817,6 +882,90 @@ Tilemap:
|
|||||||
e31: 0
|
e31: 0
|
||||||
e32: 0
|
e32: 0
|
||||||
e33: 1
|
e33: 1
|
||||||
|
--- !u!1 &531540402
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 531540404}
|
||||||
|
- component: {fileID: 531540403}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Background
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!212 &531540403
|
||||||
|
SpriteRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 531540402}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 0
|
||||||
|
m_ReceiveShadows: 0
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_StaticShadowCaster: 0
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 0
|
||||||
|
m_RayTraceProcedural: 0
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_ReceiveGI: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 1
|
||||||
|
m_SelectedEditorRenderState: 0
|
||||||
|
m_MinimumChartSize: 4
|
||||||
|
m_AutoUVMaxDistance: 0.5
|
||||||
|
m_AutoUVMaxAngle: 89
|
||||||
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_SortingLayerID: 949894591
|
||||||
|
m_SortingLayer: -1
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_Sprite: {fileID: 2046970518, guid: 705252b03b9874148b86d73e7eb692ac, type: 3}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_FlipX: 0
|
||||||
|
m_FlipY: 0
|
||||||
|
m_DrawMode: 2
|
||||||
|
m_Size: {x: 10, y: 10}
|
||||||
|
m_AdaptiveModeThreshold: 0.5
|
||||||
|
m_SpriteTileMode: 0
|
||||||
|
m_WasSpriteAssigned: 1
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_SpriteSortPoint: 0
|
||||||
|
--- !u!4 &531540404
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 531540402}
|
||||||
|
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: 1047402456}
|
||||||
|
m_RootOrder: 1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &550426624
|
--- !u!1 &550426624
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -1087,6 +1236,7 @@ GameObject:
|
|||||||
- component: {fileID: 727688472}
|
- component: {fileID: 727688472}
|
||||||
- component: {fileID: 727688471}
|
- component: {fileID: 727688471}
|
||||||
- component: {fileID: 727688473}
|
- component: {fileID: 727688473}
|
||||||
|
- component: {fileID: 727688474}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: ---GameManager---
|
m_Name: ---GameManager---
|
||||||
m_TagString: GameController
|
m_TagString: GameController
|
||||||
@@ -1106,7 +1256,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: efc6be5d380533e4bb0a0179bec47c77, type: 3}
|
m_Script: {fileID: 11500000, guid: efc6be5d380533e4bb0a0179bec47c77, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
minuteToRealTime: 0.5
|
minuteToRealTime: 0.05
|
||||||
--- !u!4 &727688472
|
--- !u!4 &727688472
|
||||||
Transform:
|
Transform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -1134,6 +1284,22 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 7f6b0f7d7d44d8a4c9fa79d01ee4ec53, type: 3}
|
m_Script: {fileID: 11500000, guid: 7f6b0f7d7d44d8a4c9fa79d01ee4ec53, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
--- !u!114 &727688474
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 727688470}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 7465a8b99db65d04a862b423ae2ccdf3, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
cropInventory:
|
||||||
|
maxSlots: 0
|
||||||
|
maxStackSize: 0
|
||||||
|
items: []
|
||||||
--- !u!1 &789509403
|
--- !u!1 &789509403
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -56771,7 +56937,7 @@ GameObject:
|
|||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 1
|
m_IsActive: 0
|
||||||
--- !u!224 &1027537965
|
--- !u!224 &1027537965
|
||||||
RectTransform:
|
RectTransform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -56847,6 +57013,60 @@ MonoBehaviour:
|
|||||||
slotPrefab: {fileID: 9079120991637034566, guid: 9fb7f575f90d73343b4841c421d17567, type: 3}
|
slotPrefab: {fileID: 9079120991637034566, guid: 9fb7f575f90d73343b4841c421d17567, type: 3}
|
||||||
slotListObj: {fileID: 1707136373}
|
slotListObj: {fileID: 1707136373}
|
||||||
slotUIList: []
|
slotUIList: []
|
||||||
|
--- !u!1 &1047402454
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1047402456}
|
||||||
|
- component: {fileID: 1047402455}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Field
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!114 &1047402455
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1047402454}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: d700e4905ee3fd2408f52a4e3ecb48e8, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
isPlaced: 1
|
||||||
|
placeableObject: {fileID: 0}
|
||||||
|
TESTCROP: {fileID: 11400000, guid: 4ce577b0996dc314ab1b42f42614e3a2, type: 2}
|
||||||
|
crop: {fileID: 0}
|
||||||
|
currentCropSprite: {fileID: 518922042}
|
||||||
|
daysSincePlanted: 0
|
||||||
|
isWatered: 1
|
||||||
|
state: 0
|
||||||
|
--- !u!4 &1047402456
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1047402454}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: -25, y: -5, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 518922043}
|
||||||
|
- {fileID: 531540404}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: 6
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &1507699183
|
--- !u!1 &1507699183
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
@@ -12,6 +12,6 @@ public class Clock : MonoBehaviour
|
|||||||
}
|
}
|
||||||
private void GetTime()
|
private void GetTime()
|
||||||
{
|
{
|
||||||
text.SetText($"{TimeManager.Day:00}D | {TimeManager.Hour:00}:{TimeManager.Minute:00}");
|
text.SetText($"{TimeManager.Hour:00}:{TimeManager.Minute:00}<br>{TimeManager.Day:00}.{TimeManager.Month:00}.{TimeManager.Year:00}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
10
Assets/Scripts/FarmManager.cs
Normal file
10
Assets/Scripts/FarmManager.cs
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class FarmManager : MonoBehaviour
|
||||||
|
{
|
||||||
|
public Inventory<Crop> cropInventory;
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
cropInventory = new Inventory<Crop>(2, 200);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: ab99e668aa1ba5a469eef680f3bb4b45
|
guid: 7465a8b99db65d04a862b423ae2ccdf3
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
@@ -1,5 +1,12 @@
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Tilemaps;
|
|
||||||
|
public enum FieldState
|
||||||
|
{
|
||||||
|
EMPTY,
|
||||||
|
DEAD,
|
||||||
|
GROWING,
|
||||||
|
HARVESTABLE,
|
||||||
|
}
|
||||||
|
|
||||||
public class Field : Building
|
public class Field : Building
|
||||||
{
|
{
|
||||||
@@ -8,18 +15,22 @@ public class Field : Building
|
|||||||
|
|
||||||
public SpriteRenderer currentCropSprite;
|
public SpriteRenderer currentCropSprite;
|
||||||
public int daysSincePlanted;
|
public int daysSincePlanted;
|
||||||
public bool isWatered;
|
public bool isWatered = false;
|
||||||
public bool isDead = false;
|
public FieldState state = FieldState.EMPTY;
|
||||||
|
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
TimeManager.OnDayChanged += AddDay;
|
TimeManager.OnDayChanged += AddDay;
|
||||||
|
//! DEBUG
|
||||||
|
OnPlace();
|
||||||
}
|
}
|
||||||
private void AddDay()
|
private void AddDay()
|
||||||
{
|
{
|
||||||
if (crop && isPlaced && !isDead)
|
if (crop && isPlaced && state != FieldState.DEAD)
|
||||||
{
|
{
|
||||||
if (!isWatered)
|
if (!isWatered)
|
||||||
isDead = true;
|
state = FieldState.DEAD;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
daysSincePlanted++;
|
daysSincePlanted++;
|
||||||
@@ -32,14 +43,14 @@ public class Field : Building
|
|||||||
public void Plant(Crop newCrop)
|
public void Plant(Crop newCrop)
|
||||||
{
|
{
|
||||||
daysSincePlanted = 0;
|
daysSincePlanted = 0;
|
||||||
isDead = false;
|
state = FieldState.GROWING;
|
||||||
crop = newCrop;
|
crop = newCrop;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnPlace()
|
public override void OnPlace()
|
||||||
{
|
{
|
||||||
daysSincePlanted = 0;
|
daysSincePlanted = 0;
|
||||||
isDead = false;
|
state = FieldState.GROWING;
|
||||||
Plant(TESTCROP);
|
Plant(TESTCROP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,26 +1,39 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using System;
|
using System;
|
||||||
public class Inventory : MonoBehaviour
|
|
||||||
|
[System.Serializable]
|
||||||
|
public class Inventory<TItem> where TItem : Item
|
||||||
{
|
{
|
||||||
public static Action OnPlayerInventoryChanged;
|
[SerializeField]
|
||||||
|
private int maxSlots;
|
||||||
|
public int maxStackSize;
|
||||||
|
|
||||||
public bool isPlayerInventory = false;
|
[SerializeField]
|
||||||
public int maxSlots = 20; // maximum number of slots in the inventory
|
private InventoryItem<TItem>[] items;
|
||||||
public InventoryItem[] items; // list of items in the inventory
|
|
||||||
|
|
||||||
|
public Inventory(int maxSlots = 1, int maxStackSize = 100)
|
||||||
private void Awake()
|
|
||||||
{
|
{
|
||||||
items = new InventoryItem[maxSlots];
|
this.maxSlots = maxSlots;
|
||||||
for (int i = 0; i < maxSlots; i++)
|
this.maxStackSize = maxStackSize;
|
||||||
|
items = new InventoryItem<TItem>[maxSlots];
|
||||||
|
generateEmtpySlots();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaxSlots(int newMaxSlots)
|
||||||
|
{
|
||||||
|
maxSlots = newMaxSlots;
|
||||||
|
generateEmtpySlots();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void generateEmtpySlots()
|
||||||
|
{
|
||||||
|
for (int i = items.Length > 0 ? items.Length - 1 : 0; i < maxSlots; i++)
|
||||||
{
|
{
|
||||||
items[i] = null;
|
items[i] = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// adds an item to the inventory, returns the quantity of items which could not be added
|
// adds an item to the inventory, returns the quantity of items which could not be added
|
||||||
public int Add(Item item, int count)
|
public int Add(TItem item, int count)
|
||||||
{
|
{
|
||||||
int remainingCount = count;
|
int remainingCount = count;
|
||||||
|
|
||||||
@@ -31,11 +44,11 @@ public class Inventory : MonoBehaviour
|
|||||||
// look for an existing stack of the same item in the inventory
|
// look for an existing stack of the same item in the inventory
|
||||||
for (int i = 0; i < items.Length; i++)
|
for (int i = 0; i < items.Length; i++)
|
||||||
{
|
{
|
||||||
InventoryItem invItem = items[i];
|
InventoryItem<TItem> invItem = items[i];
|
||||||
if (invItem != null && invItem.item == item && invItem.count < item.maxStackSize)
|
if (invItem != null && invItem.item == item && invItem.count < maxStackSize)
|
||||||
{
|
{
|
||||||
// add as many items as possible to the stack
|
// add as many items as possible to the stack
|
||||||
int space = item.maxStackSize - invItem.count;
|
int space = maxStackSize - invItem.count;
|
||||||
int toAdd = Mathf.Min(space, remainingCount);
|
int toAdd = Mathf.Min(space, remainingCount);
|
||||||
invItem.count += toAdd;
|
invItem.count += toAdd;
|
||||||
remainingCount -= toAdd;
|
remainingCount -= toAdd;
|
||||||
@@ -43,10 +56,6 @@ public class Inventory : MonoBehaviour
|
|||||||
// exit the loop if all items have been added
|
// exit the loop if all items have been added
|
||||||
if (remainingCount == 0)
|
if (remainingCount == 0)
|
||||||
{
|
{
|
||||||
if (isPlayerInventory)
|
|
||||||
{
|
|
||||||
OnPlayerInventoryChanged?.Invoke();
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -58,35 +67,23 @@ public class Inventory : MonoBehaviour
|
|||||||
for (int i = 0; i < items.Length; i++)
|
for (int i = 0; i < items.Length; i++)
|
||||||
|
|
||||||
{
|
{
|
||||||
InventoryItem invItem = items[i];
|
InventoryItem<TItem> invItem = items[i];
|
||||||
Debug.Log(invItem);
|
Debug.Log(invItem);
|
||||||
if (invItem?.item == null)
|
if (invItem?.item == null)
|
||||||
{
|
{
|
||||||
|
|
||||||
int toAdd = Mathf.Min(item.maxStackSize, remainingCount);
|
int toAdd = Mathf.Min(maxStackSize, remainingCount);
|
||||||
items[i] = new InventoryItem(item, toAdd);
|
items[i] = new InventoryItem<TItem>(item, toAdd);
|
||||||
remainingCount -= toAdd;
|
remainingCount -= toAdd;
|
||||||
|
|
||||||
// exit the loop if all items have been added
|
// exit the loop if all items have been added
|
||||||
if (remainingCount == 0)
|
if (remainingCount == 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (isPlayerInventory)
|
|
||||||
{
|
|
||||||
OnPlayerInventoryChanged?.Invoke();
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// return the quantity of items which could not be added
|
|
||||||
if (isPlayerInventory)
|
|
||||||
{
|
|
||||||
OnPlayerInventoryChanged?.Invoke();
|
|
||||||
}
|
|
||||||
|
|
||||||
return remainingCount;
|
return remainingCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,7 +96,7 @@ public class Inventory : MonoBehaviour
|
|||||||
// look for an existing stack of the item in the inventory
|
// look for an existing stack of the item in the inventory
|
||||||
for (int i = 0; i < items.Length; i++)
|
for (int i = 0; i < items.Length; i++)
|
||||||
{
|
{
|
||||||
InventoryItem invItem = items[i];
|
InventoryItem<TItem> invItem = items[i];
|
||||||
if (invItem != null && invItem.item == item)
|
if (invItem != null && invItem.item == item)
|
||||||
{
|
{
|
||||||
// remove as many items as possible from the stack
|
// remove as many items as possible from the stack
|
||||||
@@ -116,32 +113,22 @@ public class Inventory : MonoBehaviour
|
|||||||
// exit the loop if all items have been removed
|
// exit the loop if all items have been removed
|
||||||
if (remainingCount == 0)
|
if (remainingCount == 0)
|
||||||
{
|
{
|
||||||
if (isPlayerInventory)
|
|
||||||
{
|
|
||||||
OnPlayerInventoryChanged?.Invoke();
|
|
||||||
}
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// return the quantity of items which could not be removed
|
// return the quantity of items which could not be removed
|
||||||
if (isPlayerInventory)
|
|
||||||
{
|
|
||||||
OnPlayerInventoryChanged?.Invoke();
|
|
||||||
}
|
|
||||||
return remainingCount;
|
return remainingCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SwapItems(int index1, int index2)
|
public void SwapItems(int index1, int index2)
|
||||||
{
|
{
|
||||||
InventoryItem temp = items[index1];
|
InventoryItem<TItem> temp = items[index1];
|
||||||
items[index1] = items[index2];
|
items[index1] = items[index2];
|
||||||
items[index2] = temp;
|
items[index2] = temp;
|
||||||
if (isPlayerInventory)
|
|
||||||
{
|
|
||||||
OnPlayerInventoryChanged?.Invoke();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ using System.Collections.Generic;
|
|||||||
|
|
||||||
// represents an item in the inventory and its count
|
// represents an item in the inventory and its count
|
||||||
[System.Serializable]
|
[System.Serializable]
|
||||||
public class InventoryItem
|
public class InventoryItem<TItem> where TItem : Item
|
||||||
{
|
{
|
||||||
public Item item;
|
public TItem item;
|
||||||
public int count;
|
public int count;
|
||||||
|
|
||||||
public InventoryItem(Item item, int count)
|
public InventoryItem(TItem item, int count)
|
||||||
{
|
{
|
||||||
this.item = item;
|
this.item = item;
|
||||||
this.count = count;
|
this.count = count;
|
||||||
|
|||||||
@@ -1,32 +0,0 @@
|
|||||||
using UnityEngine;
|
|
||||||
|
|
||||||
[CreateAssetMenu(fileName = "Hoe", menuName = "Harvestdale/Tools/Hoe", order = 0)]
|
|
||||||
public class Hoe : Tool
|
|
||||||
{
|
|
||||||
|
|
||||||
GameObject player;
|
|
||||||
private void Start()
|
|
||||||
{
|
|
||||||
player = GameObject.FindGameObjectWithTag("Player");
|
|
||||||
}
|
|
||||||
|
|
||||||
private Vector3 GetVector3IntInMouseDirection()
|
|
||||||
{
|
|
||||||
|
|
||||||
Vector3 direction = (player.transform.position - GridBuildingSystem.Instance.GetSnappedMousePosition()).normalized;
|
|
||||||
Debug.Log(direction);
|
|
||||||
return direction;
|
|
||||||
}
|
|
||||||
public override void OnUse()
|
|
||||||
{
|
|
||||||
Debug.Log("Hoe on use");
|
|
||||||
GetVector3IntInMouseDirection();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Use()
|
|
||||||
{
|
|
||||||
Debug.Log("Hoe use");
|
|
||||||
OnUse();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
using UnityEngine;
|
|
||||||
|
|
||||||
|
|
||||||
public abstract class Tool : Item
|
|
||||||
{
|
|
||||||
public abstract void Use();
|
|
||||||
public abstract void OnUse();
|
|
||||||
|
|
||||||
private void Awake()
|
|
||||||
{
|
|
||||||
stackable = false;
|
|
||||||
maxStackSize = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 943c595a7de78d44eae1ff08651910a2
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -6,100 +6,14 @@ using System;
|
|||||||
public class PlayerController : MonoBehaviour
|
public class PlayerController : MonoBehaviour
|
||||||
{
|
{
|
||||||
|
|
||||||
public static Action OnActiveSlotChanged;
|
|
||||||
public Item testItem1;
|
|
||||||
public Item testItem2;
|
|
||||||
public float interactionDistance = 2.5f;
|
|
||||||
public int hotbarSlotCount = 9;
|
|
||||||
public int activeHotbarSlot = 0;
|
|
||||||
[SerializeField] private Inventory playerInventory;
|
|
||||||
|
|
||||||
// Start is called before the first frame update
|
// Start is called before the first frame update
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
playerInventory = GetComponent<Inventory>();
|
|
||||||
GuiManager.Instance.OpenPanel("Hotbar");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update is called once per frame
|
// Update is called once per frame
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
float scroll = Input.GetAxis("Mouse ScrollWheel");
|
|
||||||
if (scroll != 0)
|
|
||||||
{
|
|
||||||
activeHotbarSlot += (int)Mathf.Sign(scroll);
|
|
||||||
if (activeHotbarSlot < 0)
|
|
||||||
{
|
|
||||||
activeHotbarSlot = hotbarSlotCount - 1;
|
|
||||||
}
|
|
||||||
else if (activeHotbarSlot >= hotbarSlotCount)
|
|
||||||
{
|
|
||||||
activeHotbarSlot = 0;
|
|
||||||
}
|
|
||||||
OnActiveSlotChanged?.Invoke();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Input.GetKeyDown(KeyCode.Tab))
|
|
||||||
{
|
|
||||||
GuiManager.Instance.TogglePanel("Inventory");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Input.GetMouseButtonDown(0))
|
|
||||||
{
|
|
||||||
Vector3Int snappedMousePosition = GridBuildingSystem.Instance.GetSnappedMousePosition();
|
|
||||||
Vector3Int snappedPlayerPosition = GridBuildingSystem.Instance.GetSnappedPosition(gameObject.transform.position);
|
|
||||||
if (Vector3Int.Distance(snappedMousePosition, snappedPlayerPosition) <= interactionDistance)
|
|
||||||
{
|
|
||||||
if (playerInventory.items[activeHotbarSlot]?.item is Tool)
|
|
||||||
{
|
|
||||||
Tool tool = playerInventory.items[activeHotbarSlot].item as Tool;
|
|
||||||
tool.Use();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Debug.Log("Not in range");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//! DEBUG
|
|
||||||
if (Input.GetKeyDown(KeyCode.U))
|
|
||||||
{
|
|
||||||
// add 5 apples
|
|
||||||
int remainingCount = playerInventory.Add(testItem1, 5);
|
|
||||||
Debug.Log("Added " + (5 - remainingCount) + " apples to playerInventory.");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Input.GetKeyDown(KeyCode.I))
|
|
||||||
{ // add 15 more apples
|
|
||||||
int remainingCount = playerInventory.Add(testItem1, 15);
|
|
||||||
Debug.Log("Added " + (15 - remainingCount) + " apples to playerInventory.");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Input.GetKeyDown(KeyCode.O))
|
|
||||||
{
|
|
||||||
// add 10 bananas
|
|
||||||
int remainingCount = playerInventory.Add(testItem2, 10);
|
|
||||||
Debug.Log("Added " + (10 - remainingCount) + " bananas to playerInventory.");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (Input.GetKeyDown(KeyCode.J))
|
|
||||||
{
|
|
||||||
int count = 3;
|
|
||||||
int applesRemaining = playerInventory.Remove(testItem1, count);
|
|
||||||
Debug.Log("Removed " + (count - applesRemaining) + " apples.");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Input.GetKeyDown(KeyCode.K))
|
|
||||||
{
|
|
||||||
int count = 5;
|
|
||||||
int bananasRemaining = playerInventory.Remove(testItem2, count);
|
|
||||||
Debug.Log("Removed " + (count - bananasRemaining) + " bananas.");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,25 +1,33 @@
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
public class TimeManager : MonoBehaviour
|
public class TimeManager : MonoBehaviour
|
||||||
{
|
{
|
||||||
public static Action OnMinuteChanged;
|
public static Action OnMinuteChanged;
|
||||||
public static Action OnHourChanged;
|
public static Action OnHourChanged;
|
||||||
public static Action OnDayChanged;
|
public static Action OnDayChanged;
|
||||||
|
public static Action OnMonthChanged;
|
||||||
|
public static Action OnYearChanged;
|
||||||
|
|
||||||
|
|
||||||
public static int Minute { get; private set; }
|
public static int Minute { get; private set; }
|
||||||
public static int Hour { get; private set; }
|
public static int Hour { get; private set; }
|
||||||
public static int Day { get; private set; }
|
public static int Day { get; private set; }
|
||||||
|
public static int Month { get; private set; }
|
||||||
|
public static int Year { get; private set; }
|
||||||
|
|
||||||
public float minuteToRealTime = .2f;
|
[SerializeField]
|
||||||
|
[Range(.05f, 10f)]
|
||||||
|
private float minuteToRealTime = .05f;
|
||||||
private float timer;
|
private float timer;
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
Minute = 0;
|
Minute = 0;
|
||||||
Hour = 10;
|
Hour = 10;
|
||||||
Day = 1;
|
Day = 25;
|
||||||
|
Month = 4;
|
||||||
|
Year = 1;
|
||||||
timer = minuteToRealTime;
|
timer = minuteToRealTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -29,17 +37,34 @@ public class TimeManager : MonoBehaviour
|
|||||||
|
|
||||||
if (timer <= 0)
|
if (timer <= 0)
|
||||||
{
|
{
|
||||||
|
// Increase minute
|
||||||
Minute++;
|
Minute++;
|
||||||
OnMinuteChanged?.Invoke();
|
OnMinuteChanged?.Invoke();
|
||||||
if (Minute >= 60)
|
if (Minute >= 60)
|
||||||
{
|
{
|
||||||
|
// Increase hour
|
||||||
Hour++;
|
Hour++;
|
||||||
Minute = 0;
|
Minute = 0;
|
||||||
if (Hour >= 24)
|
if (Hour >= 24)
|
||||||
{
|
{
|
||||||
|
// Increase day
|
||||||
Day++;
|
Day++;
|
||||||
Hour = 0;
|
Hour = 0;
|
||||||
OnDayChanged?.Invoke();
|
OnDayChanged?.Invoke();
|
||||||
|
if (Day > 28)
|
||||||
|
{
|
||||||
|
// Increase month
|
||||||
|
Month++;
|
||||||
|
Day = 1;
|
||||||
|
OnMonthChanged?.Invoke();
|
||||||
|
if (Month > 4)
|
||||||
|
{
|
||||||
|
// Increase year
|
||||||
|
Year++;
|
||||||
|
Month = 1;
|
||||||
|
OnYearChanged?.Invoke();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
OnHourChanged?.Invoke();
|
OnHourChanged?.Invoke();
|
||||||
|
|||||||
@@ -1,33 +1,33 @@
|
|||||||
using UnityEngine;
|
// using UnityEngine;
|
||||||
using UnityEngine.EventSystems;
|
// using UnityEngine.EventSystems;
|
||||||
using UnityEngine.UI;
|
// using UnityEngine.UI;
|
||||||
|
|
||||||
public class DraggableSlotContentUI : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
|
// public class DraggableSlotContentUI : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
|
||||||
{
|
// {
|
||||||
public int slotIndex; // slotIndex is set by SlotUI
|
// public int slotIndex; // slotIndex is set by SlotUI
|
||||||
[HideInInspector] public Transform parentAfterDrag;
|
// [HideInInspector] public Transform parentAfterDrag;
|
||||||
public Image image;
|
// public Image image;
|
||||||
public void OnBeginDrag(PointerEventData eventData)
|
// public void OnBeginDrag(PointerEventData eventData)
|
||||||
{
|
// {
|
||||||
parentAfterDrag = transform.parent;
|
// parentAfterDrag = transform.parent;
|
||||||
slotIndex = parentAfterDrag.GetComponent<SlotUI>().slotIndex; // Set slotIndex again to be safe, but should be already set
|
// slotIndex = parentAfterDrag.GetComponent<SlotUI>().slotIndex; // Set slotIndex again to be safe, but should be already set
|
||||||
transform.SetParent(transform.root);
|
// transform.SetParent(transform.root);
|
||||||
transform.SetAsLastSibling();
|
// transform.SetAsLastSibling();
|
||||||
image.raycastTarget = false;
|
// image.raycastTarget = false;
|
||||||
}
|
// }
|
||||||
|
|
||||||
public void OnDrag(PointerEventData eventData)
|
// public void OnDrag(PointerEventData eventData)
|
||||||
{
|
// {
|
||||||
Debug.Log("Dragging");
|
// Debug.Log("Dragging");
|
||||||
transform.position = Input.mousePosition;
|
// transform.position = Input.mousePosition;
|
||||||
|
|
||||||
}
|
// }
|
||||||
|
|
||||||
public void OnEndDrag(PointerEventData eventData)
|
// public void OnEndDrag(PointerEventData eventData)
|
||||||
{
|
// {
|
||||||
transform.SetParent(parentAfterDrag);
|
// transform.SetParent(parentAfterDrag);
|
||||||
image.raycastTarget = true;
|
// image.raycastTarget = true;
|
||||||
// invoke
|
// // invoke
|
||||||
Inventory.OnPlayerInventoryChanged?.Invoke();
|
// Inventory.OnPlayerInventoryChanged?.Invoke();
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
@@ -1,56 +1,56 @@
|
|||||||
using System.Collections;
|
// using System.Collections;
|
||||||
using UnityEngine.UI;
|
// using UnityEngine.UI;
|
||||||
using System.Collections.Generic;
|
// using System.Collections.Generic;
|
||||||
using UnityEngine;
|
// using UnityEngine;
|
||||||
using TMPro;
|
// using TMPro;
|
||||||
public class HotbarSlotUI : MonoBehaviour
|
// public class HotbarSlotUI : MonoBehaviour
|
||||||
{
|
// {
|
||||||
public int slotIndex;
|
// public int slotIndex;
|
||||||
|
|
||||||
private PlayerController playerController;
|
// private PlayerController playerController;
|
||||||
|
|
||||||
private InventoryItem invItem;
|
// private InventoryItem invItem;
|
||||||
|
|
||||||
[SerializeField] private Image border;
|
// [SerializeField] private Image border;
|
||||||
[SerializeField] private Image image;
|
// [SerializeField] private Image image;
|
||||||
[SerializeField] private TextMeshProUGUI quantityText;
|
// [SerializeField] private TextMeshProUGUI quantityText;
|
||||||
|
|
||||||
private void Start()
|
// private void Start()
|
||||||
{
|
// {
|
||||||
playerController = GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerController>();
|
// playerController = GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerController>();
|
||||||
PlayerController.OnActiveSlotChanged += CheckSelectedSlot;
|
// PlayerController.OnActiveSlotChanged += CheckSelectedSlot;
|
||||||
CheckSelectedSlot();
|
// CheckSelectedSlot();
|
||||||
}
|
// }
|
||||||
|
|
||||||
private void CheckSelectedSlot()
|
// private void CheckSelectedSlot()
|
||||||
{
|
// {
|
||||||
if (playerController.activeHotbarSlot == slotIndex)
|
// if (playerController.activeHotbarSlot == slotIndex)
|
||||||
{
|
// {
|
||||||
border.gameObject.SetActive(true);
|
// border.gameObject.SetActive(true);
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
border.gameObject.SetActive(false);
|
// border.gameObject.SetActive(false);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
public void SetInventoryItem(InventoryItem newInvItem)
|
// public void SetInventoryItem(InventoryItem newInvItem)
|
||||||
{
|
// {
|
||||||
invItem = newInvItem;
|
// invItem = newInvItem;
|
||||||
UpdateSlot();
|
// UpdateSlot();
|
||||||
}
|
// }
|
||||||
|
|
||||||
private void UpdateSlot()
|
// private void UpdateSlot()
|
||||||
{
|
// {
|
||||||
image.sprite = invItem?.item?.sprite ?? null;
|
// image.sprite = invItem?.item?.sprite ?? null;
|
||||||
quantityText.SetText(invItem?.count.ToString() ?? "");
|
// quantityText.SetText(invItem?.count.ToString() ?? "");
|
||||||
if (image.sprite == null)
|
// if (image.sprite == null)
|
||||||
{
|
// {
|
||||||
image.color = new Color(0, 0, 0, 0);
|
// image.color = new Color(0, 0, 0, 0);
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
image.color = Color.white;
|
// image.color = Color.white;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|||||||
@@ -1,52 +1,52 @@
|
|||||||
using System.Collections;
|
// using System.Collections;
|
||||||
using System.Collections.Generic;
|
// using System.Collections.Generic;
|
||||||
using UnityEngine;
|
// using UnityEngine;
|
||||||
using UnityEngine.UI;
|
// using UnityEngine.UI;
|
||||||
|
|
||||||
public class HotbarUI : GuiPanel
|
// public class HotbarUI : GuiPanel
|
||||||
{
|
// {
|
||||||
[SerializeField] private GameObject hotbarSlotPrefab;
|
// [SerializeField] private GameObject hotbarSlotPrefab;
|
||||||
private List<HotbarSlotUI> slots = new List<HotbarSlotUI>();
|
// private List<HotbarSlotUI> slots = new List<HotbarSlotUI>();
|
||||||
private Inventory playerInventory;
|
// private Inventory playerInventory;
|
||||||
private PlayerController playerController;
|
// private PlayerController playerController;
|
||||||
private int hotbarSlotCount = 9;
|
// private int hotbarSlotCount = 9;
|
||||||
|
|
||||||
private void Start()
|
// private void Start()
|
||||||
{
|
// {
|
||||||
Inventory.OnPlayerInventoryChanged += UpdateSlots;
|
// Inventory.OnPlayerInventoryChanged += UpdateSlots;
|
||||||
}
|
// }
|
||||||
public override void OnOpen()
|
// public override void OnOpen()
|
||||||
{
|
// {
|
||||||
if (slots.Count == 0)
|
// if (slots.Count == 0)
|
||||||
{
|
// {
|
||||||
playerInventory = GameObject.FindGameObjectWithTag("Player").GetComponent<Inventory>();
|
// playerInventory = GameObject.FindGameObjectWithTag("Player").GetComponent<Inventory>();
|
||||||
playerController = GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerController>();
|
// playerController = GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerController>();
|
||||||
hotbarSlotCount = playerController.hotbarSlotCount;
|
// hotbarSlotCount = playerController.hotbarSlotCount;
|
||||||
CreateSlots();
|
// CreateSlots();
|
||||||
}
|
// }
|
||||||
UpdateSlots();
|
// UpdateSlots();
|
||||||
}
|
// }
|
||||||
|
|
||||||
public override void OnClose()
|
// public override void OnClose()
|
||||||
{
|
// {
|
||||||
}
|
// }
|
||||||
|
|
||||||
private void CreateSlots()
|
// private void CreateSlots()
|
||||||
{
|
// {
|
||||||
for (int i = 0; i < hotbarSlotCount; i++)
|
// for (int i = 0; i < hotbarSlotCount; i++)
|
||||||
{
|
// {
|
||||||
HotbarSlotUI newSlot = Instantiate(hotbarSlotPrefab, Vector3.zero, Quaternion.identity, transform).GetComponent<HotbarSlotUI>();
|
// HotbarSlotUI newSlot = Instantiate(hotbarSlotPrefab, Vector3.zero, Quaternion.identity, transform).GetComponent<HotbarSlotUI>();
|
||||||
newSlot.slotIndex = i;
|
// newSlot.slotIndex = i;
|
||||||
slots.Add(newSlot);
|
// slots.Add(newSlot);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
private void UpdateSlots()
|
// private void UpdateSlots()
|
||||||
{
|
// {
|
||||||
for (int i = 0; i < slots.Count; i++)
|
// for (int i = 0; i < slots.Count; i++)
|
||||||
{
|
// {
|
||||||
slots[i].SetInventoryItem(playerInventory.items[i] ?? null);
|
// slots[i].SetInventoryItem(playerInventory.items[i] ?? null);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
// }
|
||||||
|
|||||||
@@ -1,53 +1,53 @@
|
|||||||
using System.Collections;
|
// using System.Collections;
|
||||||
using System.Collections.Generic;
|
// using System.Collections.Generic;
|
||||||
using UnityEngine;
|
// using UnityEngine;
|
||||||
|
|
||||||
public class InventoryUI : GuiPanel
|
// public class InventoryUI : GuiPanel
|
||||||
{
|
// {
|
||||||
[SerializeField] private GameObject slotPrefab;
|
// [SerializeField] private GameObject slotPrefab;
|
||||||
[SerializeField] private GameObject slotListObj;
|
// [SerializeField] private GameObject slotListObj;
|
||||||
[SerializeField] private List<SlotUI> slotUIList;
|
// [SerializeField] private List<SlotUI> slotUIList;
|
||||||
|
|
||||||
private Inventory playerInventory;
|
// private Inventory playerInventory;
|
||||||
|
|
||||||
private void Start()
|
// private void Start()
|
||||||
{
|
// {
|
||||||
Inventory.OnPlayerInventoryChanged += UpdateSlots;
|
// Inventory.OnPlayerInventoryChanged += UpdateSlots;
|
||||||
}
|
// }
|
||||||
public override void OnOpen()
|
// public override void OnOpen()
|
||||||
{
|
// {
|
||||||
if (slotUIList.Count == 0)
|
// if (slotUIList.Count == 0)
|
||||||
{
|
// {
|
||||||
playerInventory = GameObject.FindGameObjectWithTag("Player").GetComponent<Inventory>();
|
// playerInventory = GameObject.FindGameObjectWithTag("Player").GetComponent<Inventory>();
|
||||||
CreateSlots();
|
// CreateSlots();
|
||||||
}
|
// }
|
||||||
UpdateSlots();
|
// UpdateSlots();
|
||||||
GuiManager.Instance.ClosePanel("Hotbar");
|
// GuiManager.Instance.ClosePanel("Hotbar");
|
||||||
}
|
// }
|
||||||
|
|
||||||
public override void OnClose()
|
// public override void OnClose()
|
||||||
{
|
// {
|
||||||
GuiManager.Instance.OpenPanel("Hotbar");
|
// GuiManager.Instance.OpenPanel("Hotbar");
|
||||||
}
|
// }
|
||||||
private void CreateSlots()
|
// private void CreateSlots()
|
||||||
{
|
// {
|
||||||
playerInventory = GameObject.FindGameObjectWithTag("Player").GetComponent<Inventory>();
|
// playerInventory = GameObject.FindGameObjectWithTag("Player").GetComponent<Inventory>();
|
||||||
|
|
||||||
for (int i = 0; i < playerInventory.maxSlots; i++)
|
// for (int i = 0; i < playerInventory.maxSlots; i++)
|
||||||
{
|
// {
|
||||||
SlotUI newSlot = Instantiate(slotPrefab, Vector3.zero, Quaternion.identity, slotListObj.transform).GetComponent<SlotUI>();
|
// SlotUI newSlot = Instantiate(slotPrefab, Vector3.zero, Quaternion.identity, slotListObj.transform).GetComponent<SlotUI>();
|
||||||
newSlot.slotIndex = i;
|
// newSlot.slotIndex = i;
|
||||||
slotUIList.Add(newSlot);
|
// slotUIList.Add(newSlot);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
private void UpdateSlots()
|
// private void UpdateSlots()
|
||||||
{
|
// {
|
||||||
int i = 0;
|
// int i = 0;
|
||||||
foreach (SlotUI slotUi in slotUIList)
|
// foreach (SlotUI slotUi in slotUIList)
|
||||||
{
|
// {
|
||||||
slotUi.SetInventoryItem(playerInventory.items[i]);
|
// slotUi.SetInventoryItem(playerInventory.items[i]);
|
||||||
i++;
|
// i++;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
// }
|
||||||
|
|||||||
@@ -1,60 +1,60 @@
|
|||||||
using System.Collections;
|
// using System.Collections;
|
||||||
using System.Collections.Generic;
|
// using System.Collections.Generic;
|
||||||
using UnityEngine;
|
// using UnityEngine;
|
||||||
using UnityEngine.UI;
|
// using UnityEngine.UI;
|
||||||
using UnityEngine.EventSystems;
|
// using UnityEngine.EventSystems;
|
||||||
public class SlotUI : MonoBehaviour, IDropHandler
|
// public class SlotUI : MonoBehaviour, IDropHandler
|
||||||
{
|
// {
|
||||||
public int slotIndex;
|
// public int slotIndex;
|
||||||
[SerializeField] private GameObject contentObject;
|
// [SerializeField] private GameObject contentObject;
|
||||||
[SerializeField] private InventoryItem inventoryItem;
|
// [SerializeField] private InventoryItem inventoryItem;
|
||||||
[SerializeField] private Image itemSpriteImage;
|
// [SerializeField] private Image itemSpriteImage;
|
||||||
[SerializeField] private TMPro.TextMeshProUGUI quantityText;
|
// [SerializeField] private TMPro.TextMeshProUGUI quantityText;
|
||||||
|
|
||||||
private Inventory playerInventory;
|
// private Inventory playerInventory;
|
||||||
private void Start()
|
// private void Start()
|
||||||
{
|
// {
|
||||||
UpdateSlot();
|
// UpdateSlot();
|
||||||
playerInventory = GameObject.FindGameObjectWithTag("Player").GetComponent<Inventory>();
|
// playerInventory = GameObject.FindGameObjectWithTag("Player").GetComponent<Inventory>();
|
||||||
}
|
// }
|
||||||
public void SetInventoryItem(InventoryItem newInventoryItem)
|
// public void SetInventoryItem(InventoryItem newInventoryItem)
|
||||||
{
|
// {
|
||||||
inventoryItem = newInventoryItem;
|
// inventoryItem = newInventoryItem;
|
||||||
UpdateSlot();
|
// UpdateSlot();
|
||||||
}
|
// }
|
||||||
|
|
||||||
private void UpdateSlot()
|
// private void UpdateSlot()
|
||||||
{
|
// {
|
||||||
if (inventoryItem != null)
|
// if (inventoryItem != null)
|
||||||
{
|
// {
|
||||||
itemSpriteImage.sprite = inventoryItem?.item?.sprite ?? null;
|
// itemSpriteImage.sprite = inventoryItem?.item?.sprite ?? null;
|
||||||
if (itemSpriteImage.sprite == null)
|
// if (itemSpriteImage.sprite == null)
|
||||||
{
|
// {
|
||||||
itemSpriteImage.color = new Color(0, 0, 0, 0);
|
// itemSpriteImage.color = new Color(0, 0, 0, 0);
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
itemSpriteImage.color = new Color(255, 255, 255, 1);
|
// itemSpriteImage.color = new Color(255, 255, 255, 1);
|
||||||
}
|
// }
|
||||||
|
|
||||||
quantityText.SetText(inventoryItem.count != 0 ? inventoryItem.count.ToString() : "");
|
// quantityText.SetText(inventoryItem.count != 0 ? inventoryItem.count.ToString() : "");
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
itemSpriteImage.sprite = null;
|
// itemSpriteImage.sprite = null;
|
||||||
quantityText.SetText("");
|
// quantityText.SetText("");
|
||||||
itemSpriteImage.color = new Color(0, 0, 0, 0);
|
// itemSpriteImage.color = new Color(0, 0, 0, 0);
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void OnDrop(PointerEventData eventData)
|
// public void OnDrop(PointerEventData eventData)
|
||||||
{
|
// {
|
||||||
Debug.Log("DROP");
|
// Debug.Log("DROP");
|
||||||
DraggableSlotContentUI dropped = eventData.pointerDrag.GetComponent<DraggableSlotContentUI>();
|
// DraggableSlotContentUI dropped = eventData.pointerDrag.GetComponent<DraggableSlotContentUI>();
|
||||||
playerInventory.SwapItems(dropped.slotIndex, slotIndex);
|
// playerInventory.SwapItems(dropped.slotIndex, slotIndex);
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
// }
|
||||||
|
|||||||
Reference in New Issue
Block a user