Better and simpler way to represent preferences

This commit is contained in:
2026-01-31 09:12:50 +01:00
parent 3477b89145
commit 311095104b
23 changed files with 114 additions and 95 deletions

View File

@@ -1,12 +1,9 @@
[gd_resource type="Resource" script_class="CharacterResource" format=3 uid="uid://da2ptl3f7h0ot"]
[ext_resource type="Texture2D" uid="uid://c57s3oksagauh" path="res://assets/sprites/sprites by judas la carotte/sprite3 happy small.png" id="1_k1rnw"]
[ext_resource type="Script" uid="uid://djnkk7igqmtk" path="res://scenes/character/preference.gd" id="2_6ktt3"]
[ext_resource type="Resource" uid="uid://grl1yslspjm1" path="res://resources/preferences/racist.tres" id="3_0mgot"]
[ext_resource type="Script" uid="uid://bwam50qxikpw4" path="res://scenes/character/chara_resource.gd" id="3_vvog1"]
[ext_resource type="Resource" uid="uid://dvxdyr2ehxbj2" path="res://resources/preferences/alone.tres" id="4_0mgot"]
[ext_resource type="Script" uid="uid://cya40uohlvgbr" path="res://scenes/character/trait.gd" id="4_0s3fj"]
[ext_resource type="Resource" uid="uid://bdgqquall1x47" path="res://resources/preferences/like_cats.tres" id="5_teajx"]
[ext_resource type="Resource" uid="uid://bc376om20da8m" path="res://resources/traits/royal.tres" id="7_0s3fj"]
[ext_resource type="Resource" uid="uid://cb8jguybr1tlj" path="res://resources/traits/white.tres" id="8_u46dm"]
[ext_resource type="Resource" uid="uid://bvophatys2o1o" path="res://resources/traits/old.tres" id="9_fvshn"]
[ext_resource type="Resource" uid="uid://bmx28vnfhcs8b" path="res://resources/traits/man.tres" id="10_hcmf1"]
@@ -16,6 +13,13 @@ script = ExtResource("3_vvog1")
chara_sprite = ExtResource("1_k1rnw")
mask_eyes_location = Vector2(-7.325, -274.11)
mask_mouth_location = Vector2(-13.425, -173.61)
traits = Array[ExtResource("4_0s3fj")]([ExtResource("8_u46dm"), ExtResource("9_fvshn"), ExtResource("10_hcmf1")])
preferences = Array[ExtResource("2_6ktt3")]([ExtResource("3_0mgot"), ExtResource("4_0mgot"), ExtResource("5_teajx")])
traits = Array[ExtResource("4_0s3fj")]([ExtResource("8_u46dm"), ExtResource("9_fvshn"), ExtResource("10_hcmf1"), ExtResource("7_0s3fj")])
preferences = Dictionary[int, int]({
4: 0,
6: 0,
11: 1,
12: 3,
13: 0,
14: 1
})
metadata/_custom_type_script = "uid://bwam50qxikpw4"

View File

@@ -1,12 +1,9 @@
[gd_resource type="Resource" script_class="CharacterResource" format=3 uid="uid://wq3g1j3l4gl6"]
[ext_resource type="Texture2D" uid="uid://b60pu6ukbobb2" path="res://assets/sprites/sprites by judas la carotte/sprite1 happy small.png" id="1_g8bvo"]
[ext_resource type="Script" uid="uid://djnkk7igqmtk" path="res://scenes/character/preference.gd" id="1_p5paw"]
[ext_resource type="Script" uid="uid://bwam50qxikpw4" path="res://scenes/character/chara_resource.gd" id="2_g8bvo"]
[ext_resource type="Script" uid="uid://cya40uohlvgbr" path="res://scenes/character/trait.gd" id="3_dkw07"]
[ext_resource type="Resource" uid="uid://grl1yslspjm1" path="res://resources/preferences/racist.tres" id="3_wjlcp"]
[ext_resource type="Resource" uid="uid://cvebp8ld1pmjg" path="res://resources/preferences/not_alone.tres" id="4_4ysbx"]
[ext_resource type="Resource" uid="uid://blr3mul2ugive" path="res://resources/preferences/love_cats.tres" id="5_0fq6i"]
[ext_resource type="Resource" uid="uid://bc376om20da8m" path="res://resources/traits/royal.tres" id="8_d1164"]
[ext_resource type="Resource" uid="uid://bvophatys2o1o" path="res://resources/traits/old.tres" id="8_j0xhd"]
[ext_resource type="Resource" uid="uid://cb8jguybr1tlj" path="res://resources/traits/white.tres" id="9_aywjr"]
[ext_resource type="Resource" uid="uid://dmd7gilnmcefr" path="res://resources/traits/woman.tres" id="10_tw1u2"]
@@ -17,6 +14,13 @@ script = ExtResource("2_g8bvo")
chara_sprite = ExtResource("1_g8bvo")
mask_eyes_location = Vector2(-45.45, -247.75)
mask_mouth_location = Vector2(-39.935, -169.95)
traits = Array[ExtResource("3_dkw07")]([ExtResource("8_j0xhd"), ExtResource("9_aywjr"), ExtResource("10_tw1u2"), ExtResource("11_utmh4")])
preferences = Array[ExtResource("1_p5paw")]([ExtResource("3_wjlcp"), ExtResource("4_4ysbx"), ExtResource("5_0fq6i")])
traits = Array[ExtResource("3_dkw07")]([ExtResource("9_aywjr"), ExtResource("8_j0xhd"), ExtResource("10_tw1u2"), ExtResource("8_d1164"), ExtResource("11_utmh4")])
preferences = Dictionary[int, int]({
5: 2,
6: 0,
9: 2,
11: 3,
12: 0,
14: 3
})
metadata/_custom_type_script = "uid://bwam50qxikpw4"

