Compare commits

...

1 Commits

Author SHA1 Message Date
HelarJ b1954dd40e Basic saving, currently hardcoded to the one "chest" inventory in HomeBase.
Loads when scene name contains "Homebase" and saves when button pressed.
2022-04-18 08:59:26 +03:00
34 changed files with 39886 additions and 306 deletions

View File

@ -87,7 +87,7 @@ public class HandAnim : MonoBehaviour
private void GripActionPerformed(InputAction.CallbackContext obj) private void GripActionPerformed(InputAction.CallbackContext obj)
{ {
Debug.Log("grip"); //Debug.Log("grip");
CalculateState(obj.ReadValue<float>(), ref grip_state); CalculateState(obj.ReadValue<float>(), ref grip_state);
m_animator.SetFloat(m_animParamIndexFlex, grip_state); m_animator.SetFloat(m_animParamIndexFlex, grip_state);
} }

View File

@ -1,17 +1,22 @@
using System; using System;
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Linq; using System.Linq;
using UnityEngine; using UnityEngine;
using UnityEngine.SceneManagement;
[Serializable]
public class Inventory : MonoBehaviour public class Inventory : MonoBehaviour
{ {
//perhaps use these additional slots for holsters attached to the player?
public List<InventorySlot> additionalSlots; public List<InventorySlot> additionalSlots;
public GameObject itemContainerPrefab; public GameObject itemContainerPrefab;
private List<InventorySlot> _inventorySlots; private List<InventorySlot> _inventorySlots;
public InventorySaveData inventorySaveData;
private void Awake() private void Awake()
{ {
_inventorySlots = new List<InventorySlot>(); _inventorySlots = new List<InventorySlot>();
@ -20,10 +25,15 @@ public class Inventory : MonoBehaviour
inventorySlot.SetParentInventory(this); inventorySlot.SetParentInventory(this);
_inventorySlots.Add(inventorySlot); _inventorySlots.Add(inventorySlot);
} }
Debug.Log(_inventorySlots.Count);
} }
private void OnEnable() private void OnEnable()
{ {
SceneManager.sceneLoaded += OnSceneLoaded;
var inventorySlotsInChildren = GetComponentsInChildren<InventorySlot>(); var inventorySlotsInChildren = GetComponentsInChildren<InventorySlot>();
foreach (var inventorySlot in inventorySlotsInChildren) foreach (var inventorySlot in inventorySlotsInChildren)
{ {
@ -32,6 +42,12 @@ public class Inventory : MonoBehaviour
} }
} }
private void OnDisable()
{
SceneManager.sceneLoaded -= OnSceneLoaded;
}
public bool AddItem(ItemData item) public bool AddItem(ItemData item)
{ {
if (item.canStack) if (item.canStack)
@ -39,16 +55,17 @@ public class Inventory : MonoBehaviour
return AddItem(ConvertToInventoryItem(item)); return AddItem(ConvertToInventoryItem(item));
} }
return AddToFirstOpenSlot(item.gameObject); return AddToFirstOpenSlot(item.prefab.gameObject);
} }
public bool AddItem(InventoryItem item) public bool AddItem(InventoryItem item)
{ {
//Stacks the item if it already exists in the inventory. //Stacks the item if it already exists in the inventory.
foreach (var inventorySlot in _inventorySlots.Where(inventorySlot => foreach (var inventorySlot in _inventorySlots.Where(inventorySlot =>
inventorySlot.ContainsItem(item.GetItemid()))) inventorySlot.ContainsItem(item.GetItemid())))
{ {
inventorySlot.GetItem().ChangeCount(item.Count); inventorySlot.GetItem().ChangeCount(item.saveData.count);
return true; return true;
} }
@ -67,11 +84,91 @@ public class Inventory : MonoBehaviour
return false; return false;
} }
private void AddToSpecificSlot(GameObject item, int slot)
{
_inventorySlots[slot].AssignItem(item);
}
private InventoryItem ConvertToInventoryItem(ItemData item) private InventoryItem ConvertToInventoryItem(ItemData item)
{ {
var inventoryItem = Instantiate(itemContainerPrefab, transform); var inventoryItem = Instantiate(itemContainerPrefab, transform);
itemContainerPrefab.GetComponent<InventoryItem>().itemPrefab = item.gameObject; itemContainerPrefab.GetComponent<InventoryItem>().itemPrefab = item.prefab.gameObject;
return inventoryItem.gameObject.GetComponent<InventoryItem>(); return inventoryItem.gameObject.GetComponent<InventoryItem>();
} }
public void SaveInventory()
{
inventorySaveData.inventoryContents.Clear();
foreach (var inventoryItem in _inventorySlots.Select(inventorySlot => inventorySlot.GetItem()))
{
//adds an itemsavedata to the list if it exists or an empty one if it doesnt
inventorySaveData.inventoryContents.Add(inventoryItem != null
? inventoryItem.saveData
: new ItemSaveData());
}
var json = JsonUtility.ToJson(inventorySaveData);
Debug.Log(json);
using var sw = new StreamWriter(Path.Combine(Application.persistentDataPath, "invSave.dat"));
sw.Write(json);
Debug.Log("Inv data saved!");
}
public IEnumerator LoadInventory()
{
//Wait for 1 second after loading the scene to prevent missing prefabs. (1 second delay might also break something in the future)
yield return new WaitForSeconds(1);
//todo make this modular, currently only supports one inventory, although the slots can be anywhere.
if (File.Exists(Path.Combine(Application.persistentDataPath, "invSave.dat")))
{
var saveData = JsonUtility.FromJson<InventorySaveData>(File.ReadAllText(Path.Combine(Application.persistentDataPath, "invSave.dat")));
Debug.Log(saveData);
Debug.Log("Inv data loaded! total "+saveData.inventoryContents.Count);
for (var i = 0; i < saveData.inventoryContents.Count; i++)
{
//prevents overwriting inventory slots when there is something already in there.
//if (_inventorySlots[i]._itemInSlot != null) continue;
var data = saveData.inventoryContents[i];
//if there isnt an item in the slot the count is 0
Debug.Log(data.assetPath + " "+data.count);
if (data.count == 0) continue;
//Loads the prefab from resources folder
var load = Resources.Load(data.assetPath, typeof(GameObject)) as GameObject;
if (load == null)
{
Debug.LogError("Didn't find a prefab at " + data.assetPath);
yield break;
}
Debug.Log(load);
AddToSpecificSlot(load, i);
//sets the count after the item has been converted into inventoryitem
if (load.GetComponent<ItemData>().canStack) _inventorySlots[i]._itemInSlot.GetComponent<InventoryItem>().saveData.count = data.count;
}
}
else
Debug.LogError("There is no save data!");
}
void OnSceneLoaded(Scene scene, LoadSceneMode mode)
{
Debug.Log("OnSceneLoaded: " + scene.name);
//primitive check to only load the inventory when you are in the home scene.
if (scene.name.Contains("Homebase")) StartCoroutine(LoadInventory());
}
} }

