Added complete crafting to the game. Next step would be research and buildings. Updated DSL with Setup to work with dynamic loading.

This commit is contained in:
2026-05-05 21:44:30 +02:00
parent ffe1077abc
commit 6445c24202
11 changed files with 116 additions and 39 deletions
+20 -20
View File
@@ -11,30 +11,30 @@ public class Item
public CraftingResult Craft(int amount, double delta)
{
if (GameData.inventory.CanCraft(data.Inputs, amount - amountCrafted))
elapsedCraftTime += delta;
GD.Print(elapsedCraftTime);
if (elapsedCraftTime >= data.CraftTime)
{
elapsedCraftTime += delta;
if (elapsedCraftTime >= data.CraftTime)
GD.Print("Crafted!");
elapsedCraftTime -= data.CraftTime;
if(!GameData.inventory.AddItem(this, 1))
{
elapsedCraftTime -= data.CraftTime;
currentAmount += 1;
amountCrafted++;
if (amountCrafted >= amount)
{
amountCrafted = 0;
elapsedCraftTime = 0;
return CraftingResult.FINISHED;
}
return CraftingResult.FAILED;
}
foreach (Ingredient ingredient in data.Inputs)
{
GameData.inventory.RemoveItem(ingredient.Item, ingredient.Amount);
}
amountCrafted++;
if (amountCrafted >= amount)
{
GD.Print("Finished!");
amountCrafted = 0;
elapsedCraftTime = 0;
return CraftingResult.FINISHED;
}
return CraftingResult.CRAFTING;
}
return CraftingResult.FAILED;
}
public string GetReadableName()
{
string noUnderscore = data.Id.Replace("_", " ").ToLower();
return char.ToUpper(noUnderscore[0]) + noUnderscore.Substring(1);
return CraftingResult.CRAFTING;
}
}