View File

@@ -1,8 +0,0 @@
[gd_resource type="Resource" script_class="Preference" format=3 uid="uid://dvxdyr2ehxbj2"]
[ext_resource type="Script" uid="uid://djnkk7igqmtk" path="res://scenes/character/preference.gd" id="1_m8124"]
[resource]
script = ExtResource("1_m8124")
name = "alone"
metadata/_custom_type_script = "uid://djnkk7igqmtk"

View File

@@ -1,10 +0,0 @@
[gd_resource type="Resource" script_class="Preference" format=3 uid="uid://bdgqquall1x47"]
[ext_resource type="Script" uid="uid://djnkk7igqmtk" path="res://scenes/character/preference.gd" id="1_q3e0e"]
[resource]
script = ExtResource("1_q3e0e")
name = "like_cats"
trait_name = "cats"
preference = 1
metadata/_custom_type_script = "uid://djnkk7igqmtk"

View File

@@ -1,9 +0,0 @@
[gd_resource type="Resource" script_class="Preference" format=3 uid="uid://blr3mul2ugive"]
[ext_resource type="Script" uid="uid://djnkk7igqmtk" path="res://scenes/character/preference.gd" id="1_1f367"]
[resource]
script = ExtResource("1_1f367")
name = "love_cats"
trait_name = "cats"
metadata/_custom_type_script = "uid://djnkk7igqmtk"

View File

@@ -1,9 +0,0 @@
[gd_resource type="Resource" script_class="Preference" format=3 uid="uid://cvebp8ld1pmjg"]
[ext_resource type="Script" uid="uid://djnkk7igqmtk" path="res://scenes/character/preference.gd" id="1_pixtt"]
[resource]
script = ExtResource("1_pixtt")
name = "not_alone"
preference = 4
metadata/_custom_type_script = "uid://djnkk7igqmtk"

View File

@@ -1,10 +0,0 @@
[gd_resource type="Resource" script_class="Preference" format=3 uid="uid://grl1yslspjm1"]
[ext_resource type="Script" uid="uid://djnkk7igqmtk" path="res://scenes/character/preference.gd" id="1_rwogu"]
[resource]
script = ExtResource("1_rwogu")
name = "racist"
trait_name = "black"
preference = 3
metadata/_custom_type_script = "uid://djnkk7igqmtk"

View File

@@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="Trait" format=3 uid="uid://cefwc4j3p7m3v"]
[ext_resource type="Script" uid="uid://cya40uohlvgbr" path="res://scenes/character/trait.gd" id="1_hu4qv"]
[resource]
script = ExtResource("1_hu4qv")
name = "black"
stimulis = Array[int]([0])
category = 3
tags = Array[int]([9])
metadata/_custom_type_script = "uid://cya40uohlvgbr"

View File

@@ -5,6 +5,7 @@
[resource]
script = ExtResource("1_ca15b")
name = "man"
stimulis = Array[int]([0])
tags = Array[String](["gender"])
stimulis = Array[int]([0, 1])
category = 1
tags = Array[int]([3])
metadata/_custom_type_script = "uid://cya40uohlvgbr"

View File

@@ -6,5 +6,5 @@
script = ExtResource("1_70ur6")
name = "old"
stimulis = Array[int]([1, 2])
tags = Array[String](["age"])
tags = Array[int]([2])
metadata/_custom_type_script = "uid://cya40uohlvgbr"

View File