View File

@ -4,16 +4,14 @@ using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.XR.Interaction.Toolkit; using UnityEngine.XR.Interaction.Toolkit;
[Serializable]
[RequireComponent(typeof(XRSocketInteractor))] [RequireComponent(typeof(XRSocketInteractor))]
public class InventorySlot : MonoBehaviour public class InventorySlot : MonoBehaviour
{ {
private XRSocketInteractor xrSocketInteractor; private XRSocketInteractor xrSocketInteractor;
private GameObject _itemInSlot; public GameObject _itemInSlot;
private Inventory _parentInventory; private Inventory _parentInventory;
private void Awake() private void Awake()
{ {
xrSocketInteractor = GetComponent<XRSocketInteractor>(); xrSocketInteractor = GetComponent<XRSocketInteractor>();
@ -35,6 +33,7 @@ public class InventorySlot : MonoBehaviour
if (_itemInSlot.GetComponent<InventoryItem>() == null) return; if (_itemInSlot.GetComponent<InventoryItem>() == null) return;
if (_itemInSlot == args.interactableObject.transform.gameObject) return; if (_itemInSlot == args.interactableObject.transform.gameObject) return;
//Debug.Log("hoverenter "+args.interactableObject + " " + xrSocketInteractor.hasHover + " " + xrSocketInteractor.hasSelection); //Debug.Log("hoverenter "+args.interactableObject + " " + xrSocketInteractor.hasHover + " " + xrSocketInteractor.hasSelection);
var newItem = args.interactableObject.transform.gameObject; var newItem = args.interactableObject.transform.gameObject;
@ -47,7 +46,7 @@ public class InventorySlot : MonoBehaviour
if (inventoryItem != null) if (inventoryItem != null)
{ {
_itemInSlot.GetComponent<InventoryItem>().ChangeCount(inventoryItem.Count); _itemInSlot.GetComponent<InventoryItem>().ChangeCount(inventoryItem.saveData.count);
} }
else else
{ {
@ -70,11 +69,13 @@ public class InventorySlot : MonoBehaviour
private void SelectEnter(SelectEnterEventArgs args) private void SelectEnter(SelectEnterEventArgs args)
{ {
Debug.Log("Added to slot item " + _itemInSlot); Debug.Log("Added to slot item " + _itemInSlot);
var newItem = args.interactableObject.transform.gameObject; var newItem = args.interactableObject.transform.gameObject;
//todo: fix ones that cant stack
//Converts the item into a inventory item //Converts the item into a inventory item
if (newItem.GetComponent<InventoryItem>() == null && newItem.GetComponent<ItemData>().canStack) if (newItem.GetComponent<InventoryItem>() == null)
{ {
var load = Resources.Load("Helar/Item", typeof(GameObject)) as GameObject; var load = Resources.Load("Helar/Item", typeof(GameObject)) as GameObject;
@ -101,12 +102,39 @@ public class InventorySlot : MonoBehaviour
_itemInSlot = instance; _itemInSlot = instance;
//_parentInventory.AddItem(instance.GetComponent<InventoryItem>());
return; return;
} }
_itemInSlot = newItem; _itemInSlot = newItem;
//_parentInventory.AddItem(newItem.GetComponentInChildren<ItemData>());
//xrSocketInteractor.attachTransform = _itemInSlot.transform; //xrSocketInteractor.attachTransform = _itemInSlot.transform;
Debug.Log("Holstered item" + _itemInSlot.GetComponentInChildren<ItemData>()); Debug.Log("Holstered item" + _itemInSlot.GetComponentInChildren<ItemData>());
}
private GameObject ConvertItem(GameObject item)
{
//load container object
var load = Resources.Load("Helar/Item", typeof(GameObject)) as GameObject;
//instantiate the container object
var instance = Instantiate(load, transform);
//load the container with the item to convert
instance.GetComponent<InventoryItem>().itemPrefab = item.gameObject;
//set the position and scale so it fits in the container
instance.transform.localScale = Vector3.one;
instance.transform.localPosition = Vector3.zero;
instance.transform.rotation = Quaternion.identity;
//enable the itemcontainer (more logic in InventoryItem OnEnable() method)
instance.GetComponent<InventoryItem>().enabled = true;
return instance;
} }
private void ManagerOninteractableUnregistered(InteractableUnregisteredEventArgs obj) private void ManagerOninteractableUnregistered(InteractableUnregisteredEventArgs obj)
@ -126,12 +154,14 @@ public class InventorySlot : MonoBehaviour
component.drag = 0.5f; component.drag = 0.5f;
if (!_itemInSlot.GetComponentInChildren<ItemData>().canStack || if (!_itemInSlot.GetComponentInChildren<ItemData>().canStack ||
_itemInSlot.GetComponent<InventoryItem>().Count == 1) _itemInSlot.GetComponent<InventoryItem>().saveData.count == 1)
{ {
//todo change back to regular item
//_itemInSlot.GetComponent<InventoryItem>().PopItem();
//var transformGameObject = _itemInSlot.GetComponentInChildren<ItemData>().transform.gameObject; //var transformGameObject = _itemInSlot.GetComponentInChildren<ItemData>().transform.gameObject;
//Debug.Log(transformGameObject); //Debug.Log(transformGameObject);
//args.interactableObject = transformGameObject.GetComponent<XRGrabInteractable>(); //args.interactableObject = transformGameObject.GetComponent<XRGrabInteractable>();
//todo change back to regular item
} }
Debug.Log("Removed from slot item " + _itemInSlot); Debug.Log("Removed from slot item " + _itemInSlot);
_itemInSlot = null; _itemInSlot = null;
@ -159,12 +189,21 @@ public class InventorySlot : MonoBehaviour
} }
public void AssignItem(GameObject newObject) public void AssignItem(GameObject newObject)
{
if (newObject.GetComponent<InventoryItem>() == null)
{
_itemInSlot = ConvertItem(newObject);
}
else
{ {
_itemInSlot = newObject; _itemInSlot = newObject;
} }
}
public InventoryItem GetItem() public InventoryItem GetItem()
{ {
if (_itemInSlot == null) return null;
var inventoryItem = _itemInSlot.GetComponent<InventoryItem>(); var inventoryItem = _itemInSlot.GetComponent<InventoryItem>();
if (inventoryItem == null) Debug.LogError("Item in slot doesn't have InventoryItem component"); if (inventoryItem == null) Debug.LogError("Item in slot doesn't have InventoryItem component");
return inventoryItem; return inventoryItem;

View File

@ -9,7 +9,7 @@ public class ItemSpawner : MonoBehaviour
public GameObject placeToSpawn; public GameObject placeToSpawn;
public void SpawnItem() public void SpawnItem()
{ {
Debug.Log("Spawned " + objectToSpawn);
Instantiate(objectToSpawn, placeToSpawn.transform); Instantiate(objectToSpawn, placeToSpawn.transform);
Debug.Log("Spawned " + objectToSpawn);
} }
} }

View File

@ -3,7 +3,6 @@ using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using TMPro; using TMPro;
using Unity.Mathematics; using Unity.Mathematics;
using Unity.VisualScripting;
using UnityEngine; using UnityEngine;
using UnityEngine.XR.Interaction.Toolkit; using UnityEngine.XR.Interaction.Toolkit;
@ -13,15 +12,13 @@ public class InventoryItem : MonoBehaviour
public GameObject itemPrefab; public GameObject itemPrefab;
private int _itemId;
private GameObject _childPrefab; private GameObject _childPrefab;
public int Count { get; private set; } private TMP_Text itemCounterText;
public TMP_Text itemCounterText; private ItemData itemData;
private ItemData _itemData; public ItemSaveData saveData;
private void OnEnable() private void OnEnable()
@ -37,13 +34,15 @@ public class InventoryItem : MonoBehaviour
if (itemCounterText == null) itemCounterText = GetComponentInChildren<TMP_Text>(); if (itemCounterText == null) itemCounterText = GetComponentInChildren<TMP_Text>();
_childPrefab = GetComponentInChildren<ItemData>()?.gameObject; _childPrefab = GetComponentInChildren<ItemData>()?.prefab.gameObject;
//Only attaches the prefab if it doesn't already have one ([ExecuteAlways] causes one to be spawned in editor). //Only attaches the prefab if it doesn't already have one ([ExecuteAlways] causes one to be spawned in editor).
if (_childPrefab != null) return; if (_childPrefab != null) return;
_childPrefab = Instantiate(itemPrefab, transform); _childPrefab = Instantiate(itemPrefab, transform);
_childPrefab.transform.localPosition = new Vector3(0, -0.45f, 0);
_childPrefab.transform.localScale = new Vector3(2, 2, 2); //todo switch to multiply instead so items with non 1,1,1 scale will retain their proportions
_childPrefab.transform.localPosition = GetComponentInChildren<ItemData>().positionInContainer;
_childPrefab.transform.localScale = GetComponentInChildren<ItemData>().scaleInContainer;
_childPrefab.transform.rotation = quaternion.identity; _childPrefab.transform.rotation = quaternion.identity;
//Disable prefab components that arent relevant. //Disable prefab components that arent relevant.
@ -60,23 +59,28 @@ public class InventoryItem : MonoBehaviour
var xrGrabInteractableComponent = _childPrefab.GetComponent<XRGrabInteractable>(); var xrGrabInteractableComponent = _childPrefab.GetComponent<XRGrabInteractable>();
if (xrGrabInteractableComponent != null) xrGrabInteractableComponent.enabled = false; if (xrGrabInteractableComponent != null) xrGrabInteractableComponent.enabled = false;
} }
private void Start() private void Start()
{ {
_itemData = _childPrefab.GetComponent<ItemData>(); itemData = _childPrefab.GetComponent<ItemData>();
if (_itemData == null) Debug.LogError("Item prefab has no attached ItemData", _childPrefab); if (itemData == null) Debug.LogError("Item prefab has no attached ItemData", _childPrefab);
Debug.Log(saveData);
_itemId = _itemData.itemId; if (string.IsNullOrEmpty(saveData.assetPath))
if (Count == 0) Count = 1; {
saveData.assetPath = itemData.assetLocation;
saveData.count = saveData.count == 0 ? 1 : saveData.count;
}
UpdateText(); UpdateText();
} }
private void UpdateText() private void UpdateText()
{ {
itemCounterText.text = _itemData.canStack ? Count.ToString() : ""; itemCounterText.text = itemData.canStack ? saveData.count.ToString() : "";
} }
/** /**
@ -85,11 +89,11 @@ public class InventoryItem : MonoBehaviour
*/ */
public bool ChangeCount(int amount) public bool ChangeCount(int amount)
{ {
if (Count + amount < 0) return false; if (saveData.count + amount < 0) return false;
Count += amount; saveData.count += amount;
if (Count == 0) if (saveData.count == 0)
{ {
//Destroys this gameobject if the count is 0 or lower //Destroys this gameobject if the count is 0 or lower
Destroy(gameObject); Destroy(gameObject);
@ -103,10 +107,11 @@ public class InventoryItem : MonoBehaviour
public void PopItem() public void PopItem()
{ {
GameObject item = Instantiate(_itemData.prefab, transform.position + transform.forward, Quaternion.identity); GameObject item = Instantiate(itemData.prefab, transform.position + transform.forward, Quaternion.identity);
item.transform.localScale = Vector3.one; item.transform.localScale = Vector3.one;
item.transform.name = _itemData.name; item.transform.name = itemData.itemName;
var colliderComponent = item.GetComponent<Collider>(); var colliderComponent = item.GetComponent<Collider>();
if (colliderComponent != null) colliderComponent.enabled = true; if (colliderComponent != null) colliderComponent.enabled = true;
@ -127,13 +132,13 @@ public class InventoryItem : MonoBehaviour
public int GetItemid() public int GetItemid()
{ {
return _itemId; return itemData.itemId;;
} }
public override string ToString() public override string ToString()
{ {
return $"{base.ToString()}, Count: {Count}, ItemData: {_itemData}"; return $"{base.ToString()}, Count: {saveData.count}, ItemData: {itemData}";
} }
} }

View File

@ -0,0 +1,10 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[Serializable]
public class InventorySaveData
{
public List<ItemSaveData> inventoryContents;
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: e60ec35305ed0b94099d18a09b488310
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,16 +1,44 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine; using UnityEngine;
[Serializable] [Serializable]
public class ItemData : MonoBehaviour public class ItemData : MonoBehaviour
{ {
[Tooltip("Location is populated automatically")]
public string assetLocation;
public int itemId; public int itemId;
public bool canStack; public bool canStack;
public string itemName; public string itemName;
public string itemDescription; public string itemDescription;
public GameObject prefab; public GameObject prefab;
public Vector3 scaleInContainer;
public Vector3 positionInContainer;
private void OnValidate()
{
if (!string.IsNullOrEmpty(AssetDatabase.GetAssetPath(prefab))) assetLocation = AssetDatabase.GetAssetPath(prefab);
AdjustPath();
}
private void AdjustPath()
{
//trims the location for use with Resources.Load later
if (assetLocation.StartsWith("Assets/Resources/"))
assetLocation = assetLocation[17 .. ^7];
else if (!string.IsNullOrEmpty(assetLocation))
if (assetLocation.StartsWith("Assets"))
{
Debug.LogError(itemName +
": item with this script should be placed in the Assets/Resources/ folder. Currently: " +
assetLocation);
}
}
public override string ToString() public override string ToString()
{ {

View File

@ -0,0 +1,12 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[Serializable]
public class ItemSaveData
{
public string assetPath;
public int count;
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 2e553150cec08514e9aacc82fe8da007
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 2b57b900363404c41af0b0d6300b8f9e guid: 7e103e2a5fcad9145a7884a55aaf9792
folderAsset: yes folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}

View File

@ -21,15 +21,15 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 451388, guid: 2ec0a21ef68f64a46864ad388da793c4, type: 3} - target: {fileID: 451388, guid: 2ec0a21ef68f64a46864ad388da793c4, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: 0.1048176 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 451388, guid: 2ec0a21ef68f64a46864ad388da793c4, type: 3} - target: {fileID: 451388, guid: 2ec0a21ef68f64a46864ad388da793c4, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
value: 0.032218672 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 451388, guid: 2ec0a21ef68f64a46864ad388da793c4, type: 3} - target: {fileID: 451388, guid: 2ec0a21ef68f64a46864ad388da793c4, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
value: 0.81958795 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 451388, guid: 2ec0a21ef68f64a46864ad388da793c4, type: 3} - target: {fileID: 451388, guid: 2ec0a21ef68f64a46864ad388da793c4, type: 3}
propertyPath: m_LocalRotation.w propertyPath: m_LocalRotation.w
@ -270,3 +270,23 @@ MonoBehaviour:
m_ForceGravityOnDetach: 0 m_ForceGravityOnDetach: 0
m_RetainTransformParent: 1 m_RetainTransformParent: 1
m_AttachPointCompatibilityMode: 0 m_AttachPointCompatibilityMode: 0
--- !u!114 &8950488617520359539
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 988253026175220877}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fc417ab3a5b06f04db2149be4cfdf6e4, type: 3}
m_Name:
m_EditorClassIdentifier:
assetLocation: Arlo/Axe
itemId: 69
canStack: 0
itemName: Axe
itemDescription:
prefab: {fileID: 988253026175220877}
scaleInContainer: {x: 2, y: 2, z: 2}
positionInContainer: {x: 0, y: -0.33, z: 0}

View File

@ -300,7 +300,11 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: fc417ab3a5b06f04db2149be4cfdf6e4, type: 3} m_Script: {fileID: 11500000, guid: fc417ab3a5b06f04db2149be4cfdf6e4, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
assetLocation: Arlo/Log
itemId: 5 itemId: 5
canStack: 1 canStack: 1
itemName: Wood Log itemName: Wood Log
itemDescription: A simple wooden log. A key ingredient for many things. itemDescription: A simple wooden log. A key ingredient for many things.
prefab: {fileID: 3057085693074020240}
scaleInContainer: {x: 0.8, y: 0.8, z: 0.8}
positionInContainer: {x: 0, y: -0.215, z: 0}

View File

@ -244,8 +244,11 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: fc417ab3a5b06f04db2149be4cfdf6e4, type: 3} m_Script: {fileID: 11500000, guid: fc417ab3a5b06f04db2149be4cfdf6e4, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
assetLocation: Helar/Mushroom_01
itemId: 1 itemId: 1
canStack: 1 canStack: 1
itemName: Red Mushroom itemName: Red Mushroom
itemDescription: itemDescription:
prefab: {fileID: 4385080170328260021} prefab: {fileID: 4385080170328260021}
scaleInContainer: {x: 2, y: 2, z: 2}
positionInContainer: {x: 0, y: -0.45, z: 0}

View File

@ -244,8 +244,11 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: fc417ab3a5b06f04db2149be4cfdf6e4, type: 3} m_Script: {fileID: 11500000, guid: fc417ab3a5b06f04db2149be4cfdf6e4, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
assetLocation: Helar/Mushroom_02
itemId: 2 itemId: 2
canStack: 1 canStack: 1
itemName: Brown Mushroom itemName: Brown Mushroom
itemDescription: itemDescription:
prefab: {fileID: 5440707293445505367} prefab: {fileID: 5440707293445505367}
scaleInContainer: {x: 2, y: 2, z: 2}
positionInContainer: {x: 0, y: -0.45, z: 0}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4ee37c3948632d84f82c9f76c2ac6daa
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -206,6 +206,7 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
chime: {fileID: 965315076614651339} chime: {fileID: 965315076614651339}
isTouched: 0 isTouched: 0
playerInfo: {fileID: 0}
--- !u!82 &965315076614651339 --- !u!82 &965315076614651339
AudioSource: AudioSource:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -314,11 +315,13 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: fc417ab3a5b06f04db2149be4cfdf6e4, type: 3} m_Script: {fileID: 11500000, guid: fc417ab3a5b06f04db2149be4cfdf6e4, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
assetLocation:
itemId: 10 itemId: 10
canStack: 1 canStack: 1
itemName: Magic essence itemName: Magic essence
itemDescription: itemDescription:
prefab: {fileID: 3467985268477833302} prefab: {fileID: 3467985268477833302}
scaleInContainer: {x: 1, y: 1, z: 1}
--- !u!1 &5463776654730074005 --- !u!1 &5463776654730074005
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
<<<<<<<< HEAD:Assets/Scenes/JoonasP/Homebase_JP.unity.meta
guid: 97fc7747e77335e4483b4a65db2e4fc1
========
guid: 6d5f257272c8a9840891d8745d7bc200
>>>>>>>> joonasp_Milestone2:Assets/Scenes/JoonasP/Homebase_JoonasP.unity.meta
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -90,19 +90,19 @@ Material:
- _HorizonCloudSize: 4.91 - _HorizonCloudSize: 4.91
- _HorizonCloudStartPosition: -0.1 - _HorizonCloudStartPosition: -0.1
- _HorizonCloudStep: 25 - _HorizonCloudStep: 25
- _HorizonExponent: 3.3921747 - _HorizonExponent: 3.5590127
- _HorizonStep: 500 - _HorizonStep: 500
- _HorizonThickness: 1 - _HorizonThickness: 1
- _MoonGlow: 0 - _MoonGlow: 0
- _MoonLightIntensity: 0.00034078956 - _MoonLightIntensity: 0.0000009446238
- _MoonSize: 0 - _MoonSize: 0
- _MoonSoftEdge: 0 - _MoonSoftEdge: 0
- _OverheadCloudAltitude: 1000 - _OverheadCloudAltitude: 1000
- _OverheadCloudAnimationSpeed: 50 - _OverheadCloudAnimationSpeed: 50
- _OverheadCloudFlowDirectionX: 1 - _OverheadCloudFlowDirectionX: 1
- _OverheadCloudFlowDirectionZ: 1 - _OverheadCloudFlowDirectionZ: 1
- _OverheadCloudRemapMax: 1.074074 - _OverheadCloudRemapMax: 1.14697
- _OverheadCloudRemapMin: 0.111940965 - _OverheadCloudRemapMin: 0.16336505
- _OverheadCloudSize: 10 - _OverheadCloudSize: 10
- _OverheadCloudStep: 2 - _OverheadCloudStep: 2
- _StarsDensity0: 0.4 - _StarsDensity0: 0.4
@ -112,7 +112,7 @@ Material:
- _StarsGlow0: 0.01 - _StarsGlow0: 0.01
- _StarsGlow1: 0.01 - _StarsGlow1: 0.01
- _StarsGlow2: 0.01 - _StarsGlow2: 0.01
- _StarsOpacity: 0.0009148121 - _StarsOpacity: 0
- _StarsSize0: 0.42 - _StarsSize0: 0.42
- _StarsSize1: 0.53 - _StarsSize1: 0.53
- _StarsSize2: 0.46 - _StarsSize2: 0.46
@ -121,25 +121,25 @@ Material:
- _StarsTwinkle1: 6 - _StarsTwinkle1: 6
- _StarsTwinkle2: 2 - _StarsTwinkle2: 2
- _SunGlow: 0.45 - _SunGlow: 0.45
- _SunLightIntensity: 0.22252172 - _SunLightIntensity: 0.3061529
- _SunSize: 0.1 - _SunSize: 0.1
- _SunSoftEdge: 0.5 - _SunSoftEdge: 0.5
m_Colors: m_Colors:
- _DetailOverlayTintColor: {r: 0, g: 0, b: 0, a: 0} - _DetailOverlayTintColor: {r: 0, g: 0, b: 0, a: 0}
- _FogColor: {r: 0, g: 0, b: 0, a: 0} - _FogColor: {r: 0, g: 0, b: 0, a: 0}
- _GroundColor: {r: 0.4100945, g: 0.38965663, b: 0.42924377, a: 1} - _GroundColor: {r: 0.4181847, g: 0.3995859, b: 0.4356108, a: 1}
- _HorizonCloudColor: {r: 1, g: 1, b: 1, a: 1} - _HorizonCloudColor: {r: 1, g: 1, b: 1, a: 1}
- _HorizonColor: {r: 0.9055729, g: 0.85231304, b: 0.741789, a: 1} - _HorizonColor: {r: 0.9020369, g: 0.86305594, b: 0.76238817, a: 1}
- _MoonColor: {r: 1, g: 1, b: 1, a: 0} - _MoonColor: {r: 1, g: 1, b: 1, a: 0}
- _MoonDirection: {r: 1, g: 1, b: 1, a: 0} - _MoonDirection: {r: 1, g: 1, b: 1, a: 0}
- _MoonLightColor: {r: 0, g: 0, b: 0, a: 0} - _MoonLightColor: {r: 0, g: 0, b: 0, a: 0}
- _OverheadCloudColor: {r: 1, g: 1, b: 1, a: 0.9640542} - _OverheadCloudColor: {r: 1, g: 1, b: 1, a: 0.9756075}
- _SkyColor: {r: 0.20533016, g: 0.35421106, b: 0.5882197, a: 1} - _SkyColor: {r: 0.22028852, g: 0.39287567, b: 0.63273, a: 1}
- _StarsColor0: {r: 0.96470594, g: 0.9450981, b: 0.76470596, a: 1} - _StarsColor0: {r: 0.96470594, g: 0.9450981, b: 0.76470596, a: 1}
- _StarsColor1: {r: 1, g: 0.5294118, b: 0.93725497, a: 1} - _StarsColor1: {r: 1, g: 0.5294118, b: 0.93725497, a: 1}
- _StarsColor2: {r: 0, g: 0.92549026, b: 1, a: 1} - _StarsColor2: {r: 0, g: 0.92549026, b: 1, a: 1}
- _SunColor: {r: 0.9742516, g: 0.93176544, b: 0.86166334, a: 1} - _SunColor: {r: 0.9725966, g: 0.9273795, b: 0.85277134, a: 1}
- _SunDirection: {r: 0, g: -0.258819, b: 0.9659258, a: 0} - _SunDirection: {r: 0, g: -0.37054375, b: 0.928815, a: 0}
- _SunLightColor: {r: 1, g: 0.9929226, b: 0.9009434, a: 1} - _SunLightColor: {r: 1, g: 0.9929226, b: 0.9009434, a: 1}
m_BuildTextureStacks: [] m_BuildTextureStacks: []
--- !u!114 &11400000 --- !u!114 &11400000

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -27,17 +27,17 @@ Material:
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}
- _ColorBlend: - _ColorBlend:
m_Texture: {fileID: 567659264843545098, guid: b6bbea2e1167a7346822545139402874, m_Texture: {fileID: 3296297345525164742, guid: b6bbea2e1167a7346822545139402874,
type: 2} type: 2}
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}
- _ColorByHeight: - _ColorByHeight:
m_Texture: {fileID: 5600802747215712828, guid: b6bbea2e1167a7346822545139402874, m_Texture: {fileID: 7822123968218558248, guid: b6bbea2e1167a7346822545139402874,
type: 2} type: 2}
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}
- _ColorByNormal: - _ColorByNormal:
m_Texture: {fileID: 4387930893138807582, guid: b6bbea2e1167a7346822545139402874, m_Texture: {fileID: -5897336944087639462, guid: b6bbea2e1167a7346822545139402874,
type: 2} type: 2}
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}

View File

@ -40,17 +40,17 @@ Material:
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}
- _ColorBlend: - _ColorBlend:
m_Texture: {fileID: -8225046794103038699, guid: 726ce83d589353742be6b48ff467fc48, m_Texture: {fileID: 2309935011595810566, guid: 726ce83d589353742be6b48ff467fc48,
type: 2} type: 2}
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}
- _ColorByHeight: - _ColorByHeight:
m_Texture: {fileID: 6831111675755459306, guid: 726ce83d589353742be6b48ff467fc48, m_Texture: {fileID: -9169335222111477954, guid: 726ce83d589353742be6b48ff467fc48,
type: 2} type: 2}
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}
- _ColorByNormal: - _ColorByNormal:
m_Texture: {fileID: 165637708112304383, guid: 726ce83d589353742be6b48ff467fc48, m_Texture: {fileID: 2978575347860503324, guid: 726ce83d589353742be6b48ff467fc48,
type: 2} type: 2}
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}

