Refactor all gameItem into one object for easier stats
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Godot;
|
||||
using YamlDotNet.Serialization;
|
||||
using YamlDotNet.Serialization.NamingConventions;
|
||||
|
||||
public class GameItem {
|
||||
|
||||
public GameItem(int ItemId) {
|
||||
this.ItemID = ItemId;
|
||||
this.Guid = Guid.NewGuid();
|
||||
this.InventoryObject = new InventoryItem();
|
||||
}
|
||||
|
||||
public int ItemID { get; } // Overall ItemID
|
||||
public Guid Guid { get; } // In Game ItemID
|
||||
public InventoryItem InventoryObject { get; } // Reference to the items dynamic stats
|
||||
public Node GameObject { get; set; } // Reference to the GameObject
|
||||
public Panel InventoryFrame { get; set; } // Reference to the UI Panel
|
||||
|
||||
public static List<StatItem> _ItemStats; // Global reference to the list of items stats
|
||||
public StatItem ItemStats { get { // Reference to the items static stats
|
||||
foreach ( StatItem cur in _ItemStats) {
|
||||
if (cur.ItemID == ItemID) {
|
||||
return cur;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class StatItem {
|
||||
|
||||
public static void LoadItemStats() {
|
||||
using var file = FileAccess.Open("res://Scripts/ItemStats.yaml", FileAccess.ModeFlags.Read);
|
||||
string Contents = file.GetAsText();
|
||||
var deserializer = new DeserializerBuilder().WithNamingConvention(PascalCaseNamingConvention.Instance).Build();
|
||||
GameItem._ItemStats = deserializer.Deserialize<List<StatItem>>(Contents);
|
||||
}
|
||||
|
||||
public int ItemID { get; }
|
||||
public string ItemName { get; }
|
||||
public Vector2I InventorySize { get; }
|
||||
public int InventoryWeight { get; }
|
||||
public bool IsQuantityItem { get; }
|
||||
public int MaxQuantity { get; }
|
||||
public string ToolPath { get; }
|
||||
public int ToolDamage { get; }
|
||||
}
|
||||
|
||||
public class InventoryItem {
|
||||
public Vector2I GridPosition { get; set; }
|
||||
public bool Rotated { get; set; }
|
||||
public int Quantity { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user