@@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="Trait" format=3 uid="uid://exoxxj84dvsf"]
[ext_resource type="Script" uid="uid://cya40uohlvgbr" path="res://scenes/character/trait.gd" id="1_7inbg"]
[resource]
script = ExtResource("1_7inbg")
name = "peasant"
stimulis = Array[int]([0])
category = 2
tags = Array[int]([8])
metadata/_custom_type_script = "uid://cya40uohlvgbr"

View File

@@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="Trait" format=3 uid="uid://bc376om20da8m"]
[ext_resource type="Script" uid="uid://cya40uohlvgbr" path="res://scenes/character/trait.gd" id="1_iabmh"]
[resource]
script = ExtResource("1_iabmh")
name = "royal"
stimulis = Array[int]([0])
category = 2
tags = Array[int]([6])
metadata/_custom_type_script = "uid://cya40uohlvgbr"

View File

@@ -6,5 +6,6 @@
script = ExtResource("1_exp1s")
name = "speaks_of_cats"
stimulis = Array[int]([1])
tags = Array[String](["talks_a_lot", "social", "cats"])
category = 4
tags = Array[int]([12])
metadata/_custom_type_script = "uid://cya40uohlvgbr"

View File

@@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="Trait" format=3 uid="uid://dy3wgs61t2gx5"]
[ext_resource type="Script" uid="uid://cya40uohlvgbr" path="res://scenes/character/trait.gd" id="1_o8usb"]
[resource]
script = ExtResource("1_o8usb")
name = "speaks_of_dogs"
stimulis = Array[int]([1])
category = 4
tags = Array[int]([13])
metadata/_custom_type_script = "uid://cya40uohlvgbr"

View File

@@ -6,5 +6,6 @@
script = ExtResource("1_yr2j7")
name = "white"
stimulis = Array[int]([0])
tags = Array[String](["race"])
category = 3
tags = Array[int]([10])
metadata/_custom_type_script = "uid://cya40uohlvgbr"

View File

@@ -5,6 +5,7 @@
[resource]
script = ExtResource("1_yihyr")
name = "woman"
stimulis = Array[int]([0, 2])
tags = Array[String](["gender"])
stimulis = Array[int]([0, 1])
category = 1
tags = Array[int]([4])
metadata/_custom_type_script = "uid://cya40uohlvgbr"

View File

@@ -0,0 +1,10 @@
[gd_resource type="Resource" script_class="Trait" format=3 uid="uid://blu5de2dhiu46"]
[ext_resource type="Script" uid="uid://cya40uohlvgbr" path="res://scenes/character/trait.gd" id="1_msbkw"]
[resource]
script = ExtResource("1_msbkw")
name = "young"
stimulis = Array[int]([1, 2])
tags = Array[int]([0])
metadata/_custom_type_script = "uid://cya40uohlvgbr"

View File

@@ -3,6 +3,13 @@ extends Resource
class_name CharacterResource
enum Preference {
LOVE,
APPROVE,
DISAPPROVE,
HATE
}
@export var chara_sprite: Texture2D:
set(value):
chara_sprite = value
@@ -20,4 +27,4 @@ class_name CharacterResource
@export_category("Traits and preferences")
@export var traits: Array[Trait]
@export var preferences: Array[Preference]
@export var preferences: Dictionary[Trait.Tag, Preference]

View File

@@ -1,14 +0,0 @@
extends Resource
class_name Preference
enum Pref {
LOVE,
APPROVE,
DONT_CARE,
DISAPPROVE,
HATE
}
@export var name: String
@export var trait_name: String
@export var preference: Pref

View File

@@ -1 +0,0 @@
uid://djnkk7igqmtk

View File

@@ -1,11 +0,0 @@
extends Resource
class_name TagResource
enum Stimuli {
VISION,
SPEAKING,
HEARING
}
@export var name: String
@export var stimulis: Array[Stimuli]

View File

@@ -1 +0,0 @@
uid://837kteb5ihhm

View File

@@ -1,16 +1,35 @@
extends Resource
class_name Trait
enum Stimuli {
VISION,
SOUND,
SMELL
}
enum Category {
AGE,
GENDER,
SOCIAL_CLASS,
RACE,
ANIMALS,
SOCIABILITY,
OTHER
}
enum Tag {
YOUNG, MIDDLE_AGED, OLD,
MAN, WOMAN, ENBY,
ROYAL, NOBLE, PEASANT,
BLACK, WHITE, ALIEN,
CAT, DOG,
ALONE, NOT_ALONE
}
@export var name : String
@export var stimulis : Array[Stimuli]
@export var tags : Array[String]
@export var category : Category
@export var tag : Tag
# Called when the node enters the scene tree for the first time.