View File

@ -40,17 +40,17 @@ Material:
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}
- _ColorBlend: - _ColorBlend:
m_Texture: {fileID: 3234995293974440031, guid: 7f589c682d367b442b8cf75918f5aa55, m_Texture: {fileID: 896384531317697102, guid: 7f589c682d367b442b8cf75918f5aa55,
type: 2} type: 2}
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}
- _ColorByHeight: - _ColorByHeight:
m_Texture: {fileID: 7438741728987644076, guid: 7f589c682d367b442b8cf75918f5aa55, m_Texture: {fileID: 4029862431913224828, guid: 7f589c682d367b442b8cf75918f5aa55,
type: 2} type: 2}
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}
- _ColorByNormal: - _ColorByNormal:
m_Texture: {fileID: -7540841678319409431, guid: 7f589c682d367b442b8cf75918f5aa55, m_Texture: {fileID: 4575790855133332405, guid: 7f589c682d367b442b8cf75918f5aa55,
type: 2} type: 2}
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}

View File

@ -731,7 +731,7 @@ PlayerSettings:
PS4: PHOTON_UNITY_NETWORKING;PUN_2_0_OR_NEWER;PUN_2_OR_NEWER;PUN_2_19_OR_NEWER;UNITY_POST_PROCESSING_STACK_V2 PS4: PHOTON_UNITY_NETWORKING;PUN_2_0_OR_NEWER;PUN_2_OR_NEWER;PUN_2_19_OR_NEWER;UNITY_POST_PROCESSING_STACK_V2
PS5: PHOTON_UNITY_NETWORKING;PUN_2_0_OR_NEWER;PUN_2_OR_NEWER;PUN_2_19_OR_NEWER;UNITY_POST_PROCESSING_STACK_V2 PS5: PHOTON_UNITY_NETWORKING;PUN_2_0_OR_NEWER;PUN_2_OR_NEWER;PUN_2_19_OR_NEWER;UNITY_POST_PROCESSING_STACK_V2
Stadia: PHOTON_UNITY_NETWORKING;PUN_2_0_OR_NEWER;PUN_2_OR_NEWER;PUN_2_19_OR_NEWER;UNITY_POST_PROCESSING_STACK_V2 Stadia: PHOTON_UNITY_NETWORKING;PUN_2_0_OR_NEWER;PUN_2_OR_NEWER;PUN_2_19_OR_NEWER;UNITY_POST_PROCESSING_STACK_V2
Standalone: RH_SerializedDictionary;PHOTON_UNITY_NETWORKING;PUN_2_0_OR_NEWER;PUN_2_OR_NEWER;PUN_2_19_OR_NEWER;UNITY_POST_PROCESSING_STACK_V2 Standalone: RH_SerializedDictionary;PHOTON_UNITY_NETWORKING;PUN_2_0_OR_NEWER;PUN_2_OR_NEWER;PUN_2_19_OR_NEWER;UNITY_POST_PROCESSING_STACK_V2;GRIFFIN_URP;POSEIDON;POSEIDON_URP;JUPITER;GRIFFIN;TEXTURE_GRAPH;GRIFFIN_2021;TG_SEARCHER
WebGL: PHOTON_UNITY_NETWORKING;PUN_2_0_OR_NEWER;PUN_2_OR_NEWER;PUN_2_19_OR_NEWER;UNITY_POST_PROCESSING_STACK_V2 WebGL: PHOTON_UNITY_NETWORKING;PUN_2_0_OR_NEWER;PUN_2_OR_NEWER;PUN_2_19_OR_NEWER;UNITY_POST_PROCESSING_STACK_V2
Windows Store Apps: PHOTON_UNITY_NETWORKING;PUN_2_0_OR_NEWER;PUN_2_OR_NEWER;PUN_2_19_OR_NEWER;UNITY_POST_PROCESSING_STACK_V2 Windows Store Apps: PHOTON_UNITY_NETWORKING;PUN_2_0_OR_NEWER;PUN_2_OR_NEWER;PUN_2_19_OR_NEWER;UNITY_POST_PROCESSING_STACK_V2
XboxOne: PHOTON_UNITY_NETWORKING;PUN_2_0_OR_NEWER;PUN_2_OR_NEWER;PUN_2_19_OR_NEWER;UNITY_POST_PROCESSING_STACK_V2 XboxOne: PHOTON_UNITY_NETWORKING;PUN_2_0_OR_NEWER;PUN_2_OR_NEWER;PUN_2_19_OR_NEWER;UNITY_POST_PROCESSING_STACK_V2