using Assets.Scripts.Helpers;
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
|
#region player data
|
[Serializable]
|
public class SaveDataInventorySlot
|
{
|
public int itemId;
|
public string itemName;
|
public int quantity;
|
|
public SaveDataInventorySlot(InventorySlot slot)
|
{
|
itemId = slot.item.itemId;
|
itemName = slot.item.itemName;
|
quantity = slot.quantity;
|
}
|
}
|
[Serializable]
|
public class SaveDataPlayer
|
{
|
public int maxHealth;
|
public int health;
|
public float[] position;
|
public float[] velocity;
|
public List<SaveDataInventorySlot> inventoryItems;
|
|
public SaveDataPlayer(PlayerController player, Inventory inventory)
|
{
|
maxHealth = player.health.MaxHealth;
|
health = player.health.Health;
|
position = player.transform.position.ConvertToFloatArray();
|
velocity = player.rb.velocity.ConvertToFloatArray();
|
|
// Save inventory items
|
inventoryItems = new List<SaveDataInventorySlot>();
|
foreach (var slot in inventory.items)
|
{
|
inventoryItems.Add(new SaveDataInventorySlot(slot));
|
}
|
}
|
}
|
#endregion
|
|
#region map data
|
[Serializable]
|
public class SaveDataMap
|
{
|
public int seed;
|
public List<DestroyedTile> destroyedTiles;
|
public SaveDataMap(List<Vector3Int> destroyedTiles, int seed)
|
{
|
this.seed = seed;
|
this.destroyedTiles = new List<DestroyedTile>();
|
foreach (var item in destroyedTiles.ConvertToListIntArray())
|
{
|
this.destroyedTiles.Add(new DestroyedTile(item));
|
}
|
}
|
}
|
|
[Serializable]
|
public class DestroyedTile
|
{
|
public DestroyedTile(int[] tileCoord)
|
{
|
this.tileCoord = tileCoord;
|
}
|
public int[] tileCoord;
|
}
|
#endregion
|