region names and types

This commit is contained in:
Altaezio
2026-07-11 19:01:29 +02:00
parent cb5a2421ae
commit 378b0fbcf0
10 changed files with 221 additions and 20 deletions
@@ -45,7 +45,7 @@ func update_noise() -> void:
var noise := FastNoiseLite.new()
noise.noise_type = FastNoiseLite.TYPE_CELLULAR
noise.seed = region.data.region_name.hash() + region.data.charges
noise.seed = region.data.get_region_name().hash() + region.data.charges
texture.noise = noise
@@ -18,10 +18,10 @@ extends Node
@export var region : Region
func _ready():
meteo = Meteo.new(region.data.region_name.hash() + region.data.charges)
meteo = Meteo.new(region.data.get_region_name().hash() + region.data.charges)
region.data.pass_day_proceeded.connect(
func(data : RegionData):
meteo = Meteo.new(data.region_name.hash() + data.charges)
meteo = Meteo.new(data.get_region_name().hash() + data.charges)
wind_particles.restart()
)
+13 -3
View File
@@ -16,7 +16,8 @@ const START_ROCK_HOLE_RADIUS = 0
const PLAYER_ROCK_HOLE_RADIUS = 5
@export var region_seed : int
@export var region_name : String
@export var region_first_name : String
@export var region_name_key : String
@export var rock_threshold : float
@export var decontamination_threshold : float
@@ -67,7 +68,8 @@ func _init(
if parameter:
charges = parameter.get_charge()
objective = parameter.get_objective()
region_name = parameter.get_region_name()
region_first_name = parameter.region_first_name;
region_name_key = parameter.region_name_key;
region_seed = parameter.get_region_seed()
rock_threshold = parameter.get_rock_threshold()
decontamination_threshold = parameter.get_decontamination_threshold()
@@ -101,7 +103,15 @@ func update():
failed.emit()
updated.emit(self)
#endregion
func get_region_name() -> String:
var n := region_first_name
if region_name_key != "":
n = tr(region_name_key).format({"name": region_first_name})
for m in modifiers:
n = m.modify_region_name(n)
return n
#region ------------------ Score ------------------
@@ -5,28 +5,60 @@ const DEFAULT_ROCK_THRESHOLD = 0.3
const DEFAULT_DECONTAMINATION_THRESHOLD = 0.3
const DEFAULT_CRISTAL_THRESHOLD = 0.1
const DEFAULT_CHARGE = 10
const DEFAULT_TALION_CELL_CHANCE : Array[int] = [0,0,0,1,1]
const DEFAULT_ENERGY_CELL_CHANCE : Array[int] = [1,2,2,2,3]
const DEFAULT_TALION_CELL_CHANCE: Array[int] = [0, 0, 0, 1, 1]
const DEFAULT_ENERGY_CELL_CHANCE: Array[int] = [1, 2, 2, 2, 3]
const DEFAULT_START_DECONTAMINATION_ZONE_RADIUS = 3
const DEFAULT_SEED_RARITY_POOL: Array[int] = [-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,1]
const DEFAULT_SEED_RARITY_POOL: Array[int] = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
@export var region_name : String
@export var objective : int
@export var charge : int
@export var region_seed : int
@export var modifiers : Array[RegionModifier]
const JUST_NAME_PROBABILITY := 0.3
const REGION_TYPES_CSV := "res://translation/names/location_types.csv"
const REGION_NAMES_FILE := "res://translation/names/location_names.csv"
@export var region_first_name: String
@export var region_name_key: String
@export var objective: int
@export var charge: int
@export var region_seed: int
@export var modifiers: Array[RegionModifier]
func _init(
_name = Random.generate_random_word(),
_modifiers : Array[RegionModifier] = [],
_name = "",
_modifiers: Array[RegionModifier] = [],
_region_seed = randi(),
):
region_name = _name
set_random_region_name()
modifiers = _modifiers
region_seed = _region_seed
func get_random_region_first_name() -> String:
var name_file := FileAccess.open(REGION_NAMES_FILE, FileAccess.READ)
var n_names := name_file.get_line().to_int()
var name_ind := randi_range(0, n_names)
var first_name := name_file.get_line()
for i in range(name_ind):
first_name = name_file.get_line()
return first_name
func get_random_region_name_key() -> String:
var place_file := FileAccess.open(REGION_TYPES_CSV, FileAccess.READ)
var n_places := place_file.get_line().split(",")[0].to_int()
var place_ind := randi_range(0, n_places)
var place_key := place_file.get_line().split(",")[0]
for i in range(place_ind):
place_key = place_file.get_line().split(",")[0]
return place_key
func set_random_region_name():
region_first_name = get_random_region_first_name()
if randf() > JUST_NAME_PROBABILITY:
region_name_key = get_random_region_name_key()
else:
region_name_key = ""
func get_region_name() -> String:
var n := region_name
var n := region_first_name
if region_name_key != "":
n = tr(region_name_key).format({"name": region_first_name})
for m in modifiers:
n = m.modify_region_name(n)