Consistent SYSTEMS
This commit is contained in:
@@ -105,6 +105,12 @@ msgstr[1] "Baked Sweet Potatoes"
|
|||||||
msgid "item.baked_sweet_potato.description"
|
msgid "item.baked_sweet_potato.description"
|
||||||
msgstr "A sweet potato that has been baked to perfection. It is warm and comforting, perfect for a chilly day."
|
msgstr "A sweet potato that has been baked to perfection. It is warm and comforting, perfect for a chilly day."
|
||||||
|
|
||||||
|
#
|
||||||
|
# RECIPES
|
||||||
|
#
|
||||||
|
msgid "recipe.baked_sweet_potato.title"
|
||||||
|
msgstr "Baked Sweet Potato"
|
||||||
|
|
||||||
#
|
#
|
||||||
# SCENES
|
# SCENES
|
||||||
#
|
#
|
||||||
|
@@ -17,19 +17,19 @@ config/icon="res://icon.svg"
|
|||||||
|
|
||||||
[autoload]
|
[autoload]
|
||||||
|
|
||||||
BATTLE="*res://scripts/Singleton/Battle.gd"
|
BATTLE="*res://scripts/Singleton/BattleSystem.gd"
|
||||||
COOKING="*res://scripts/Singleton/Cooking.gd"
|
COOKING="*res://scripts/Singleton/CookingSystem.gd"
|
||||||
OVERWORLD="*res://scripts/Singleton/Overworld.gd"
|
OVERWORLD="*res://scripts/Singleton/OverworldSystem.gd"
|
||||||
ITEM="*res://scenes/Singletons/Item.tscn"
|
ITEM="*res://scenes/Singletons/Item.tscn"
|
||||||
PAUSE="*res://scripts/Singleton/Pause.gd"
|
PAUSE="*res://scripts/Singleton/PauseSystem.gd"
|
||||||
QUEST="*res://scenes/Singletons/Quest.tscn"
|
QUEST="*res://scenes/Singletons/Quest.tscn"
|
||||||
SCENE_MANAGER="*res://scripts/Singleton/SceneManager.gd"
|
SCENE_MANAGER="*res://scripts/Singleton/SceneSystem.gd"
|
||||||
UI="*res://scenes/Singletons/UI.tscn"
|
UI="*res://scenes/Singletons/UI.tscn"
|
||||||
VN="*res://scripts/Singleton/VN.gd"
|
VN="*res://scripts/Singleton/VNSystem.gd"
|
||||||
LOAD="*res://scenes/Singletons/Load.tscn"
|
LOAD="*res://scenes/Singletons/Load.tscn"
|
||||||
EVENT="*res://scripts/Singleton/Event.gd"
|
EVENT="*res://scripts/Singleton/EventSystem.gd"
|
||||||
RECIPE="*res://scenes/Singletons/Recipe.tscn"
|
RECIPE="*res://scenes/Singletons/Recipe.tscn"
|
||||||
LOCALE="*res://scripts/Singleton/Locale.gd"
|
LOCALE="*res://scripts/Singleton/LocaleSystem.gd"
|
||||||
ControllerIcons="*res://addons/controller_icons/ControllerIcons.gd"
|
ControllerIcons="*res://addons/controller_icons/ControllerIcons.gd"
|
||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
@@ -1,13 +1,12 @@
|
|||||||
[gd_scene load_steps=5 format=3 uid="uid://mfxht4d8pvjj"]
|
[gd_scene load_steps=5 format=3 uid="uid://mfxht4d8pvjj"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://1vd57s0j3b2o" path="res://scripts/Singleton/Item.gd" id="1_sv510"]
|
[ext_resource type="Script" uid="uid://bc4c4eqfrnegb" path="res://scripts/Singleton/ItemSystem.gd" id="1_sv510"]
|
||||||
[ext_resource type="Script" uid="uid://dipe47ljyvycv" path="res://scripts/Item/ingredients/ItemOnion.gd" id="2_w2ka5"]
|
[ext_resource type="Script" uid="uid://dipe47ljyvycv" path="res://scripts/Item/ingredients/ItemOnion.gd" id="2_w2ka5"]
|
||||||
[ext_resource type="Script" uid="uid://b6v2o563casay" path="res://scripts/Item/medicine/ItemPotion.gd" id="3_q4yin"]
|
[ext_resource type="Script" uid="uid://b6v2o563casay" path="res://scripts/Item/medicine/ItemPotion.gd" id="3_q4yin"]
|
||||||
[ext_resource type="Script" uid="uid://c6t5tprnd23t0" path="res://scripts/Item/Item.gd" id="3_v1lpn"]
|
[ext_resource type="Script" uid="uid://c6t5tprnd23t0" path="res://scripts/Item/Item.gd" id="3_v1lpn"]
|
||||||
|
|
||||||
[node name="Item" type="Node"]
|
[node name="Item" type="Node"]
|
||||||
script = ExtResource("1_sv510")
|
script = ExtResource("1_sv510")
|
||||||
metadata/_custom_type_script = "uid://1vd57s0j3b2o"
|
|
||||||
|
|
||||||
[node name="Ingredients" type="Node" parent="."]
|
[node name="Ingredients" type="Node" parent="."]
|
||||||
|
|
||||||
|
@@ -1,12 +1,11 @@
|
|||||||
[gd_scene load_steps=4 format=3 uid="uid://cs3kmmd0rfm8w"]
|
[gd_scene load_steps=4 format=3 uid="uid://cs3kmmd0rfm8w"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://d0060jeyftia7" path="res://scripts/Singleton/Quest.gd" id="1_v2h4q"]
|
[ext_resource type="Script" uid="uid://dnlg1e8une55l" path="res://scripts/Singleton/QuestSystem.gd" id="1_v2h4q"]
|
||||||
[ext_resource type="Script" uid="uid://dn0kxbe85n40f" path="res://scripts/Quest/Quest.gd" id="2_n4ii1"]
|
[ext_resource type="Script" uid="uid://dn0kxbe85n40f" path="res://scripts/Quest/Quest.gd" id="2_n4ii1"]
|
||||||
[ext_resource type="Script" uid="uid://de1ao4huhy0hm" path="res://scripts/Quest/QuestObjective.gd" id="3_l8p7p"]
|
[ext_resource type="Script" uid="uid://de1ao4huhy0hm" path="res://scripts/Quest/QuestObjective.gd" id="3_l8p7p"]
|
||||||
|
|
||||||
[node name="QuestSystem" type="Node"]
|
[node name="QuestSystem" type="Node"]
|
||||||
script = ExtResource("1_v2h4q")
|
script = ExtResource("1_v2h4q")
|
||||||
metadata/_custom_type_script = "uid://d0060jeyftia7"
|
|
||||||
|
|
||||||
[node name="Quests" type="Node" parent="."]
|
[node name="Quests" type="Node" parent="."]
|
||||||
|
|
||||||
|
@@ -1,27 +1,27 @@
|
|||||||
[gd_scene load_steps=6 format=3 uid="uid://1l0tymk8cfxu"]
|
[gd_scene load_steps=6 format=3 uid="uid://1l0tymk8cfxu"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://j87s6jrx8unn" path="res://scripts/Singleton/Recipe.gd" id="1_o4nv4"]
|
[ext_resource type="Script" uid="uid://b83k8ksk1dpu2" path="res://scripts/Singleton/RecipeSystem.gd" id="1_o4nv4"]
|
||||||
[ext_resource type="Script" uid="uid://dipvg4uwjv6p2" path="res://scripts/Cooking/Recipe.gd" id="2_f5akq"]
|
[ext_resource type="Script" uid="uid://dipvg4uwjv6p2" path="res://scripts/Cooking/Recipe.gd" id="2_f5akq"]
|
||||||
[ext_resource type="Script" uid="uid://c26aptwsjs044" path="res://scripts/Item/ItemResource.gd" id="3_b8y03"]
|
[ext_resource type="Script" uid="uid://c26aptwsjs044" path="res://scripts/Item/ItemResource.gd" id="3_b8y03"]
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_3dxl6"]
|
[sub_resource type="Resource" id="Resource_3dxl6"]
|
||||||
script = ExtResource("3_b8y03")
|
script = ExtResource("3_b8y03")
|
||||||
itemType = 2
|
itemType = 3
|
||||||
count = 1
|
count = 1
|
||||||
metadata/_custom_type_script = "uid://c26aptwsjs044"
|
metadata/_custom_type_script = "uid://c26aptwsjs044"
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_b8y03"]
|
[sub_resource type="Resource" id="Resource_b8y03"]
|
||||||
script = ExtResource("3_b8y03")
|
script = ExtResource("3_b8y03")
|
||||||
itemType = 1
|
itemType = 4
|
||||||
count = 1
|
count = 1
|
||||||
metadata/_custom_type_script = "uid://c26aptwsjs044"
|
metadata/_custom_type_script = "uid://c26aptwsjs044"
|
||||||
|
|
||||||
[node name="RecipeSystem" type="Node"]
|
[node name="RecipeSystem" type="Node"]
|
||||||
script = ExtResource("1_o4nv4")
|
script = ExtResource("1_o4nv4")
|
||||||
metadata/_custom_type_script = "uid://j87s6jrx8unn"
|
|
||||||
|
|
||||||
[node name="Ash-Baked Sweet Potato" type="Node" parent="."]
|
[node name="Baked Sweet Potato" type="Node" parent="."]
|
||||||
script = ExtResource("2_f5akq")
|
script = ExtResource("2_f5akq")
|
||||||
|
title = "recipe.baked_sweet_potato.title"
|
||||||
ingredients = Array[ExtResource("3_b8y03")]([SubResource("Resource_3dxl6")])
|
ingredients = Array[ExtResource("3_b8y03")]([SubResource("Resource_3dxl6")])
|
||||||
outputs = Array[ExtResource("3_b8y03")]([SubResource("Resource_b8y03")])
|
outputs = Array[ExtResource("3_b8y03")]([SubResource("Resource_b8y03")])
|
||||||
metadata/_custom_type_script = "uid://dipvg4uwjv6p2"
|
metadata/_custom_type_script = "uid://dipvg4uwjv6p2"
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[gd_scene load_steps=7 format=3 uid="uid://b5bwpsh0gcicf"]
|
[gd_scene load_steps=7 format=3 uid="uid://b5bwpsh0gcicf"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://dahhuhiu8u88b" path="res://scripts/Singleton/UI.gd" id="1_g3au4"]
|
[ext_resource type="Script" uid="uid://kvdgrmutu6hl" path="res://scripts/Singleton/UISystem.gd" id="1_g3au4"]
|
||||||
[ext_resource type="PackedScene" uid="uid://verg13jtqwvh" path="res://scenes/UI/DebugMenu.tscn" id="2_is0g4"]
|
[ext_resource type="PackedScene" uid="uid://verg13jtqwvh" path="res://scenes/UI/DebugMenu.tscn" id="2_is0g4"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bfioi52hjn2kf" path="res://scenes/UI/QuestMenu.tscn" id="2_mpokx"]
|
[ext_resource type="PackedScene" uid="uid://bfioi52hjn2kf" path="res://scenes/UI/QuestMenu.tscn" id="2_mpokx"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bkx3l0kckf4a8" path="res://scenes/UI/VNTextbox.tscn" id="3_btpxp"]
|
[ext_resource type="PackedScene" uid="uid://bkx3l0kckf4a8" path="res://scenes/UI/VNTextbox.tscn" id="3_btpxp"]
|
||||||
@@ -16,7 +16,6 @@ grow_horizontal = 2
|
|||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
mouse_filter = 2
|
mouse_filter = 2
|
||||||
script = ExtResource("1_g3au4")
|
script = ExtResource("1_g3au4")
|
||||||
metadata/_custom_type_script = "uid://dahhuhiu8u88b"
|
|
||||||
|
|
||||||
[node name="QuestMenu" parent="." instance=ExtResource("2_mpokx")]
|
[node name="QuestMenu" parent="." instance=ExtResource("2_mpokx")]
|
||||||
visible = false
|
visible = false
|
||||||
|
@@ -1,48 +0,0 @@
|
|||||||
class_name Battle
|
|
||||||
const BattleFighter = preload("res://scripts/Battle/BattleFighter.gd");
|
|
||||||
|
|
||||||
enum FighterPosition {
|
|
||||||
LEFT_TOP = 0,
|
|
||||||
LEFT_CENTER = 1,
|
|
||||||
LEFT_BOTTOM = 2,
|
|
||||||
|
|
||||||
CENTER_TOP = 3,
|
|
||||||
CENTER_CENTER = 4,
|
|
||||||
CENTER_BOTTOM = 5,
|
|
||||||
|
|
||||||
RIGHT_TOP = 6,
|
|
||||||
RIGHT_CENTER = 7,
|
|
||||||
RIGHT_BOTTOM = 8,
|
|
||||||
|
|
||||||
ENEMY_DEFAULT = LEFT_CENTER,
|
|
||||||
PLAYER_DEFAULT = RIGHT_CENTER,
|
|
||||||
};
|
|
||||||
|
|
||||||
var fighters:Array = [];
|
|
||||||
|
|
||||||
func addFighter(fighter:BattleFighter, position:FighterPosition):
|
|
||||||
if fighters.has(position):
|
|
||||||
push_error("Fighter already exists at position");
|
|
||||||
return
|
|
||||||
fighters[position] = fighter;
|
|
||||||
|
|
||||||
func moveFighter(fighter:BattleFighter, position:FighterPosition):
|
|
||||||
if fighters.has(position):
|
|
||||||
push_error("Fighter already exists at position");
|
|
||||||
return
|
|
||||||
if not fighters.has(fighter):
|
|
||||||
push_error("Fighter does not exist");
|
|
||||||
return
|
|
||||||
removeFighter(fighter);
|
|
||||||
addFighter(fighter, position);
|
|
||||||
|
|
||||||
func getFightersOfTeam(team:BattleFighter.BattleFighterTeam):
|
|
||||||
var result = [];
|
|
||||||
for fighter in fighters:
|
|
||||||
if fighter.team != team:
|
|
||||||
continue
|
|
||||||
result.append(fighter);
|
|
||||||
return result;
|
|
||||||
|
|
||||||
func removeFighter(fighter:BattleFighter):
|
|
||||||
fighters.erase(fighter);
|
|
@@ -1 +0,0 @@
|
|||||||
uid://kwijyojokkpm
|
|
@@ -1,10 +0,0 @@
|
|||||||
class_name BattleFighter
|
|
||||||
|
|
||||||
enum BattleFighterTeam {
|
|
||||||
PLAYER,
|
|
||||||
ENEMY
|
|
||||||
};
|
|
||||||
|
|
||||||
var team:BattleFighterTeam;
|
|
||||||
var health:int = 100;
|
|
||||||
var maxHealth:int = 100;
|
|
@@ -1 +0,0 @@
|
|||||||
uid://daksbecm02l3t
|
|
@@ -1,6 +1,11 @@
|
|||||||
class_name Recipe extends Node
|
class_name Recipe extends Node
|
||||||
|
|
||||||
@export var title:String = ""
|
enum Type {
|
||||||
|
BAKED_SWEET_POTATO,
|
||||||
|
}
|
||||||
|
|
||||||
|
@export_multiline var title:String = ""
|
||||||
|
@export var type:Type = Type.BAKED_SWEET_POTATO
|
||||||
@export var ingredients:Array[ItemResource] = []
|
@export var ingredients:Array[ItemResource] = []
|
||||||
@export var outputs:Array[ItemResource] = []
|
@export var outputs:Array[ItemResource] = []
|
||||||
|
|
||||||
|
@@ -1,7 +1,5 @@
|
|||||||
class_name EventPause extends "res://scripts/Event/Event.gd"
|
class_name EventPause extends "res://scripts/Event/Event.gd"
|
||||||
|
|
||||||
const PauseSystem = preload("res://scripts/Singleton/Pause.gd")
|
|
||||||
|
|
||||||
@export var pauseType:PauseSystem.PauseType = PauseSystem.PauseType.ENTITY_PAUSED
|
@export var pauseType:PauseSystem.PauseType = PauseSystem.PauseType.ENTITY_PAUSED
|
||||||
@export var entities:Array[Entity] = []
|
@export var entities:Array[Entity] = []
|
||||||
@export var includeInteractee:bool = true
|
@export var includeInteractee:bool = true
|
||||||
|
@@ -1,9 +0,0 @@
|
|||||||
extends Node
|
|
||||||
|
|
||||||
const Battle = preload("res://scripts/Battle/Battle.gd");
|
|
||||||
|
|
||||||
var battle:Battle = null;
|
|
||||||
|
|
||||||
func startBattle(battle:Battle) -> void:
|
|
||||||
print("start battle");
|
|
||||||
self.battle = battle;
|
|
1
scripts/Singleton/BattleSystem.gd
Normal file
1
scripts/Singleton/BattleSystem.gd
Normal file
@@ -0,0 +1 @@
|
|||||||
|
class_name BattleSystem extends Node
|
@@ -1 +0,0 @@
|
|||||||
extends Node
|
|
1
scripts/Singleton/CookingSystem.gd
Normal file
1
scripts/Singleton/CookingSystem.gd
Normal file
@@ -0,0 +1 @@
|
|||||||
|
class_name CookingSystem extends Node
|
1
scripts/Singleton/EventSystem.gd.uid
Normal file
1
scripts/Singleton/EventSystem.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://dy8gbmwddma3b
|
@@ -1 +0,0 @@
|
|||||||
class_name LoadManager extends Node
|
|
1
scripts/Singleton/LoadSystem.gd
Normal file
1
scripts/Singleton/LoadSystem.gd
Normal file
@@ -0,0 +1 @@
|
|||||||
|
class_name LoadSystem extends Node
|
1
scripts/Singleton/LoadSystem.gd.uid
Normal file
1
scripts/Singleton/LoadSystem.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://07tsn64m0l1y
|
1
scripts/Singleton/LocaleSystem.gd.uid
Normal file
1
scripts/Singleton/LocaleSystem.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://ggg3o3aawvh5
|
@@ -1,4 +1,4 @@
|
|||||||
extends Node
|
class_name OverworldSystem extends Node
|
||||||
|
|
||||||
const MAPS:Dictionary[String, String] = {
|
const MAPS:Dictionary[String, String] = {
|
||||||
"TestMap": "res://scenes/Maps/TestMap/TestMap.tscn"
|
"TestMap": "res://scenes/Maps/TestMap/TestMap.tscn"
|
@@ -1,11 +0,0 @@
|
|||||||
class_name RecipeSystem extends Node
|
|
||||||
|
|
||||||
enum Type {
|
|
||||||
ASH_BAKED_SWEET_POTATO,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func _init() -> void:
|
|
||||||
|
|
||||||
pass
|
|
27
scripts/Singleton/RecipeSystem.gd
Normal file
27
scripts/Singleton/RecipeSystem.gd
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
class_name RecipeSystem extends Node
|
||||||
|
|
||||||
|
var RECIPE_MAP:Dictionary[Recipe.Type, Recipe] = {}
|
||||||
|
|
||||||
|
func _recurseChildren(node:Node) -> void:
|
||||||
|
if node is Recipe:
|
||||||
|
var recipe:Recipe = node as Recipe
|
||||||
|
if recipe.type in RECIPE_MAP:
|
||||||
|
assert(false, "Duplicate recipe type found: " + str(recipe.type))
|
||||||
|
RECIPE_MAP[recipe.type] = recipe
|
||||||
|
else:
|
||||||
|
for child in node.get_children():
|
||||||
|
_recurseChildren(child)
|
||||||
|
|
||||||
|
func _updateRecipes() -> void:
|
||||||
|
RECIPE_MAP = {}
|
||||||
|
_recurseChildren(self)
|
||||||
|
|
||||||
|
func _enter_tree() -> void:
|
||||||
|
_updateRecipes()
|
||||||
|
|
||||||
|
for recipeType in Recipe.Type.values():
|
||||||
|
if !RECIPE_MAP.has(recipeType):
|
||||||
|
assert(false, "Missing recipe type: " + Recipe.Type.find_key(recipeType))
|
||||||
|
|
||||||
|
func _init() -> void:
|
||||||
|
_updateRecipes()
|
1
scripts/Singleton/RecipeSystem.gd.uid
Normal file
1
scripts/Singleton/RecipeSystem.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://b83k8ksk1dpu2
|
@@ -1,4 +1,4 @@
|
|||||||
class_name SceneManager extends Node
|
class_name SceneSystem extends Node
|
||||||
|
|
||||||
const MainMenu = preload("res://scenes/MainMenu.tscn");
|
const MainMenu = preload("res://scenes/MainMenu.tscn");
|
||||||
const OverworldScene = preload("res://scenes/Overworld.tscn");
|
const OverworldScene = preload("res://scenes/Overworld.tscn");
|
1
scripts/Singleton/UISystem.gd.uid
Normal file
1
scripts/Singleton/UISystem.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://kvdgrmutu6hl
|
Reference in New Issue
Block a user