9 Commits

Author SHA1 Message Date
b4a2bb6144 biome generation optimization 2026-05-14 12:29:41 +02:00
90b9739ee0 Merge branch 'main' of https://gitea.jmpgames.it/jmp-games/tgcc 2026-05-13 18:15:58 +02:00
43556ac110 add uniqueness par for props 2026-05-13 18:15:37 +02:00
7ea515c824 Merge branch 'polish3' into main 2026-05-13 15:50:14 +00:00
4658250206 fix 2026-05-13 17:05:29 +02:00
c25e3bb4f6 add uniqueness property to chunk and manage it on biome generator 2026-05-13 12:25:16 +02:00
Matteo Sonaglioni
c796ea289d well 2026-05-12 16:54:20 +02:00
Matteo Sonaglioni
a18dc64a4f prop1 2026-05-12 16:44:21 +02:00
c52b11388a add chunks
chunk river
hero chunk
2026-05-11 13:32:31 +00:00
62 changed files with 4403 additions and 290 deletions

View File

@@ -4,9 +4,20 @@ const CHUNK_TYPE_BIOME: int = 0
const CHUNK_TYPE_STRAIGHT_TRACK: int = 1
const CHUNK_TYPE_CURVED_TRACK: int = 2
const CHUNK_GENERATION_STEPS_PER_FRAME: int = 2
const CHUNK_CLEANUP_STEPS_PER_FRAME: int = 4
const LAMPPOST_WIRE_STEPS_PER_FRAME: int = 1
const CHUNK_GENERATION_FRAME_BUDGET_USEC: int = 2000 #2 ms/frame to generate chunks
const CHUNK_CLEANUP_FRAME_BUDGET_USEC: int = 1000 #1 ms/frame per cleanup
const LAMPPOST_WIRE_FRAME_BUDGET_USEC: int = 1000 #1 ms/frame per i fili dei lampioni
#(about 4 ms o work for frame)
#Se compaiono chunk troppo lentamente davanti al treno:
#aumentare generazione a 3000 o 4000
#Se ci sono micro-scatti:
#abbassare generazione a 1000 o 1500
#Se i fili appaiono in ritardo:
#aumentare wire a 1500 o 2000
#Se il cleanup causa scatti:
#abbassare cleanup a 500
const MAX_CHUNK_UNIQUENESS: int = 5
const RAILWAY_SCENE_DIRECTORY: String = "res://tgcc/chunk/railway/scene"
const RIVER_SIDE_ORDER: Array[String] = ["north", "est", "south", "west"]
const RIVER_DIRECTIONS: Dictionary = {
@@ -23,33 +34,36 @@ const RIVER_NEIGHBOUR_OFFSETS: Dictionary = {
}
@export_group("Rails")
@export var rail_path: Path3D
@export var rail_path: Path3D #rail path
@export_group("Biomes")
@export var biome_list: Array[Biome]
@export var biome_list: Array[Biome] #list of scenes for the biome
@export_group("Grid and Area")
@export var chunk_size: float = 20.0
@export var eye_line: int = 3
@export var district_scale: float = 0.05
@export var chunk_size: float = 20.0 #size of a cell; default 20 (global position is defined dividing x and z for this value)
@export var eye_line: int = 3 #cells to be considerated around the train (e.g. 3 => a square of cells from -3 to 3 around train cell)
@export var district_scale: float = 0.05 #noise value to distribuite biome; low values create large area, high values create biome with more variants
@export_group("Lamppost")
@export var lamppost_wire_material: ShaderMaterial
@export_range(0.01, 1.0) var wire_thickness: float = 0.05
@export var lamppost_dist_factor: int = 10
@export var lamppost_dist_factor: int = 10 #max distance of connections
var board: Dictionary = {}
var last_pos_train: Vector2i = Vector2i(999999, 999999)
var noise_generator: FastNoiseLite
var altitude_generator: FastNoiseLite
var wire_connections: Dictionary = {}
var chunk_candidate_cache: Dictionary = {}
var chunk_candidate_cache: Dictionary = {} #node cache (metadata)
var prop_candidate_cache: Dictionary = {}
var pending_generation_cells: Array[Vector2i] = []
var pending_cleanup_cells: Array[Vector2i] = []
var pending_wire_cells: Array[Vector2i] = []
var pending_generation_cursor: int = 0
var pending_cleanup_cursor: int = 0
var pending_wire_cursor: int = 0
var pending_wire_lookup: Dictionary = {}
var pending_radar_update: bool = false
var rail_chunk_catalogue: Dictionary = {}
var rail_chunk_catalogue: Dictionary = {} #rails chunk list
var manual_biome: Biome = null
@@ -58,7 +72,8 @@ func _ready() -> void:
#connect events
UIEvents.update_rail_chunks.connect(_update_rail_chunks)
#noise generator for biome and altitute
noise_generator = FastNoiseLite.new()
noise_generator.noise_type = FastNoiseLite.TYPE_PERLIN
noise_generator.seed = randi()
@@ -69,8 +84,10 @@ func _ready() -> void:
altitude_generator.seed = randi()
altitude_generator.frequency = district_scale * 0.5
#fill cache with available chunk
_warm_chunk_candidate_cache()
_warm_rail_chunk_catalogue()
#set unique pieces
_update_set_pieces()
func _update_set_pieces() -> void:
@@ -85,7 +102,7 @@ func _update_set_pieces() -> void:
var local_biome = ""
if manual_biome != null:
local_biome = manual_biome.nome
local_biome = manual_biome.name
else:
var grid_x = roundi(sp.global_position.x / chunk_size)
var grid_z = roundi(sp.global_position.z / chunk_size)
@@ -111,7 +128,7 @@ func _destroy_and_regenrate_world() -> void:
#Destroy all models
for pos in board.keys():
var cella = board[pos]
if cella["type"] != "obstacle":
if not _is_persistent_obstacle(cella):
if cella.has("node") and is_instance_valid(cella["node"]):
cella["node"].queue_free()
@@ -125,16 +142,13 @@ func _destroy_and_regenrate_world() -> void:
var train_pos = rail_path.train_instance.global_position
var current_pos = Vector2i(roundi(train_pos.x / chunk_size), roundi(train_pos.z / chunk_size))
_refresh_world(current_pos)
pending_radar_update = true
func _process(_delta: float) -> void:
#based on time budgets the queues are evaluated by frame and not all together
_drain_cleanup_queue()
_drain_generation_queue()
_drain_wire_queue()
if pending_radar_update:
pending_radar_update = false
func _physics_process(_delta: float) -> void:
if rail_path == null or rail_path.train_instance == null: return
@@ -146,7 +160,6 @@ func _physics_process(_delta: float) -> void:
if current_pos != last_pos_train:
last_pos_train = current_pos
_refresh_world(current_pos)
pending_radar_update = true
func collect_all_chunkinfo(root: Node, list: Array[Node]) -> void:
if root == null: return
@@ -157,6 +170,15 @@ func collect_all_chunkinfo(root: Node, list: Array[Node]) -> void:
for child in root.get_children():
collect_all_chunkinfo(child, list)
func collect_all_propinfo(root: Node, list: Array[Node]) -> void:
if root == null: return
if "available_props" in root:
list.append(root)
for child in root.get_children():
collect_all_propinfo(child, list)
func _warm_chunk_candidate_cache() -> void:
var unique_scenes: Dictionary = {}
@@ -239,6 +261,7 @@ func _get_chunk_scene_metadata(scene: PackedScene) -> Dictionary:
"info_path": info_path,
"rotations": rotations,
"has_lamppost": "have_lamppost" in info_node and info_node.have_lamppost,
"uniqueness": _get_chunk_uniqueness_from_info(info_node),
}
preview_chunk.queue_free()
chunk_candidate_cache[key] = metadata
@@ -272,8 +295,10 @@ func _clear_pending_world_work() -> void:
pending_generation_cells.clear()
pending_cleanup_cells.clear()
pending_wire_cells.clear()
pending_generation_cursor = 0
pending_cleanup_cursor = 0
pending_wire_cursor = 0
pending_wire_lookup.clear()
pending_radar_update = false
func _collect_replaceable_rail_chunks(root: Node, result: Array[Node3D]) -> void:
if root == null:
@@ -340,6 +365,8 @@ func _replace_rail_chunk_instance(chunk_root: Node3D) -> bool:
chunk_root.queue_free()
return true
#rebuild the scene catalogue from res://tgcc/chunk/railway/scene,
#than serach on the current scene which chunks can be changed and for each one chose a new scene (the same kind)
func _refresh_rail_chunks() -> void:
print("update rail chunks")
_warm_rail_chunk_catalogue()
@@ -367,8 +394,12 @@ func _refresh_world(center: Vector2i) -> void:
_rebuild_generation_queue(center)
_rebuild_cleanup_queue(center)
#check cells around the train by rings:
#first the center, then borders with distance = 1, the distance = 2 and so to eye_line.
#Use maxi(abs(x), abs(z)) to know the border of the ring. Cells closest to the train have more priority
func _rebuild_generation_queue(center: Vector2i) -> void:
pending_generation_cells.clear()
pending_generation_cursor = 0
for radius in range(eye_line + 1):
for x in range(-radius, radius + 1):
@@ -381,13 +412,17 @@ func _rebuild_generation_queue(center: Vector2i) -> void:
continue
pending_generation_cells.append(grid_pos)
#For each cells add to cleanup queue the cells too far
#Use eye_line plus a margin value to hide chunks not instantly when go out of the eye line
#Persistent obstacle cells are not deleted (rails or set_pieces)
func _rebuild_cleanup_queue(center: Vector2i) -> void:
pending_cleanup_cells.clear()
pending_cleanup_cursor = 0
var safe_margin = 2
for grid_pos in board.keys():
var cell = board[grid_pos]
if cell["type"] == "obstacle":
if _is_persistent_obstacle(cell):
continue
var dist_x = abs(grid_pos.x - center.x)
@@ -395,10 +430,16 @@ func _rebuild_cleanup_queue(center: Vector2i) -> void:
if dist_x > eye_line + safe_margin or dist_z > eye_line + safe_margin:
pending_cleanup_cells.append(grid_pos)
#Check if a queue can continue to work based on time budget setted
func _queue_has_frame_budget(start_usec: int, budget_usec: int, processed: int) -> bool:
return processed == 0 or Time.get_ticks_usec() - start_usec < budget_usec
func _drain_generation_queue() -> void:
var processed = 0
while processed < CHUNK_GENERATION_STEPS_PER_FRAME and not pending_generation_cells.is_empty():
var grid_pos = pending_generation_cells.pop_front()
var processed: int = 0
var start_usec: int = Time.get_ticks_usec()
while pending_generation_cursor < pending_generation_cells.size() and _queue_has_frame_budget(start_usec, CHUNK_GENERATION_FRAME_BUDGET_USEC, processed):
var grid_pos: Vector2i = pending_generation_cells[pending_generation_cursor]
pending_generation_cursor += 1
if board.has(grid_pos):
continue
@@ -407,15 +448,21 @@ func _drain_generation_queue() -> void:
_add_compatible_biome(grid_pos)
processed += 1
if pending_generation_cursor >= pending_generation_cells.size():
pending_generation_cells.clear()
pending_generation_cursor = 0
func _drain_cleanup_queue() -> void:
var processed = 0
while processed < CHUNK_CLEANUP_STEPS_PER_FRAME and not pending_cleanup_cells.is_empty():
var grid_pos = pending_cleanup_cells.pop_front()
var processed: int = 0
var start_usec: int = Time.get_ticks_usec()
while pending_cleanup_cursor < pending_cleanup_cells.size() and _queue_has_frame_budget(start_usec, CHUNK_CLEANUP_FRAME_BUDGET_USEC, processed):
var grid_pos: Vector2i = pending_cleanup_cells[pending_cleanup_cursor]
pending_cleanup_cursor += 1
if not board.has(grid_pos):
continue
var cell = board[grid_pos]
if cell["type"] == "obstacle":
if _is_persistent_obstacle(cell):
continue
if cell.has("node") and is_instance_valid(cell["node"]):
@@ -423,6 +470,10 @@ func _drain_cleanup_queue() -> void:
board.erase(grid_pos)
processed += 1
if pending_cleanup_cursor >= pending_cleanup_cells.size():
pending_cleanup_cells.clear()
pending_cleanup_cursor = 0
func _queue_lamppost_wire_connection(grid_pos: Vector2i) -> void:
if pending_wire_lookup.has(grid_pos):
return
@@ -430,9 +481,11 @@ func _queue_lamppost_wire_connection(grid_pos: Vector2i) -> void:
pending_wire_cells.append(grid_pos)
func _drain_wire_queue() -> void:
var processed = 0
while processed < LAMPPOST_WIRE_STEPS_PER_FRAME and not pending_wire_cells.is_empty():
var grid_pos = pending_wire_cells.pop_front()
var processed: int = 0
var start_usec: int = Time.get_ticks_usec()
while pending_wire_cursor < pending_wire_cells.size() and _queue_has_frame_budget(start_usec, LAMPPOST_WIRE_FRAME_BUDGET_USEC, processed):
var grid_pos: Vector2i = pending_wire_cells[pending_wire_cursor]
pending_wire_cursor += 1
pending_wire_lookup.erase(grid_pos)
if not board.has(grid_pos):
@@ -443,6 +496,10 @@ func _drain_wire_queue() -> void:
_connect_lamppost_wires(grid_pos)
processed += 1
if pending_wire_cursor >= pending_wire_cells.size():
pending_wire_cells.clear()
pending_wire_cursor = 0
func _generate_pieces_around_train(center: Vector2i) -> void:
for x in range(-eye_line, eye_line + 1):
for z in range(-eye_line, eye_line + 1):
@@ -453,6 +510,8 @@ func _generate_pieces_around_train(center: Vector2i) -> void:
if not ce_obstacle:
_add_compatible_biome(grid_pos)
#Decice which catalogue of chunks use for a cell. If manual_biome is set use always it
#Otherwise read noise_generator.get_noise_2d to give an index for biome_list
func _choose_catalogue_by_cell(grid_pos: Vector2i) -> Array[PackedScene]:
if manual_biome != null:
return manual_biome.available_chunks
@@ -470,6 +529,143 @@ func _get_procedural_biome_name(value: float) -> String:
var index = clamp(int(normalized_value * biome_list.size()), 0, biome_list.size() - 1)
return biome_list[index].name
func _get_chunk_uniqueness_from_info(info_node: Node) -> int:
if info_node != null and "uniqueness" in info_node:
return clampi(info_node.uniqueness, 0, MAX_CHUNK_UNIQUENESS)
return 0
func _get_prop_uniqueness_from_info(info_node: Node) -> int:
if info_node != null and "uniqueness" in info_node:
return clampi(info_node.uniqueness, 0, MAX_CHUNK_UNIQUENESS)
return -1
func _is_persistent_obstacle(cell: Dictionary) -> bool:
return cell.get("type", "") == "obstacle" and cell.get("persistent", true)
func _has_nearby_unique_chunk(grid_pos: Vector2i, uniqueness: int) -> bool:
if uniqueness <= 0:
return false
for nearby_pos in board.keys():
var nearby_uniqueness = int(board[nearby_pos].get("uniqueness", 0))
if nearby_uniqueness <= 0:
continue
var min_distance = maxi(uniqueness, nearby_uniqueness)
var dist_x = abs(nearby_pos.x - grid_pos.x)
var dist_z = abs(nearby_pos.y - grid_pos.y)
if dist_x <= min_distance and dist_z <= min_distance:
return true
return false
func _get_uniqueness_pick_weight(uniqueness: int) -> float:
return 1.0 / pow(float(uniqueness + 1), 2.0)
func _pick_weighted_candidate(candidates: Array) -> Dictionary:
var total_weight = 0.0
for candidate in candidates:
total_weight += candidate.weight
if total_weight <= 0.0:
return candidates.pick_random()
var target_weight = randf() * total_weight
var current_weight = 0.0
for candidate in candidates:
current_weight += candidate.weight
if current_weight >= target_weight:
return candidate
return candidates.back()
func _pick_backup_scene(zone_catalogue: Array[PackedScene], grid_pos: Vector2i) -> PackedScene:
for scene in zone_catalogue:
var metadata = _get_chunk_scene_metadata(scene)
var uniqueness = int(metadata.get("uniqueness", 0))
if not _has_nearby_unique_chunk(grid_pos, uniqueness):
return scene
return zone_catalogue[0]
func _get_prop_scene_cache_key(scene: PackedScene) -> String:
if scene == null:
return ""
if scene.resource_path != "":
return scene.resource_path
return "prop_scene_%s" % scene.get_instance_id()
func _get_prop_scene_uniqueness(scene: PackedScene) -> int:
if scene == null:
return -1
var key = _get_prop_scene_cache_key(scene)
if prop_candidate_cache.has(key):
return prop_candidate_cache[key]
var preview_prop = scene.instantiate()
var uniqueness = _get_prop_uniqueness_from_info(preview_prop)
if uniqueness == -1:
var prop_info_list: Array[Node] = []
collect_all_propinfo(preview_prop, prop_info_list)
if not prop_info_list.is_empty():
uniqueness = _get_prop_uniqueness_from_info(prop_info_list[0])
preview_prop.queue_free()
prop_candidate_cache[key] = uniqueness
return uniqueness
func _get_marker_prop_uniqueness(marker: Node) -> int:
var uniqueness = _get_prop_uniqueness_from_info(marker)
if uniqueness == -1:
return 0
return uniqueness
func _pick_weighted_prop_scene(marker: Node) -> PackedScene:
var candidates = []
var fallback_uniqueness = _get_marker_prop_uniqueness(marker)
for prop_scene in marker.available_props:
if prop_scene == null:
continue
var uniqueness = _get_prop_scene_uniqueness(prop_scene)
if uniqueness == -1:
uniqueness = fallback_uniqueness
candidates.append({
"scene": prop_scene,
"weight": _get_uniqueness_pick_weight(uniqueness),
"uniqueness": uniqueness
})
if candidates.is_empty():
return null
return _pick_weighted_candidate(candidates).scene
func _spawn_props_for_chunk(root: Node) -> void:
var prop_markers: Array[Node] = []
collect_all_propinfo(root, prop_markers)
for marker in prop_markers:
_spawn_prop_for_marker(marker)
func _spawn_prop_for_marker(marker: Node) -> void:
if marker.available_props.is_empty():
return
var prop_scene = _pick_weighted_prop_scene(marker)
if prop_scene == null:
return
var prop_instance = prop_scene.instantiate()
var prop_node = prop_instance as Node3D
if prop_node == null:
prop_instance.queue_free()
return
marker.add_child(prop_node)
prop_node.transform = Transform3D.IDENTITY
#Using a vertical raycast from the top to the bottom at the center of the cell
#If there is a collision search for a new chunk node
func _register_cell_with_ray(grid_pos: Vector2i) -> bool:
if board.has(grid_pos): return true
@@ -517,6 +713,7 @@ func _register_cell_with_ray(grid_pos: Vector2i) -> bool:
var river_exit_found = {"north": false, "est": false, "south": false, "west": false}
var height_found = {"north": 0, "est": 0, "south": 0, "west": 0}
var have_lamppost = false
var uniqueness = 0
#Get node info
if right_info_node != null:
@@ -530,6 +727,8 @@ func _register_cell_with_ray(grid_pos: Vector2i) -> bool:
if "have_lamppost" in right_info_node:
have_lamppost = right_info_node.have_lamppost
uniqueness = _get_chunk_uniqueness_from_info(right_info_node)
#Add piece to the grid
board[grid_pos] = {
"type": "obstacle",
@@ -538,7 +737,9 @@ func _register_cell_with_ray(grid_pos: Vector2i) -> bool:
"heights": height_found,
"node": root_chunk,
"info": right_info_node,
"have_lamppost": have_lamppost
"have_lamppost": have_lamppost,
"uniqueness": uniqueness,
"persistent": true
}
if have_lamppost:
@@ -547,6 +748,11 @@ func _register_cell_with_ray(grid_pos: Vector2i) -> bool:
return true
return false
#For the cell to fill check the contrains for the four neighbors:
#If the neighbor at north have and exit on south then new chunk should have exit to north (the same for east and ovest)
#Contrains: 1 -> connection is mandatory; 0 -> no connection; -1 -> no contrain because there is no neighbor or it already exits
#When generator know the contrains take all chunks and try all different rotations
#A candidate is valid only if all contrains are correct
func _add_compatible_biome(grid_pos: Vector2i) -> void:
var req_conn_north = _needed_connection(grid_pos + Vector2i(0, -1), "south")
var req_conn_est = _needed_connection(grid_pos + Vector2i(1, 0), "west")
@@ -579,6 +785,9 @@ func _add_compatible_biome(grid_pos: Vector2i) -> void:
var u_conn = data["connections"]
var u_river_conn = data["river_connections"]
var u_height = data["heights"]
var uniqueness = int(metadata.get("uniqueness", 0))
if _has_nearby_unique_chunk(grid_pos, uniqueness):
continue
var match_conn_n = (req_conn_north == -1) or ((req_conn_north == 1) == u_conn["north"])
var match_conn_e = (req_conn_est == -1) or ((req_conn_est == 1) == u_conn["est"])
@@ -607,7 +816,14 @@ func _add_compatible_biome(grid_pos: Vector2i) -> void:
if req_height_south == -1 and u_height["south"] == height_target: score += 1
if req_height_west == -1 and u_height["west"] == height_target: score += 1
valid_candidates.append({"scene": scene, "rotation": rot, "data": data, "score": score})
valid_candidates.append({
"scene": scene,
"rotation": rot,
"data": data,
"score": score,
"weight": _get_uniqueness_pick_weight(uniqueness),
"uniqueness": uniqueness
})
if valid_candidates.size() > 0:
var max_score = -1
@@ -618,11 +834,12 @@ func _add_compatible_biome(grid_pos: Vector2i) -> void:
for c in valid_candidates:
if c.score == max_score: best_candidate.append(c)
var choise = best_candidate.pick_random()
var choise = _pick_weighted_candidate(best_candidate)
var new_chunk = choise.scene.instantiate()
new_chunk.position = Vector3(grid_pos.x * chunk_size, 0, grid_pos.y * chunk_size)
new_chunk.rotation.y = choise.rotation * (-PI / 2.0)
add_child(new_chunk)
_spawn_props_for_chunk(new_chunk)
var info_new = _get_cached_chunk_info(new_chunk, choise.scene)
@@ -634,25 +851,29 @@ func _add_compatible_biome(grid_pos: Vector2i) -> void:
_apply_river_flow_direction(new_chunk, river_flow_direction)
board[grid_pos] = {
"type": "bioma",
"type": "biome",
"exit": choise.data["connections"],
"river_exit": choise.data["river_connections"],
"river_flow_direction": river_flow_direction,
"heights": choise.data["heights"],
"node": new_chunk,
"info": info_new,
"have_lamppost": have_lamppost
"have_lamppost": have_lamppost,
"uniqueness": choise.uniqueness
}
if have_lamppost:
_queue_lamppost_wire_connection(grid_pos)
else:
var backup = zone_catalogue[0].instantiate()
var backup_scene = _pick_backup_scene(zone_catalogue, grid_pos)
var backup = backup_scene.instantiate()
backup.position = Vector3(grid_pos.x * chunk_size, 0, grid_pos.y * chunk_size)
add_child(backup)
_spawn_props_for_chunk(backup)
var info_backup = _get_cached_chunk_info(backup, zone_catalogue[0])
var info_backup = _get_cached_chunk_info(backup, backup_scene)
var backup_uniqueness = _get_chunk_uniqueness_from_info(info_backup)
var safe_heights = {
"north": req_height_north if req_height_north != -1 else height_target,
@@ -668,9 +889,12 @@ func _add_compatible_biome(grid_pos: Vector2i) -> void:
"heights": safe_heights,
"node": backup,
"info": info_backup,
"have_lamppost": false
"have_lamppost": false,
"uniqueness": backup_uniqueness
}
#Check if a neighbors have a river direction: if yes try to continue it,
#otherwise create a direction based on connections
func _calculate_river_flow_direction(grid_pos: Vector2i, river_connections: Dictionary) -> Vector2:
var connected_sides: Array[String] = []
for side in RIVER_SIDE_ORDER:
@@ -856,37 +1080,6 @@ func _connect_lamppost_wires(new_board_pos: Vector2i) -> void:
p_sx_your_best = closest_sx[i_t]
p_dx_your_best = closest_dx[i_t]
if best_closest_to_root == null:
for x in range(-ray_research, ray_research + 1):
for z in range(-ray_research, ray_research + 1):
if x == 0 and z == 0: continue
var closest_pos = new_board_pos + Vector2i(x, z)
if board.has(closest_pos) and board[closest_pos].get("have_lamppost", false):
var closest_root = board[closest_pos]["node"]
var closest_info = board[closest_pos]["info"]
if not is_instance_valid(closest_root) or closest_root == new_root or closest_info == null: continue
if closest_info is Node3D: closest_info.force_update_transform()
var closest_sx = _get_lampposts(closest_info, "sx")
var closest_dx = _get_lampposts(closest_info, "dx")
if closest_sx.is_empty() or closest_dx.is_empty(): continue
for i_m in range(new_sx.size()):
for i_t in range(closest_sx.size()):
var c_mio = (new_sx[i_m].global_position + new_dx[i_m].global_position) / 2.0
var c_tuo = (closest_sx[i_t].global_position + closest_dx[i_t].global_position) / 2.0
var dist = c_mio.distance_to(c_tuo)
if dist < best_distance:
best_distance = dist
best_closest_to_root = closest_root
p_sx_my_best = new_sx[i_m]
p_dx_my_best = new_dx[i_m]
p_sx_your_best = closest_sx[i_t]
p_dx_your_best = closest_dx[i_t]
var max_dist = chunk_size * lamppost_dist_factor
if best_closest_to_root != null and best_distance < max_dist:
@@ -905,7 +1098,7 @@ func _connect_lamppost_wires(new_board_pos: Vector2i) -> void:
if not wire_connections.has(closest_id): wire_connections[closest_id] = 0
wire_connections[closest_id] += 1
#draw lamppost
#draw lamppost wires
func _draw_parable(p1: Vector3, p2: Vector3, parent: Node3D) -> void:
var segments = 15
var lowering = 1.5

View File

@@ -5,6 +5,7 @@ class_name ChunkInfo
@export_group("Set Piece Rules (Unique pieces)")
@export var exclusive_biome: String = "" # Es: "Forest"
@export_range(0, 5, 1) var uniqueness: int = 0 #0=common; 5=unique
@export_group("Base exit")
@export var north: bool = false

View File

@@ -0,0 +1,5 @@
extends Marker3D
class_name PropInfo
@export var available_props: Array[PackedScene]
@export_range(0, 5, 1) var uniqueness: int = 0 #0=common; 5=unique

View File

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

View File

@@ -67,12 +67,12 @@ grad_intensity_morning = 0.05
grad_intensity_afternoon = 0.1
grad_intensity_night = 0.5
fog_color_morning = Color(0.7490196, 0.8509804, 0.9490196, 1)
fog_color_afternoon = Color(0.9647059, 0.5882353, 0.7607843, 1)
fog_color_night = Color(0.14901961, 0.101960786, 0.2509804, 1)
fog_color_afternoon = Color(0.9823975, 0.8034449, 0.8778439, 1)
fog_color_night = Color(0.38409987, 0.28720453, 0.5907528, 1)
fog_density_morning = 0.01
fog_density_afternoon = 0.02
glow_morning = 0.4
glow_night = 0.6
glow_night = 0.8
material_fog = SubResource("ShaderMaterial_b5atu")
material_drops = SubResource("StandardMaterial3D_r4tfj")
material_clouds = SubResource("ShaderMaterial_ruhh7")

View File

@@ -42,6 +42,11 @@
[ext_resource type="PackedScene" uid="uid://c6vpwol3k384y" path="res://tgcc/chunk/river/scene/chunk_river_mix4_1.tscn" id="26_7ykwn"]
[ext_resource type="PackedScene" uid="uid://cd3iyj71hkgcr" path="res://tgcc/chunk/river/scene/chunk_river_mix5_1.tscn" id="27_d1gyr"]
[ext_resource type="PackedScene" uid="uid://bh8kbw07bsu6n" path="res://tgcc/chunk/river/scene/chunk_river_mix6_1.tscn" id="28_3ldqx"]
[ext_resource type="PackedScene" uid="uid://ce6qvpb27fdpo" path="res://tgcc/chunk/river/scene/chunk_river_curve_2.tscn" id="29_d1gyr"]
[ext_resource type="PackedScene" uid="uid://7063xk3bwboc" path="res://tgcc/chunk/river/scene/chunk_river_straight_4.tscn" id="30_3ldqx"]
[ext_resource type="PackedScene" uid="uid://ccgd3uy68r88h" path="res://tgcc/chunk/river/scene/chunk_river_curve_3.tscn" id="31_dsw5k"]
[ext_resource type="PackedScene" uid="uid://mpgyaho52lii" path="res://tgcc/chunk/river/scene/chunk_river_straight_5.tscn" id="32_03yl6"]
[ext_resource type="PackedScene" uid="uid://q26mkh3cupic" path="res://tgcc/chunk/river/scene/chunk_river_cross_2.tscn" id="33_rlemp"]
[sub_resource type="FastNoiseLite" id="FastNoiseLite_wjpfq"]
fractal_lacunarity = 1.915
@@ -121,7 +126,7 @@ compositor_effects = Array[CompositorEffect]([SubResource("CompositorEffect_q52t
[sub_resource type="Resource" id="Resource_3qrd0"]
script = ExtResource("6_s3jnv")
name = "countryside"
available_chunks = Array[PackedScene]([ExtResource("7_xgfli"), ExtResource("10_ufarv"), ExtResource("9_q6kbb"), ExtResource("7_4elh6"), ExtResource("8_hvd8d"), ExtResource("12_81wux"), ExtResource("13_1ugwu"), ExtResource("10_ufarv"), ExtResource("15_ky1rt"), ExtResource("16_5g563"), ExtResource("17_tbmwr"), ExtResource("9_51cxd"), ExtResource("19_ne4de"), ExtResource("20_q6kbb"), ExtResource("21_81wux"), ExtResource("21_ky1rt"), ExtResource("22_5g563"), ExtResource("23_tbmwr"), ExtResource("24_ne4de"), ExtResource("25_5g563"), ExtResource("26_7ykwn"), ExtResource("27_d1gyr"), ExtResource("28_3ldqx")])
available_chunks = Array[PackedScene]([ExtResource("7_xgfli"), ExtResource("10_ufarv"), ExtResource("9_q6kbb"), ExtResource("7_4elh6"), ExtResource("8_hvd8d"), ExtResource("12_81wux"), ExtResource("13_1ugwu"), ExtResource("10_ufarv"), ExtResource("15_ky1rt"), ExtResource("16_5g563"), ExtResource("17_tbmwr"), ExtResource("9_51cxd"), ExtResource("19_ne4de"), ExtResource("20_q6kbb"), ExtResource("21_81wux"), ExtResource("21_ky1rt"), ExtResource("22_5g563"), ExtResource("23_tbmwr"), ExtResource("24_ne4de"), ExtResource("25_5g563"), ExtResource("26_7ykwn"), ExtResource("27_d1gyr"), ExtResource("28_3ldqx"), ExtResource("29_d1gyr"), ExtResource("30_3ldqx"), ExtResource("31_dsw5k"), ExtResource("32_03yl6"), ExtResource("33_rlemp")])
metadata/_custom_type_script = "uid://wv6kcqkibium"
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pypsn"]

View File

@@ -4,8 +4,10 @@
[ext_resource type="Script" uid="uid://dg2h4kbqe8j3m" path="res://core/biome_generator/chunk_info.gd" id="2_4d433"]
[ext_resource type="Material" uid="uid://blqelpjvdv23j" path="res://tgcc/chunk/material/grassflat_chunk.tres" id="2_ewqv4"]
[ext_resource type="Material" uid="uid://4xhpd6lust7w" path="res://tgcc/chunk/material/path_chunk.tres" id="3_4d433"]
[ext_resource type="Script" uid="uid://dg6ngy4pmtsyc" path="res://core/biome_generator/prop_info.gd" id="3_ckjyx"]
[ext_resource type="Material" uid="uid://ce0bdk3mx2xao" path="res://tgcc/chunk/material/water_chunk.tres" id="4_r06ll"]
[ext_resource type="Material" uid="uid://fnjxocmx16b7" path="res://tgcc/chunk/prop/grass/grass_chunk.tres" id="5_sddh0"]
[ext_resource type="PackedScene" uid="uid://d12t04rs47jq3" path="res://tgcc/chunk/prop/tree/tree_01.tscn" id="5_y2fk3"]
[ext_resource type="Material" uid="uid://jygb1hcokks5" path="res://tgcc/chunk/prop/grass/grass_bank.tres" id="6_ckjyx"]
[ext_resource type="Material" uid="uid://bjrb33qwp1p43" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds.tres" id="7_y2fk3"]
[ext_resource type="Material" uid="uid://0x17mj2v807r" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds2.tres" id="8_vtfy7"]
@@ -52,22 +54,27 @@ have_lamppost = true
connection_left = [NodePath("PaloLuce/sx")]
connection_right = [NodePath("PaloLuce/dx")]
[node name="Argini_001" parent="." index="0" unique_id=439223507]
[node name="Prop1" type="Marker3D" parent="." index="0" unique_id=1846012620]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 2.1078086, 4.588761, 4.5396976)
script = ExtResource("3_ckjyx")
available_props = Array[PackedScene]([ExtResource("10_r06ll"), ExtResource("5_y2fk3")])
[node name="Argini_001" parent="." index="1" unique_id=1474838784]
surface_material_override/0 = ExtResource("2_ewqv4")
[node name="Chunk_005" parent="." index="1" unique_id=1955568282]
[node name="Chunk_005" parent="." index="2" unique_id=844192036]
surface_material_override/0 = ExtResource("2_ewqv4")
[node name="Chunk_036" parent="." index="2" unique_id=1808067169 groups=["weather_node"]]
[node name="Chunk_036" parent="." index="3" unique_id=1584066508 groups=["weather_node"]]
surface_material_override/0 = ExtResource("3_4d433")
[node name="Chunk_037" parent="." index="3" unique_id=1338393481 groups=["weather_node"]]
[node name="Chunk_037" parent="." index="4" unique_id=1100757609 groups=["weather_node"]]
surface_material_override/0 = ExtResource("3_4d433")
[node name="Water_003" parent="." index="4" unique_id=1175879696]
[node name="Water_003" parent="." index="5" unique_id=1047599796]
surface_material_override/0 = ExtResource("4_r06ll")
[node name="grass" type="Node3D" parent="." index="5" unique_id=924191951 groups=["weather_vegetables_node", "wind_node"]]
[node name="grass" type="Node3D" parent="." index="6" unique_id=924191951 groups=["weather_vegetables_node", "wind_node"]]
[node name="grass_plane" type="MeshInstance3D" parent="grass" index="0" unique_id=1701437548]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0)
@@ -98,7 +105,7 @@ material_override = ExtResource("8_vtfy7")
cast_shadow = 0
multimesh = SubResource("MultiMesh_sddh0")
[node name="rice" type="Node3D" parent="." index="6" unique_id=318026795 groups=["weather_vegetables_node", "wind_node"]]
[node name="rice" type="Node3D" parent="." index="7" unique_id=318026795 groups=["weather_vegetables_node", "wind_node"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -86.08408, 0, 0)
[node name="rice_plane61" type="MeshInstance3D" parent="rice" index="0" unique_id=1796062490]
@@ -911,7 +918,7 @@ cast_shadow = 0
mesh = SubResource("PlaneMesh_oviqx")
surface_material_override/0 = ExtResource("7_y2fk3")
[node name="PaloLuce" parent="." index="7" unique_id=1607500596 instance=ExtResource("10_r06ll")]
[node name="PaloLuce" parent="." index="8" unique_id=1607500596 instance=ExtResource("10_r06ll")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.4629593, 0, -1.4456635)
[editable path="PaloLuce"]

View File

@@ -20,6 +20,7 @@
[ext_resource type="Shader" uid="uid://cs0xl7pc6e26h" path="res://core/daynight/tree_leaves.gdshader" id="19_s7klq"]
[ext_resource type="PackedScene" uid="uid://bgb4pfflokl5s" path="res://tgcc/chunk/prop/pylon/pylon.tscn" id="20_fqrww"]
[ext_resource type="Texture2D" uid="uid://c3grftlmap4q5" path="res://tgcc/chunk/prop/tree/leaf1_alpha.png" id="20_q66oc"]
[ext_resource type="PackedScene" uid="uid://5ap10ax3lnr7" path="res://tgcc/chunk/prop/vending machine/vending_machine_1.tscn" id="21_s7klq"]
[sub_resource type="PlaneMesh" id="PlaneMesh_fqrww"]
size = Vector2(0.5, 0.5)
@@ -73,6 +74,7 @@ shader_parameter/light_steps = 10.0
shader_parameter/random_mix = 0.0
shader_parameter/cast_shadow_strength = 0.0
shader_parameter/wetness_darkening = 0.25
shader_parameter/snow_visibility = 1.0
[sub_resource type="Gradient" id="Gradient_5yfr5"]
offsets = PackedFloat32Array(1, 1)
@@ -503,7 +505,10 @@ omni_range = 10.0
omni_attenuation = 2.0
[node name="PaloLuce" parent="." index="23" unique_id=1607500596 instance=ExtResource("20_fqrww")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.92608833, 0, -0.97701275)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.9962759, 0, -1.8516524)
[node name="VendingMachine_1" parent="." index="24" unique_id=1157270784 instance=ExtResource("21_s7klq")]
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 0.91498923, 0, -0.5683732)
[editable path="TreeTest3"]
[editable path="TreeTest4"]

View File

@@ -12,6 +12,8 @@
[ext_resource type="Material" uid="uid://0x17mj2v807r" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds2.tres" id="9_52lxu"]
[ext_resource type="PackedScene" uid="uid://c7hdw2g6sbygr" path="res://tgcc/chunk/prop/tree/bambù/bambù.tscn" id="11_s0twx"]
[ext_resource type="PackedScene" uid="uid://dluogg3j2kcgs" path="res://tgcc/chunk/prop/Tori/tori.tscn" id="12_on7te"]
[ext_resource type="PackedScene" uid="uid://be1px5nxfr4hs" path="res://tgcc/chunk/prop/scarecrow/scarecrow.tscn" id="13_fspb5"]
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="14_uik3j"]
[sub_resource type="PlaneMesh" id="PlaneMesh_piek1"]
size = Vector2(0.5, 0.5)
@@ -49,6 +51,48 @@ size = Vector2(1, 1)
[sub_resource type="PlaneMesh" id="PlaneMesh_x3b0m"]
size = Vector2(1, 1)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_52lxu"]
render_priority = 0
shader = ExtResource("14_uik3j")
shader_parameter/albedo_color = Color(0.043069452, 0.26020306, 0.56825805, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(3, 3)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 1.5
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fspb5"]
render_priority = 0
shader = ExtResource("14_uik3j")
shader_parameter/albedo_color = Color(0.38076818, 0.0014618272, 0.61723346, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(3, 3)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 1.5
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[node name="chunk_country_cross3_01" unique_id=319840865 instance=ExtResource("1_d5ypx")]
script = ExtResource("2_wjrum")
north = true
@@ -900,3 +944,21 @@ transform = Transform3D(-4.371139e-08, 0.013473534, -0.9999092, 0, 0.9999092, 0.
[node name="Tori" parent="." index="8" unique_id=426190097 instance=ExtResource("12_on7te")]
transform = Transform3D(-2.6226832e-08, 0, -0.59999996, 0, 0.59999996, 0, 0.59999996, 0, -2.6226832e-08, 8.541672, 0, 0)
[node name="scarecrow" parent="." index="9" unique_id=1320042610 instance=ExtResource("13_fspb5")]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -6.283793, 0, -0.20404291)
[node name="scarecrow2" parent="." index="10" unique_id=1524877194 instance=ExtResource("13_fspb5")]
transform = Transform3D(-0.9989745, 0, 0.04527591, 0, 1, 0, -0.04527591, 0, -0.9989745, 5.994306, 0, -6.070919)
[node name="shirt" parent="scarecrow2" index="2" unique_id=1648916125]
surface_material_override/0 = SubResource("ShaderMaterial_52lxu")
[node name="scarecrow3" parent="." index="11" unique_id=1017203169 instance=ExtResource("13_fspb5")]
transform = Transform3D(-0.055246323, 0, 0.99847275, 0, 1, 0, -0.99847275, 0, -0.055246323, 5.994306, 0, 5.935006)
[node name="shirt" parent="scarecrow3" index="2" unique_id=1648916125]
surface_material_override/0 = SubResource("ShaderMaterial_fspb5")
[editable path="scarecrow2"]
[editable path="scarecrow3"]

View File

@@ -17,6 +17,7 @@
[ext_resource type="Material" uid="uid://baot4vy3fqrdw" path="res://tgcc/chunk/prop/flower/bush.tres" id="10_uvq4s"]
[ext_resource type="Material" uid="uid://f5uoreickew7" path="res://tgcc/chunk/prop/flower/flower.tres" id="11_w75rp"]
[ext_resource type="PackedScene" uid="uid://c7hdw2g6sbygr" path="res://tgcc/chunk/prop/tree/bambù/bambù.tscn" id="17_rr5ye"]
[ext_resource type="PackedScene" uid="uid://5ap10ax3lnr7" path="res://tgcc/chunk/prop/vending machine/vending_machine_1.tscn" id="18_18gw6"]
[sub_resource type="PlaneMesh" id="PlaneMesh_kiycf"]
size = Vector2(0.5, 0.5)
@@ -774,3 +775,6 @@ transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.04
[node name="Bambù59" parent="Bambu" index="29" unique_id=510984514 instance=ExtResource("17_rr5ye")]
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, 5.1329484, 4.7683716e-07, 4.9982896)
[node name="VendingMachine_1" parent="." index="18" unique_id=1157270784 instance=ExtResource("18_18gw6")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.6109447, 0, 1.013597)

View File

@@ -22,6 +22,8 @@
[ext_resource type="PackedScene" uid="uid://c7hdw2g6sbygr" path="res://tgcc/chunk/prop/tree/bambù/bambù.tscn" id="20_nekti"]
[ext_resource type="PackedScene" uid="uid://d12t04rs47jq3" path="res://tgcc/chunk/prop/tree/tree_01.tscn" id="21_jphge"]
[ext_resource type="PackedScene" uid="uid://dluogg3j2kcgs" path="res://tgcc/chunk/prop/Tori/tori.tscn" id="22_jphge"]
[ext_resource type="PackedScene" uid="uid://5ap10ax3lnr7" path="res://tgcc/chunk/prop/vending machine/vending_machine_1.tscn" id="23_aj7x1"]
[ext_resource type="PackedScene" uid="uid://l3inky72a783" path="res://tgcc/chunk/prop/well/stone/well_stone.tscn" id="24_ufr67"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_en6je"]
render_priority = 0
@@ -81,6 +83,7 @@ shader_parameter/light_steps = 10.0
shader_parameter/random_mix = 0.0
shader_parameter/cast_shadow_strength = 0.0
shader_parameter/wetness_darkening = 0.25
shader_parameter/snow_visibility = 1.0
[sub_resource type="MultiMesh" id="MultiMesh_eqqqg"]
transform_format = 1
@@ -134,6 +137,28 @@ shader_parameter/light_steps = 10.0
shader_parameter/random_mix = 0.0
shader_parameter/cast_shadow_strength = 0.0
shader_parameter/wetness_darkening = 0.25
shader_parameter/snow_visibility = 1.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ufr67"]
render_priority = 0
shader = ExtResource("6_badpr")
shader_parameter/albedo_color = Color(0.14418072, 0.1760445, 0.47109693, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.0
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[node name="chunk_country_cross3_03" unique_id=643218732 instance=ExtResource("1_udhcw")]
script = ExtResource("2_cu4ct")
@@ -152,6 +177,12 @@ surface_material_override/0 = ExtResource("5_dwl4p")
[node name="Cortile_003" parent="." index="2" unique_id=1183773984 groups=["weather_node"]]
surface_material_override/0 = ExtResource("5_dwl4p")
[node name="Cube_041" parent="." index="3" unique_id=2123223496]
visible = false
[node name="Cube_042" parent="." index="4" unique_id=1973044231]
visible = false
[node name="Cylinder_007" parent="." index="5" unique_id=1954949661]
surface_material_override/0 = SubResource("ShaderMaterial_en6je")
@@ -510,5 +541,31 @@ material_override = SubResource("ShaderMaterial_aj7x1")
[node name="Tori" parent="." index="22" unique_id=426190097 instance=ExtResource("22_jphge")]
transform = Transform3D(4.5298744e-08, 0, -0.6, 0, 0.6, 0, 0.6, 0, 4.5298744e-08, 8.327267, 0, 0)
[node name="VendingMachine_1" parent="." index="23" unique_id=595764774 instance=ExtResource("23_aj7x1")]
transform = Transform3D(0.785, 0, 0, 0, 0.785, 0, 0, 0, 0.785, -2.9157195, 0, 4.0503273)
[node name="Cartello" parent="VendingMachine_1" index="0" unique_id=83833849]
visible = false
[node name="CartelloUp" parent="VendingMachine_1" index="1" unique_id=237539239]
visible = false
[node name="VendingMachine_2" parent="." index="24" unique_id=200256890 instance=ExtResource("23_aj7x1")]
transform = Transform3D(0.785, 0, 0, 0, 0.785, 0, 0, 0, 0.785, -2.9157195, 0, 2.9496164)
[node name="Cartello" parent="VendingMachine_2" index="0" unique_id=83833849]
visible = false
[node name="CartelloUp" parent="VendingMachine_2" index="1" unique_id=237539239]
visible = false
[node name="Vending machine" parent="VendingMachine_2" index="2" unique_id=989971963]
surface_material_override/1 = SubResource("ShaderMaterial_ufr67")
[node name="well_stone" parent="." index="25" unique_id=2044144917 instance=ExtResource("24_ufr67")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -7.960206, 0, -7.837294)
[editable path="TreeTest5"]
[editable path="TreeTest6"]
[editable path="VendingMachine_1"]
[editable path="VendingMachine_2"]

View File

@@ -14,6 +14,7 @@
[ext_resource type="Material" uid="uid://0x17mj2v807r" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds2.tres" id="11_an7hd"]
[ext_resource type="Material" uid="uid://baot4vy3fqrdw" path="res://tgcc/chunk/prop/flower/bush.tres" id="12_k6uxv"]
[ext_resource type="Material" uid="uid://f5uoreickew7" path="res://tgcc/chunk/prop/flower/flower.tres" id="13_24u1s"]
[ext_resource type="PackedScene" uid="uid://5ap10ax3lnr7" path="res://tgcc/chunk/prop/vending machine/vending_machine_1.tscn" id="15_an7hd"]
[sub_resource type="PlaneMesh" id="PlaneMesh_8pfxb"]
size = Vector2(0.5, 0.5)
@@ -70,54 +71,54 @@ est = true
south = true
west = true
[node name="Cavi_003" parent="." index="0" unique_id=1536880121]
[node name="Cavi_003" parent="." index="0" unique_id=1683040552]
surface_material_override/0 = ExtResource("2_k6fna")
surface_material_override/1 = ExtResource("2_k6fna")
[node name="Chunk_008" parent="." index="1" unique_id=2026223215]
[node name="Chunk_008" parent="." index="1" unique_id=978229734]
surface_material_override/0 = ExtResource("3_0aavg")
[node name="Chunk_015" parent="." index="2" unique_id=983339955 groups=["weather_node"]]
[node name="Chunk_015" parent="." index="2" unique_id=916064359 groups=["weather_node"]]
surface_material_override/0 = ExtResource("4_642yp")
[node name="Flower_016" parent="." index="3" unique_id=2061052125]
[node name="Flower_016" parent="." index="3" unique_id=1070776780]
visible = false
[node name="FlowerG_015" parent="." index="4" unique_id=1164829892]
[node name="FlowerG_015" parent="." index="4" unique_id=824525481]
visible = false
[node name="House_C_1_004" parent="." index="5" unique_id=1513162211 groups=["weather_node"]]
[node name="House_C_1_004" parent="." index="5" unique_id=518805396 groups=["weather_node"]]
[node name="House_C_1_004|Cube_023|Dupli|" parent="House_C_1_004" index="0" unique_id=2055325984]
[node name="House_C_1_004|Cube_023|Dupli|" parent="House_C_1_004" index="0" unique_id=2033854223]
surface_material_override/0 = ExtResource("5_wbwk3")
surface_material_override/1 = ExtResource("6_b82gs")
[node name="House_C_1_005" parent="." index="6" unique_id=1325920285 groups=["weather_node"]]
[node name="House_C_1_005" parent="." index="6" unique_id=68402630 groups=["weather_node"]]
[node name="House_C_1_005|Cube_023|Dupli|" parent="House_C_1_005" index="0" unique_id=803929754]
[node name="House_C_1_005|Cube_023|Dupli|" parent="House_C_1_005" index="0" unique_id=1370013707]
surface_material_override/0 = ExtResource("5_wbwk3")
surface_material_override/1 = ExtResource("6_b82gs")
[node name="House_C_1_006" parent="." index="7" unique_id=2001122787 groups=["weather_node"]]
[node name="House_C_1_006" parent="." index="7" unique_id=1206949995 groups=["weather_node"]]
[node name="House_C_1_006|Cube_023|Dupli|" parent="House_C_1_006" index="0" unique_id=1405616088]
[node name="House_C_1_006|Cube_023|Dupli|" parent="House_C_1_006" index="0" unique_id=2100645541]
surface_material_override/0 = ExtResource("5_wbwk3")
surface_material_override/1 = ExtResource("6_b82gs")
[node name="House_C_1_007" parent="." index="8" unique_id=464621197 groups=["weather_node"]]
[node name="House_C_1_007" parent="." index="8" unique_id=746675923 groups=["weather_node"]]
[node name="House_C_1_007|Cube_023|Dupli|" parent="House_C_1_007" index="0" unique_id=1780113381]
[node name="House_C_1_007|Cube_023|Dupli|" parent="House_C_1_007" index="0" unique_id=869496471]
surface_material_override/0 = ExtResource("5_wbwk3")
surface_material_override/1 = ExtResource("6_b82gs")
[node name="Lanterne_004" parent="." index="9" unique_id=993819881]
[node name="Lanterne_004" parent="." index="9" unique_id=1013830129]
surface_material_override/0 = ExtResource("6_b82gs")
surface_material_override/1 = ExtResource("5_wbwk3")
[node name="MSH_Staccioanta_1_017" parent="." index="10" unique_id=845283196 groups=["weather_node"]]
[node name="MSH_Staccioanta_1_017" parent="." index="10" unique_id=1757093874 groups=["weather_node"]]
surface_material_override/0 = ExtResource("7_be1u8")
[node name="PaliLuci_001" parent="." index="11" unique_id=1390758113]
[node name="PaliLuci_001" parent="." index="11" unique_id=239883314]
surface_material_override/0 = ExtResource("8_vvemo")
surface_material_override/1 = ExtResource("8_vvemo")
@@ -475,3 +476,9 @@ shadow_enabled = true
shadow_opacity = 0.96
omni_range = 10.0
omni_attenuation = 2.0
[node name="VendingMachine_1" parent="." index="16" unique_id=1157270784 instance=ExtResource("15_an7hd")]
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 1.384242, 0, 2.281938)
[node name="VendingMachine_2" parent="." index="17" unique_id=2140135902 instance=ExtResource("15_an7hd")]
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 1.384242, 0, 3.6253488)

View File

@@ -18,6 +18,8 @@
[ext_resource type="Material" uid="uid://baot4vy3fqrdw" path="res://tgcc/chunk/prop/flower/bush.tres" id="15_eoxu8"]
[ext_resource type="Material" uid="uid://f5uoreickew7" path="res://tgcc/chunk/prop/flower/flower.tres" id="16_ubhkt"]
[ext_resource type="PackedScene" uid="uid://c7hdw2g6sbygr" path="res://tgcc/chunk/prop/tree/bambù/bambù.tscn" id="18_0ehik"]
[ext_resource type="PackedScene" uid="uid://5ap10ax3lnr7" path="res://tgcc/chunk/prop/vending machine/vending_machine_1.tscn" id="19_j41gr"]
[ext_resource type="PackedScene" uid="uid://cff8d3fy3cd6b" path="res://tgcc/chunk/prop/well/wood/well_wood.tscn" id="20_eoxu8"]
[sub_resource type="PlaneMesh" id="PlaneMesh_7tu84"]
size = Vector2(0.5, 0.5)
@@ -748,3 +750,12 @@ transform = Transform3D(0.99579215, 0.09164066, 0, -0.09164066, 0.99579215, 0, 0
[node name="Bambù50" parent="Bambu" index="16" unique_id=1800416036 instance=ExtResource("18_0ehik")]
transform = Transform3D(0.99390334, 0.110254735, 0, -0.110254735, 0.99390334, 0, 0, 0, 1, -38.629272, 0.32301903, 5.7615194)
[node name="VendingMachine_1" parent="." index="21" unique_id=1157270784 instance=ExtResource("19_j41gr")]
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 1.6880364, 0, -1.0264239)
[node name="VendingMachine_2" parent="." index="22" unique_id=100646015 instance=ExtResource("19_j41gr")]
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 1.6880364, 0, 0.12624216)
[node name="well_wood" parent="." index="23" unique_id=2128929413 instance=ExtResource("20_eoxu8")]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -3.5676882, 0, -3.665926)

View File

@@ -14,6 +14,7 @@
[ext_resource type="Material" uid="uid://f5uoreickew7" path="res://tgcc/chunk/prop/flower/flower.tres" id="11_7l6eg"]
[ext_resource type="PackedScene" uid="uid://c7hdw2g6sbygr" path="res://tgcc/chunk/prop/tree/bambù/bambù.tscn" id="13_i5qpy"]
[ext_resource type="PackedScene" uid="uid://bgb4pfflokl5s" path="res://tgcc/chunk/prop/pylon/pylon.tscn" id="14_15guu"]
[ext_resource type="PackedScene" uid="uid://l3inky72a783" path="res://tgcc/chunk/prop/well/stone/well_stone.tscn" id="15_qv1gu"]
[sub_resource type="PlaneMesh" id="PlaneMesh_xdgj3"]
size = Vector2(0.5, 0.5)
@@ -785,4 +786,7 @@ transform = Transform3D(0.99390334, 0.110254735, 0, -0.110254735, 0.99390334, 0,
[node name="PaloLuce" parent="." index="11" unique_id=1607500596 instance=ExtResource("14_15guu")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5209084, 0, -0.26294994)
[node name="well_stone" parent="." index="12" unique_id=2044144917 instance=ExtResource("15_qv1gu")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.16394329, 0.10199118, -7.7422237)
[editable path="PaloLuce"]

View File

@@ -17,6 +17,8 @@
[ext_resource type="Material" uid="uid://baot4vy3fqrdw" path="res://tgcc/chunk/prop/flower/bush.tres" id="15_eoqtk"]
[ext_resource type="Material" uid="uid://f5uoreickew7" path="res://tgcc/chunk/prop/flower/flower.tres" id="16_d4do4"]
[ext_resource type="PackedScene" uid="uid://c7hdw2g6sbygr" path="res://tgcc/chunk/prop/tree/bambù/bambù.tscn" id="17_lb2j0"]
[ext_resource type="PackedScene" uid="uid://5ap10ax3lnr7" path="res://tgcc/chunk/prop/vending machine/vending_machine_1.tscn" id="18_x237o"]
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="19_cl3bn"]
[sub_resource type="PlaneMesh" id="PlaneMesh_g6h4y"]
size = Vector2(0.5, 0.5)
@@ -60,6 +62,48 @@ gradient = SubResource("Gradient_n2ly8")
fill = 2
fill_from = Vector2(0.5, 0.5)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_cl3bn"]
render_priority = 0
shader = ExtResource("19_cl3bn")
shader_parameter/albedo_color = Color(0.023529412, 0.23529412, 0.36078432, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.0
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_eoqtk"]
render_priority = 0
shader = ExtResource("19_cl3bn")
shader_parameter/albedo_color = Color(0.024344679, 0.23358715, 0.3590951, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.0
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[node name="chunk_country_straight_01" unique_id=926368352 instance=ExtResource("1_37ch6")]
script = ExtResource("2_n2ly8")
north = true
@@ -523,3 +567,24 @@ transform = Transform3D(0.99579215, 0.09164066, 0, -0.09164066, 0.99579215, 0, 0
[node name="Bambù14" parent="Bambu" index="32" unique_id=136590564 instance=ExtResource("17_lb2j0")]
transform = Transform3D(0.99390334, 0.110254735, 0, -0.110254735, 0.99390334, 0, 0, 0, 1, -7.7769127, 0.32301903, 5.6648054)
[node name="VendingMachine_1" parent="." index="20" unique_id=1157270784 instance=ExtResource("18_x237o")]
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 1.4071379, -4.7683716e-07, 7.076941)
[node name="CartelloUp" parent="VendingMachine_1" index="1" unique_id=237539239]
visible = false
[node name="VendingMachine_2" parent="." index="21" unique_id=1783997867 instance=ExtResource("18_x237o")]
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 1.4071379, -4.7683716e-07, 8.278086)
[node name="Cartello" parent="VendingMachine_2" index="0" unique_id=83833849]
visible = false
[node name="CartelloUp" parent="VendingMachine_2" index="1" unique_id=237539239]
surface_material_override/1 = SubResource("ShaderMaterial_cl3bn")
[node name="Vending machine" parent="VendingMachine_2" index="2" unique_id=989971963]
surface_material_override/1 = SubResource("ShaderMaterial_eoqtk")
[editable path="VendingMachine_1"]
[editable path="VendingMachine_2"]

View File

@@ -21,6 +21,8 @@
[ext_resource type="Material" uid="uid://f5uoreickew7" path="res://tgcc/chunk/prop/flower/flower.tres" id="18_ujo6s"]
[ext_resource type="PackedScene" uid="uid://c7hdw2g6sbygr" path="res://tgcc/chunk/prop/tree/bambù/bambù.tscn" id="20_rrmel"]
[ext_resource type="PackedScene" uid="uid://bgb4pfflokl5s" path="res://tgcc/chunk/prop/pylon/pylon.tscn" id="21_527eb"]
[ext_resource type="PackedScene" uid="uid://5ap10ax3lnr7" path="res://tgcc/chunk/prop/vending machine/vending_machine_1.tscn" id="22_tsii7"]
[ext_resource type="PackedScene" uid="uid://cff8d3fy3cd6b" path="res://tgcc/chunk/prop/well/wood/well_wood.tscn" id="23_5fhuo"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_q2s76"]
render_priority = 0
@@ -165,54 +167,54 @@ have_lamppost = true
connection_left = [NodePath("PaloLuce/sx")]
connection_right = [NodePath("PaloLuce/dx")]
[node name="Argini_005" parent="." index="0" unique_id=255857931]
[node name="Argini_005" parent="." index="0" unique_id=1699913806]
surface_material_override/0 = ExtResource("2_t65ww")
[node name="Bags" parent="." index="1" unique_id=2117673123]
[node name="Bags" parent="." index="1" unique_id=885374680]
surface_material_override/0 = SubResource("ShaderMaterial_q2s76")
[node name="Cart" parent="." index="2" unique_id=884973125 groups=["weather_node"]]
[node name="Cart" parent="." index="2" unique_id=1431553734 groups=["weather_node"]]
surface_material_override/0 = ExtResource("11_iulsg")
surface_material_override/1 = SubResource("ShaderMaterial_mqw0y")
surface_material_override/2 = SubResource("ShaderMaterial_dxwao")
[node name="Chunk_045" parent="." index="3" unique_id=121750865 groups=["weather_node"]]
[node name="Chunk_045" parent="." index="3" unique_id=905054485 groups=["weather_node"]]
surface_material_override/0 = ExtResource("4_eev23")
[node name="Cortile" parent="." index="4" unique_id=91819151 groups=["weather_node"]]
[node name="Cortile" parent="." index="4" unique_id=1916980077 groups=["weather_node"]]
surface_material_override/0 = ExtResource("4_eev23")
[node name="Flower_002" parent="." index="5" unique_id=833640333 groups=["weather_vegetables_node", "wind_node"]]
[node name="Flower_002" parent="." index="5" unique_id=879662150 groups=["weather_vegetables_node", "wind_node"]]
visible = false
[node name="FlowerG_001" parent="." index="6" unique_id=1651138709 groups=["weather_vegetables_node", "wind_node"]]
[node name="FlowerG_001" parent="." index="6" unique_id=506605481 groups=["weather_vegetables_node", "wind_node"]]
visible = false
[node name="Grass_006" parent="." index="7" unique_id=2081004392 groups=["weather_vegetables_node", "wind_node"]]
[node name="Grass_006" parent="." index="7" unique_id=921275290 groups=["weather_vegetables_node", "wind_node"]]
surface_material_override/0 = ExtResource("2_t65ww")
[node name="House_L_2" parent="." index="8" unique_id=1993375668 groups=["weather_node"]]
[node name="House_L_2" parent="." index="8" unique_id=1330804574 groups=["weather_node"]]
[node name="House_L_2|Cube_349|Dupli|" parent="House_L_2" index="0" unique_id=18124515]
[node name="House_L_2|Cube_349|Dupli|" parent="House_L_2" index="0" unique_id=1823344237]
surface_material_override/0 = ExtResource("5_0oa1i")
surface_material_override/1 = ExtResource("7_q2s76")
[node name="MSH_Staccioanta_1_003" parent="." index="9" unique_id=568627289]
[node name="MSH_Staccioanta_1_003" parent="." index="9" unique_id=1980961732]
surface_material_override/0 = ExtResource("7_apgpv")
[node name="Rocks_001" parent="." index="10" unique_id=2004921299 groups=["weather_node"]]
[node name="Rocks_001" parent="." index="10" unique_id=375547626 groups=["weather_node"]]
surface_material_override/0 = ExtResource("5_sy58u")
surface_material_override/1 = ExtResource("5_sy58u")
surface_material_override/2 = ExtResource("6_eev23")
[node name="Statue" parent="." index="11" unique_id=1814801509]
[node name="Statue" parent="." index="11" unique_id=1169373891]
surface_material_override/0 = ExtResource("5_sy58u")
surface_material_override/1 = ExtResource("7_q2s76")
[node name="Water_006" parent="." index="12" unique_id=1352334701]
[node name="Water_006" parent="." index="12" unique_id=2064105008]
surface_material_override/0 = ExtResource("10_r4bww")
[node name="WoodPile" parent="." index="13" unique_id=1088104699]
[node name="WoodPile" parent="." index="13" unique_id=1512653267]
surface_material_override/0 = ExtResource("11_iulsg")
surface_material_override/1 = ExtResource("12_ytk0o")
surface_material_override/2 = SubResource("ShaderMaterial_ytk0o")
@@ -768,4 +770,10 @@ transform = Transform3D(-0.42840073, -0.10062032, -0.8979694, 0.015782116, 0.992
[node name="PaloLuce" parent="." index="20" unique_id=1607500596 instance=ExtResource("21_527eb")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.3137894, 0, 1.503645)
[node name="VendingMachine_1" parent="." index="21" unique_id=1157270784 instance=ExtResource("22_tsii7")]
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 1.674514, 0, 1.5681319)
[node name="well_wood" parent="." index="22" unique_id=2128929413 instance=ExtResource("23_5fhuo")]
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 5.7742014, 0, 1.0249029)
[editable path="PaloLuce"]

View File

@@ -11,6 +11,7 @@
[ext_resource type="Material" uid="uid://bjrb33qwp1p43" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds.tres" id="8_mds5d"]
[ext_resource type="Material" uid="uid://0x17mj2v807r" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds2.tres" id="9_5s0jh"]
[ext_resource type="PackedScene" uid="uid://c7hdw2g6sbygr" path="res://tgcc/chunk/prop/tree/bambù/bambù.tscn" id="11_7lasv"]
[ext_resource type="PackedScene" uid="uid://l3inky72a783" path="res://tgcc/chunk/prop/well/stone/well_stone.tscn" id="12_kkc6w"]
[sub_resource type="PlaneMesh" id="PlaneMesh_uf7g8"]
size = Vector2(1, 1)
@@ -862,3 +863,6 @@ transform = Transform3D(-0.99722904, 0.034301233, -0.06601266, 0.034376215, 0.99
[node name="Bambù20" parent="rice" index="135" unique_id=790042848 instance=ExtResource("11_7lasv")]
transform = Transform3D(-0.92917824, 0.06943477, 0.363052, 0.08790589, 0.9955283, 0.0345845, -0.3590272, 0.06404955, -0.9311271, -1.6899307, 0, 3.5738397)
[node name="well_stone" parent="." index="7" unique_id=2044144917 instance=ExtResource("12_kkc6w")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.8937311, 0.033810854, 0.12671113)

View File

@@ -0,0 +1,16 @@
[gd_resource type="ShaderMaterial" format=3 uid="uid://lt21ti7jo8yj"]
[ext_resource type="Shader" uid="uid://dw42rl0af5h1m" path="res://tgcc/chunk/material/script/glass.gdshader" id="1_yqmqd"]
[resource]
render_priority = 0
shader = ExtResource("1_yqmqd")
shader_parameter/colore_vetro = Color(0.4, 0.7, 0.9, 0.4)
shader_parameter/colore_bordo = Color(1, 1, 1, 0.8)
shader_parameter/spessore_bordo = 2.5
shader_parameter/dimensione_riflesso = 0.05
shader_parameter/intensita_riflesso = 2.0
shader_parameter/usa_strisce = true
shader_parameter/colore_strisce = Color(1, 1, 1, 0.3)
shader_parameter/densita_strisce = 6.0
shader_parameter/spessore_strisce = 0.2

View File

@@ -0,0 +1,65 @@
shader_type spatial;
// cull_disabled permette di vedere il vetro da entrambi i lati (utile se è un singolo piano)
// depth_draw_opaque evita bug visivi di sovrapposizione tra oggetti trasparenti
render_mode blend_mix, depth_draw_opaque, cull_disabled, shadows_disabled;
uniform vec4 colore_vetro : source_color = vec4(0.4, 0.7, 0.9, 0.4);
// --- EFFETTO BORDO (FRESNEL) ---
uniform vec4 colore_bordo : source_color = vec4(1.0, 1.0, 1.0, 0.8);
uniform float spessore_bordo : hint_range(0.0, 10.0) = 2.5;
// --- RIFLESSO DEL SOLE (SPECULAR) ---
uniform float dimensione_riflesso : hint_range(0.0, 1.0) = 0.05;
uniform float intensita_riflesso : hint_range(0.0, 5.0) = 2.0;
// --- STRISCE DIAGONALI (Opzionali, in stile Anime) ---
uniform bool usa_strisce = true;
uniform vec4 colore_strisce : source_color = vec4(1.0, 1.0, 1.0, 0.3);
uniform float densita_strisce : hint_range(0.0, 20.0) = 6.0;
uniform float spessore_strisce : hint_range(0.0, 1.0) = 0.2;
void fragment() {
// 1. Calcoliamo il Fresnel (l'angolo di visuale rispetto alla normale del vetro)
float fresnel = 1.0 - clamp(dot(NORMAL, VIEW), 0.0, 1.0);
// Applichiamo una curva "a gradino" (smoothstep) per renderlo in stile Toon (netto)
float toon_fresnel = smoothstep(0.4, 0.45, pow(fresnel, spessore_bordo));
// 2. Calcoliamo le strisce diagonali
float strisce = 0.0;
if (usa_strisce) {
// Crea linee diagonali basate sulle coordinate UV
float pattern = fract((UV.x + UV.y) * densita_strisce);
strisce = step(1.0 - spessore_strisce, pattern);
}
// 3. Mescoliamo i colori
vec3 colore_finale = mix(colore_vetro.rgb, colore_strisce.rgb, strisce * colore_strisce.a);
colore_finale = mix(colore_finale, colore_bordo.rgb, toon_fresnel);
// 4. L'opacità aumenta sui bordi e sulle strisce
float alpha_finale = colore_vetro.a;
alpha_finale = max(alpha_finale, strisce * colore_strisce.a);
alpha_finale = max(alpha_finale, toon_fresnel * colore_bordo.a);
ALBEDO = colore_finale;
ALPHA = clamp(alpha_finale, 0.0, 1.0);
}
void light() {
// --- RIFLESSO TAGLIENTE DEL SOLE ---
// Calcoliamo dove la luce colpisce il vetro rispetto alla telecamera
vec3 half_vector = normalize(VIEW + LIGHT);
float spec_dot = max(dot(NORMAL, half_vector), 0.0);
// Taglio netto per renderlo stile Toon (invece di una sfumatura realistica)
float spec_toon = smoothstep(1.0 - dimensione_riflesso - 0.01, 1.0 - dimensione_riflesso, spec_dot);
// Luce Diffusa standard (piatta, ideale per il toon)
float diff_dot = max(dot(NORMAL, LIGHT), 0.0);
DIFFUSE_LIGHT += LIGHT_COLOR * ALBEDO * diff_dot * ATTENUATION;
// Aggiungiamo il riflesso speculare, moltiplicato per il colore della luce (così al tramonto è arancione!)
SPECULAR_LIGHT += LIGHT_COLOR * spec_toon * intensita_riflesso * ATTENUATION;
}

View File

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

View File

@@ -5,7 +5,7 @@
[resource]
render_priority = 0
shader = ExtResource("1_vresk")
shader_parameter/albedo_color = Color(0.48413807, 0.37183177, 0.06357419, 1)
shader_parameter/albedo_color = Color(0.79855084, 0.6236654, 0.12806374, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0

View File

@@ -0,0 +1,24 @@
[gd_resource type="ShaderMaterial" format=3 uid="uid://dbepc80w602ce"]
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="1_36htg"]
[resource]
render_priority = 0
shader = ExtResource("1_36htg")
shader_parameter/albedo_color = Color(0.5128612, 0.093720816, 0.060247816, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(3, 3)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 1.5
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0

Binary file not shown.

View File

@@ -0,0 +1,44 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://dppgswi87skpw"
path="res://.godot/imported/scarecrow.fbx-706522906b0dab9da55e3f77e5b55a3e.scn"
[deps]
source_file="res://tgcc/chunk/prop/scarecrow/scarecrow.fbx"
dest_files=["res://.godot/imported/scarecrow.fbx-706522906b0dab9da55e3f77e5b55a3e.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1
fbx/naming_version=2

View File

@@ -0,0 +1,22 @@
[gd_scene format=3 uid="uid://be1px5nxfr4hs"]
[ext_resource type="PackedScene" uid="uid://dppgswi87skpw" path="res://tgcc/chunk/prop/scarecrow/scarecrow.fbx" id="1_jfbb0"]
[ext_resource type="Material" uid="uid://biaudrjlfoflm" path="res://tgcc/chunk/prop/house/house.tres" id="2_1m0fy"]
[ext_resource type="Material" uid="uid://buxlrrpn7rdgs" path="res://tgcc/chunk/material/wood.tres" id="3_0j66s"]
[ext_resource type="Material" uid="uid://dbepc80w602ce" path="res://tgcc/chunk/material/wood_bridge.tres" id="4_mmqmw"]
[ext_resource type="Material" uid="uid://duqt8txtre3qm" path="res://tgcc/chunk/material/wood2.tres" id="5_1m0fy"]
[node name="scarecrow" unique_id=1320042610 instance=ExtResource("1_jfbb0")]
[node name="hat" parent="." index="0" unique_id=169232380]
surface_material_override/0 = ExtResource("2_1m0fy")
surface_material_override/1 = ExtResource("3_0j66s")
[node name="head" parent="." index="1" unique_id=1765991055]
surface_material_override/0 = ExtResource("2_1m0fy")
[node name="shirt" parent="." index="2" unique_id=1648916125]
surface_material_override/0 = ExtResource("4_mmqmw")
[node name="wood" parent="." index="3" unique_id=1178426919]
surface_material_override/0 = ExtResource("5_1m0fy")

Binary file not shown.

View File

@@ -0,0 +1,44 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://yduitvs71cly"
path="res://.godot/imported/VendingMachine_1.fbx-c08c372b59f683f6297706820583c67e.scn"
[deps]
source_file="res://tgcc/chunk/prop/vending machine/VendingMachine_1.fbx"
dest_files=["res://.godot/imported/VendingMachine_1.fbx-c08c372b59f683f6297706820583c67e.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1
fbx/naming_version=2

View File

@@ -0,0 +1,291 @@
[gd_scene format=3 uid="uid://5ap10ax3lnr7"]
[ext_resource type="PackedScene" uid="uid://yduitvs71cly" path="res://tgcc/chunk/prop/vending machine/VendingMachine_1.fbx" id="1_2gy5m"]
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="2_c8xsn"]
[ext_resource type="Material" uid="uid://lt21ti7jo8yj" path="res://tgcc/chunk/material/glass.tres" id="3_8lrtl"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_tugn1"]
render_priority = 0
shader = ExtResource("2_c8xsn")
shader_parameter/albedo_color = Color(0.1977076, 0.185074, 0.17154357, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.0
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_yhxjb"]
render_priority = 0
shader = ExtResource("2_c8xsn")
shader_parameter/albedo_color = Color(0.2510953, 0.448713, 0.1531955, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.0
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_4g07f"]
render_priority = 0
shader = ExtResource("2_c8xsn")
shader_parameter/albedo_color = Color(0.39680645, 0.03939905, 0.24652746, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.0
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_8lrtl"]
render_priority = 0
shader = ExtResource("2_c8xsn")
shader_parameter/albedo_color = Color(0.21267027, 0.21762055, 0.1688171, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.0
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ivdil"]
render_priority = 0
shader = ExtResource("2_c8xsn")
shader_parameter/albedo_color = Color(0.43137255, 0, 0.07450981, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.0
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_38noa"]
render_priority = 0
shader = ExtResource("2_c8xsn")
shader_parameter/albedo_color = Color(0.79855084, 0.6236654, 0.12806374, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.0
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0.64910424, 0.4375443, 0.04963681, 1)
shader_parameter/emission_energy = 8.5330004053175
[sub_resource type="ShaderMaterial" id="ShaderMaterial_44n02"]
render_priority = 0
shader = ExtResource("2_c8xsn")
shader_parameter/albedo_color = Color(0.3268116, 0.24098495, 0.024129823, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.0
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h38e8"]
render_priority = 0
shader = ExtResource("2_c8xsn")
shader_parameter/albedo_color = Color(0.43284842, 0, 0.07371623, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.0
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_1dhil"]
render_priority = 0
shader = ExtResource("2_c8xsn")
shader_parameter/albedo_color = Color(0.7205105, 0.21226168, 0.29410756, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.0
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_e03yv"]
render_priority = 0
shader = ExtResource("2_c8xsn")
shader_parameter/albedo_color = Color(0.53088605, 0.18851286, 0.23113313, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.0
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_qt06f"]
render_priority = 0
shader = ExtResource("2_c8xsn")
shader_parameter/albedo_color = Color(0.4775293, 0.8259454, 0.5505308, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(3, 3)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 1.5
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_c8xsn"]
render_priority = 0
shader = ExtResource("2_c8xsn")
shader_parameter/albedo_color = Color(0.70471025, 0.5608685, 0.1632992, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.0
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/use_ghibli_glint = true
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
shader_parameter/glint_intensity = 1.0
shader_parameter/glint_sharpness = 32.0
shader_parameter/emission_color = Color(0.7058824, 0.56078434, 0.16470589, 1)
shader_parameter/emission_energy = 9.4350004481625
[node name="VendingMachine_1" unique_id=1157270784 instance=ExtResource("1_2gy5m")]
[node name="Cartello" parent="." index="0" unique_id=83833849]
surface_material_override/0 = SubResource("ShaderMaterial_tugn1")
surface_material_override/1 = SubResource("ShaderMaterial_yhxjb")
surface_material_override/2 = SubResource("ShaderMaterial_4g07f")
[node name="CartelloUp" parent="." index="1" unique_id=237539239]
surface_material_override/0 = SubResource("ShaderMaterial_8lrtl")
surface_material_override/1 = SubResource("ShaderMaterial_ivdil")
surface_material_override/2 = SubResource("ShaderMaterial_38noa")
[node name="Vending machine" parent="." index="2" unique_id=989971963]
surface_material_override/0 = SubResource("ShaderMaterial_44n02")
surface_material_override/1 = SubResource("ShaderMaterial_h38e8")
surface_material_override/2 = SubResource("ShaderMaterial_1dhil")
surface_material_override/3 = SubResource("ShaderMaterial_e03yv")
surface_material_override/4 = ExtResource("3_8lrtl")
surface_material_override/5 = SubResource("ShaderMaterial_qt06f")
surface_material_override/6 = SubResource("ShaderMaterial_c8xsn")
[node name="OmniLight3D24" type="OmniLight3D" parent="." index="3" unique_id=1800848684]
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0.28955734, 1.6496534, 0)
light_color = Color(0.9372549, 0.49411765, 0.14509805, 1)
light_energy = 0.5
light_indirect_energy = 0.0
light_volumetric_fog_energy = 0.0
light_specular = 0.0
light_bake_mode = 1
shadow_enabled = true
shadow_opacity = 0.96
omni_range = 10.0
omni_attenuation = 2.0

Binary file not shown.

View File

@@ -0,0 +1,44 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://b1a2fh1ltrxrv"
path="res://.godot/imported/well_stone.fbx-ff8c04e03dfa7b6a8936f6ee7e7855cc.scn"
[deps]
source_file="res://tgcc/chunk/prop/well/stone/well_stone.fbx"
dest_files=["res://.godot/imported/well_stone.fbx-ff8c04e03dfa7b6a8936f6ee7e7855cc.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1
fbx/naming_version=2

View File

@@ -0,0 +1,28 @@
[gd_scene format=3 uid="uid://l3inky72a783"]
[ext_resource type="PackedScene" uid="uid://b1a2fh1ltrxrv" path="res://tgcc/chunk/prop/well/stone/well_stone.fbx" id="1_u0q10"]
[ext_resource type="Material" uid="uid://o31kp0jm07q3" path="res://tgcc/chunk/material/rocks.tres" id="2_4joiy"]
[ext_resource type="Material" uid="uid://biaudrjlfoflm" path="res://tgcc/chunk/prop/house/house.tres" id="3_y3xrt"]
[ext_resource type="Material" uid="uid://duqt8txtre3qm" path="res://tgcc/chunk/material/wood2.tres" id="4_nqn56"]
[ext_resource type="Material" uid="uid://buxlrrpn7rdgs" path="res://tgcc/chunk/material/wood.tres" id="5_283lv"]
[ext_resource type="Material" uid="uid://ce0bdk3mx2xao" path="res://tgcc/chunk/material/water_chunk.tres" id="6_7c0vi"]
[node name="well_stone" unique_id=2044144917 instance=ExtResource("1_u0q10")]
[node name="Stone" parent="." index="0" unique_id=477540065]
surface_material_override/0 = ExtResource("2_4joiy")
[node name="Tetto_002" parent="." index="1" unique_id=1219823041]
surface_material_override/0 = ExtResource("3_y3xrt")
[node name="corda" parent="." index="2" unique_id=1898460217]
surface_material_override/0 = ExtResource("4_nqn56")
[node name="trave" parent="." index="3" unique_id=1149976697]
surface_material_override/0 = ExtResource("5_283lv")
[node name="water" parent="." index="4" unique_id=2138617236]
surface_material_override/0 = ExtResource("6_7c0vi")
[node name="wood_001" parent="." index="5" unique_id=684860840]
surface_material_override/0 = ExtResource("5_283lv")

Binary file not shown.

View File

@@ -0,0 +1,44 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://blysm4v0rxraq"
path="res://.godot/imported/well_wood.fbx-e7ece0e85ca2d7b19c1d264929dd27da.scn"
[deps]
source_file="res://tgcc/chunk/prop/well/wood/well_wood.fbx"
dest_files=["res://.godot/imported/well_wood.fbx-e7ece0e85ca2d7b19c1d264929dd27da.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1
fbx/naming_version=2

View File

@@ -0,0 +1,31 @@
[gd_scene format=3 uid="uid://cff8d3fy3cd6b"]
[ext_resource type="PackedScene" uid="uid://blysm4v0rxraq" path="res://tgcc/chunk/prop/well/wood/well_wood.fbx" id="1_rwkjn"]
[ext_resource type="Material" uid="uid://biaudrjlfoflm" path="res://tgcc/chunk/prop/house/house.tres" id="2_tc4nn"]
[ext_resource type="Material" uid="uid://duqt8txtre3qm" path="res://tgcc/chunk/material/wood2.tres" id="3_rspl4"]
[ext_resource type="Material" uid="uid://o31kp0jm07q3" path="res://tgcc/chunk/material/rocks.tres" id="4_sxgf5"]
[ext_resource type="Material" uid="uid://buxlrrpn7rdgs" path="res://tgcc/chunk/material/wood.tres" id="5_q6vdp"]
[ext_resource type="Material" uid="uid://ce0bdk3mx2xao" path="res://tgcc/chunk/material/water_chunk.tres" id="6_y0k2u"]
[node name="well_wood" unique_id=2128929413 instance=ExtResource("1_rwkjn")]
[node name="Teto" parent="." index="0" unique_id=1422009365]
surface_material_override/0 = ExtResource("2_tc4nn")
[node name="corda_001" parent="." index="1" unique_id=891098903]
surface_material_override/0 = ExtResource("3_rspl4")
[node name="rock" parent="." index="2" unique_id=1146223009]
surface_material_override/0 = ExtResource("4_sxgf5")
[node name="trave_001" parent="." index="3" unique_id=1426615637]
surface_material_override/0 = ExtResource("5_q6vdp")
[node name="water_001" parent="." index="4" unique_id=1298571451]
surface_material_override/0 = ExtResource("6_y0k2u")
[node name="wood_002" parent="." index="5" unique_id=338477787]
surface_material_override/0 = ExtResource("3_rspl4")
[node name="wood2" parent="." index="6" unique_id=1057942169]
surface_material_override/0 = ExtResource("5_q6vdp")

View File

@@ -0,0 +1,46 @@
[gd_scene format=3 uid="uid://d2ybyhv6x8oto"]
[ext_resource type="PackedScene" uid="uid://ddemvbsemklv1" path="res://tgcc/chunk/river/mesh/chunk_river_curve_2.fbx" id="1_ed43r"]
[ext_resource type="Material" uid="uid://blqelpjvdv23j" path="res://tgcc/chunk/material/grassflat_chunk.tres" id="2_0nqbm"]
[ext_resource type="Script" uid="uid://dg2h4kbqe8j3m" path="res://core/biome_generator/chunk_info.gd" id="2_evkha"]
[ext_resource type="Material" uid="uid://b4whdyou2ah3s" path="res://tgcc/chunk/prop/zen garden/zengarden.tres" id="3_6pq05"]
[ext_resource type="Material" uid="uid://d37iugof887py" path="res://tgcc/chunk/material/water_river.tres" id="4_evkha"]
[ext_resource type="Shader" uid="uid://dvl43hb4bvb6n" path="res://tgcc/chunk/prop/zen garden/zengardencircle.gdshader" id="5_6pq05"]
[sub_resource type="PlaneMesh" id="PlaneMesh_evkha"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_a28qb"]
render_priority = 0
shader = ExtResource("5_6pq05")
shader_parameter/colore_sabbia = Color(0.9, 0.85, 0.7, 1)
shader_parameter/frequenza = 22.91
shader_parameter/inclinazione_normale = 0.400000019
[node name="chunk_river_curve_2" unique_id=191563018 instance=ExtResource("1_ed43r")]
script = ExtResource("2_evkha")
river_south = true
river_west = true
[node name="Argini_F_004" parent="." index="0" unique_id=998394083]
surface_material_override/0 = ExtResource("2_0nqbm")
[node name="Grass_013" parent="." index="1" unique_id=1345725796]
surface_material_override/0 = ExtResource("3_6pq05")
[node name="Water_F_004" parent="." index="2" unique_id=726188602]
surface_material_override/0 = ExtResource("4_evkha")
[node name="MeshInstance3D" type="MeshInstance3D" parent="." index="3" unique_id=440474384]
transform = Transform3D(3.2268727, 0, 0, 0, 1, 0, 0, 0, 3.2268727, -6.597686, 0.023309946, 6.9251833)
mesh = SubResource("PlaneMesh_evkha")
surface_material_override/0 = SubResource("ShaderMaterial_a28qb")
[node name="MeshInstance3D2" type="MeshInstance3D" parent="." index="4" unique_id=1508019649]
transform = Transform3D(4.4853163, 0, 0, 0, 1, 0, 0, 0, 4.4853163, -2.7410579, 0.023309946, 3.1897964)
mesh = SubResource("PlaneMesh_evkha")
surface_material_override/0 = SubResource("ShaderMaterial_a28qb")
[node name="MeshInstance3D3" type="MeshInstance3D" parent="." index="5" unique_id=238021925]
transform = Transform3D(2.2253478, 0, 0, 0, 1, 0, 0, 0, 2.2253478, 6.4033065, 0.023309946, 6.7838535)
mesh = SubResource("PlaneMesh_evkha")
surface_material_override/0 = SubResource("ShaderMaterial_a28qb")

View File

@@ -0,0 +1,33 @@
shader_type spatial;
render_mode blend_mix, depth_draw_always, diffuse_burley, specular_schlick_ggx;
uniform vec3 colore_sabbia : source_color = vec3(0.9, 0.85, 0.7);
uniform vec3 colore_solco : source_color = vec3(0.75, 0.7, 0.55); // Colore più scuro
uniform float frequenza = 10.0;
uniform float inclinazione_normale : hint_range(0.0, 2.0) = 0.8;
uniform float ampiezza_ombra : hint_range(0.0, 1.0) = 0.3; // Quanto è larga la riga scura
varying vec3 world_pos;
void vertex() {
world_pos = (MODEL_MATRIX * vec4(VERTEX, 1.0)).xyz;
}
void fragment() {
float riga = fract(world_pos.x * frequenza);
// --- LOGICA COLORE (RAFFORZAMENTO) ---
// Creiamo una "valle" scura al centro del solco (intorno a 0.5)
float maschera_colore = smoothstep(0.5 - ampiezza_ombra, 0.5, riga) - smoothstep(0.5, 0.5 + ampiezza_ombra, riga);
// Invertiamo o regoliamo per avere il fondo scuro
vec3 colore_finale = mix(colore_sabbia, colore_solco, maschera_colore);
// --- LOGICA NORMALE ---
float lato = sign(riga - 0.5);
vec3 n = NORMAL;
n.x += lato * inclinazione_normale;
ALBEDO = colore_finale;
NORMAL = normalize(n);
ROUGHNESS = 0.8;
}

View File

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

View File

@@ -0,0 +1,12 @@
[gd_resource type="ShaderMaterial" format=3 uid="uid://b4whdyou2ah3s"]
[ext_resource type="Shader" uid="uid://du8tvqhx1oiek" path="res://tgcc/chunk/prop/zen garden/zengarden.gdshader" id="1_1axno"]
[resource]
render_priority = 0
shader = ExtResource("1_1axno")
shader_parameter/colore_sabbia = Color(0.9, 0.85, 0.7, 1)
shader_parameter/colore_solco = Color(0.75, 0.7, 0.55, 1)
shader_parameter/frequenza = 6.0
shader_parameter/inclinazione_normale = 0.30000001425
shader_parameter/ampiezza_ombra = 0.3

View File

@@ -0,0 +1,12 @@
[gd_resource type="ShaderMaterial" format=3 uid="uid://b4k4sx4scor0x"]
[ext_resource type="Shader" uid="uid://dvl43hb4bvb6n" path="res://tgcc/chunk/prop/zen garden/zengardencircle.gdshader" id="1_6ysyq"]
[resource]
render_priority = -1
shader = ExtResource("1_6ysyq")
shader_parameter/colore_sabbia = Color(0.9, 0.85, 0.7, 1)
shader_parameter/colore_solco = Color(0.75, 0.7, 0.55, 1)
shader_parameter/frequenza = 25.0
shader_parameter/inclinazione_normale = 0.400000019
shader_parameter/ampiezza_ombra = 0.400000019

View File

@@ -0,0 +1,41 @@
shader_type spatial;
render_mode blend_mix, depth_draw_always, diffuse_burley, specular_schlick_ggx;
uniform vec3 colore_sabbia : source_color = vec3(0.9, 0.85, 0.7);
uniform vec3 colore_solco : source_color = vec3(0.75, 0.7, 0.55);
uniform float frequenza = 10.0;
uniform float inclinazione_normale : hint_range(0.0, 2.0) = 1.0;
uniform float ampiezza_ombra : hint_range(0.0, 1.0) = 0.4;
varying vec3 local_pos;
void vertex() {
local_pos = VERTEX;
}
void fragment() {
float d = distance(local_pos.xz, vec2(0.0));
// Taglio netto della decal (Alpha Scissor)
if (d > 0.5) {
discard;
}
float cerchio = fract(d * frequenza);
// --- LOGICA COLORE ---
// Crea un anello scuro in corrispondenza del cambio di pendenza
float maschera_colore = smoothstep(0.5 - ampiezza_ombra, 0.5, cerchio) - smoothstep(0.5, 0.5 + ampiezza_ombra, cerchio);
vec3 colore_finale = mix(colore_sabbia, colore_solco, maschera_colore);
// --- LOGICA NORMALE ---
vec2 dir_radiale = normalize(local_pos.xz);
float lato = sign(cerchio - 0.5);
vec3 n = NORMAL;
n.xz += dir_radiale * lato * inclinazione_normale;
ALBEDO = colore_finale;
NORMAL = normalize(n);
ROUGHNESS = 0.8;
SPECULAR = 0.0;
}

View File

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

View File

@@ -9,7 +9,6 @@
[ext_resource type="Material" uid="uid://fnjxocmx16b7" path="res://tgcc/chunk/prop/grass/grass_chunk.tres" id="4_xfgwo"]
[ext_resource type="Material" uid="uid://bjrb33qwp1p43" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds.tres" id="5_ain0v"]
[ext_resource type="Material" uid="uid://0x17mj2v807r" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds2.tres" id="6_nebt2"]
[ext_resource type="PackedScene" uid="uid://bgb4pfflokl5s" path="res://tgcc/chunk/prop/pylon/pylon.tscn" id="10_v2rwj"]
[ext_resource type="PackedScene" uid="uid://d12t04rs47jq3" path="res://tgcc/chunk/prop/tree/tree_01.tscn" id="11_v2rwj"]
[ext_resource type="PackedScene" uid="uid://cuh0xw6ff6bku" path="res://tgcc/chunk/prop/flower/flower.tscn" id="12_ss6fe"]
@@ -43,9 +42,6 @@ size = Vector3(20, 10, 20)
[node name="chunk_railway_curve" unique_id=238887300 groups=["weather_node"] node_paths=PackedStringArray("connection_left", "connection_right") instance=ExtResource("1_r0w7x")]
script = ExtResource("2_nebt2")
chunk_type = 2
have_lamppost = true
connection_left = [NodePath("PaloLuce3/sx"), NodePath("PaloLuce2/sx"), NodePath("PaloLuce/sx")]
connection_right = [NodePath("PaloLuce3/dx"), NodePath("PaloLuce2/dx"), NodePath("PaloLuce/dx")]
[node name="BézierCurve_003" parent="." index="0" unique_id=826544595]
surface_material_override/0 = ExtResource("2_ain0v")
@@ -117,25 +113,7 @@ shape = SubResource("BoxShape3D_xfgwo")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20, 4, 0)
shape = SubResource("BoxShape3D_xfgwo")
[node name="PaloLuce" parent="." index="5" unique_id=1607500596 instance=ExtResource("10_v2rwj")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.1802254, 0, -28.005638)
[node name="Cube" parent="PaloLuce" index="0" unique_id=1142687027]
transform = Transform3D(-4.3711393e-06, 100.00001, 1.1920929e-05, 0, -1.1920929e-05, 100.00001, 100.000015, 4.371139e-06, 5.210804e-13, 4.760495, 0, -0.002784729)
[node name="PaloLuce2" parent="." index="6" unique_id=668176867 instance=ExtResource("10_v2rwj")]
transform = Transform3D(0.67383826, 0, -0.73887885, 0, 1, 0, 0.73887885, 0, 0.67383826, -0.36678743, 0, -3.5238495)
[node name="Cube" parent="PaloLuce2" index="0" unique_id=1142687027]
transform = Transform3D(0, 100.000015, 1.1920929e-05, 0, -1.1920929e-05, 100.00001, 100.000015, 3.8146973e-06, 0, 2.308104, -1.9073486e-06, -0.90790176)
[node name="PaloLuce3" parent="." index="7" unique_id=633610471 instance=ExtResource("10_v2rwj")]
transform = Transform3D(0.033818066, 0, -0.9994279, 0, 1, 0, 0.9994279, 0, 0.033818066, -26.781347, 0, 9.45334)
[node name="Cube" parent="PaloLuce3" index="0" unique_id=1142687027]
transform = Transform3D(-4.2915344e-06, 100.000015, 1.192093e-05, 0, -1.1920929e-05, 100.00001, 100.00002, 4.2915344e-06, 5.1159077e-13, 1.5642233, 0, 0.05023575)
[node name="Tree" type="Node3D" parent="." index="8" unique_id=229613049]
[node name="Tree" type="Node3D" parent="." index="5" unique_id=229613049]
[node name="TreeTest3" parent="Tree" index="0" unique_id=1532527216 instance=ExtResource("11_v2rwj")]
transform = Transform3D(1.258351, 0, -1.1430457, 0, 1.7000003, 0, 1.1430457, 0, 1.258351, 3.4696913, 0, -28.48431)
@@ -293,7 +271,7 @@ transform = Transform3D(1.4339567, 0, 0.9131093, 0, 1.7000002, 0, -0.9131093, 0,
[node name="TreeTest22" parent="Tree" index="51" unique_id=504561169 instance=ExtResource("11_v2rwj")]
transform = Transform3D(-1.6730486, 0, 0.30151117, 0, 1.7000005, 0, -0.30151117, 0, -1.6730486, -22.988789, 0.678772, 3.902561)
[node name="Flower2" type="Node3D" parent="." index="9" unique_id=913717123]
[node name="Flower2" type="Node3D" parent="." index="6" unique_id=913717123]
[node name="Flower" parent="Flower2" index="0" unique_id=705935685 instance=ExtResource("12_ss6fe")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.028124, 0, 6.3845816)
@@ -409,7 +387,4 @@ transform = Transform3D(0.19438852, 0, 0.98092467, 0, 1, 0, -0.98092467, 0, 0.19
[node name="Flower36" parent="Flower2" index="37" unique_id=2100770937 instance=ExtResource("12_ss6fe")]
transform = Transform3D(0.71336067, 0, -0.7007972, 0, 1, 0, 0.7007972, 0, 0.71336067, 11.189318, 0, -27.307688)
[editable path="PaloLuce"]
[editable path="PaloLuce2"]
[editable path="PaloLuce3"]
[editable path="Tree/TreeTest3"]

View File

@@ -9,7 +9,6 @@
[ext_resource type="Material" uid="uid://fnjxocmx16b7" path="res://tgcc/chunk/prop/grass/grass_chunk.tres" id="7_w4l3j"]
[ext_resource type="Material" uid="uid://bjrb33qwp1p43" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds.tres" id="8_yjwg7"]
[ext_resource type="Material" uid="uid://0x17mj2v807r" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds2.tres" id="9_xfkev"]
[ext_resource type="PackedScene" uid="uid://bgb4pfflokl5s" path="res://tgcc/chunk/prop/pylon/pylon.tscn" id="10_3bqor"]
[ext_resource type="PackedScene" uid="uid://d12t04rs47jq3" path="res://tgcc/chunk/prop/tree/tree_01.tscn" id="11_rmmhu"]
[ext_resource type="PackedScene" uid="uid://cuh0xw6ff6bku" path="res://tgcc/chunk/prop/flower/flower.tscn" id="12_horjc"]
[ext_resource type="Shader" uid="uid://cs0xl7pc6e26h" path="res://core/daynight/tree_leaves.gdshader" id="12_w2mr5"]
@@ -65,9 +64,6 @@ shader_parameter/wetness_darkening = 0.25
[node name="chunk_railway_curve" unique_id=238887300 groups=["weather_node"] node_paths=PackedStringArray("connection_left", "connection_right") instance=ExtResource("1_5qkha")]
script = ExtResource("2_ebdep")
chunk_type = 2
have_lamppost = true
connection_left = [NodePath("PaloLuce3/sx"), NodePath("PaloLuce2/sx"), NodePath("PaloLuce/sx")]
connection_right = [NodePath("PaloLuce3/dx"), NodePath("PaloLuce2/dx"), NodePath("PaloLuce/dx")]
[node name="BézierCurve_003" parent="." index="0" unique_id=826544595]
surface_material_override/0 = ExtResource("3_w2mr5")
@@ -139,25 +135,7 @@ shape = SubResource("BoxShape3D_xfgwo")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20, 4, 0)
shape = SubResource("BoxShape3D_xfgwo")
[node name="PaloLuce" parent="." index="5" unique_id=1607500596 instance=ExtResource("10_3bqor")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.1802254, 0, -28.005638)
[node name="Cube" parent="PaloLuce" index="0" unique_id=1142687027]
transform = Transform3D(-4.3711393e-06, 100.00001, 1.1920929e-05, 0, -1.1920929e-05, 100.00001, 100.000015, 4.371139e-06, 5.210804e-13, 4.760495, 0, -0.002784729)
[node name="PaloLuce2" parent="." index="6" unique_id=668176867 instance=ExtResource("10_3bqor")]
transform = Transform3D(0.67383826, 0, -0.73887885, 0, 1, 0, 0.73887885, 0, 0.67383826, -0.36678743, 0, -3.5238495)
[node name="Cube" parent="PaloLuce2" index="0" unique_id=1142687027]
transform = Transform3D(0, 100.000015, 1.1920929e-05, 0, -1.1920929e-05, 100.00001, 100.000015, 3.8146973e-06, 0, 2.308104, -1.9073486e-06, -0.90790176)
[node name="PaloLuce3" parent="." index="7" unique_id=633610471 instance=ExtResource("10_3bqor")]
transform = Transform3D(0.033818066, 0, -0.9994279, 0, 1, 0, 0.9994279, 0, 0.033818066, -26.781347, 0, 9.45334)
[node name="Cube" parent="PaloLuce3" index="0" unique_id=1142687027]
transform = Transform3D(-4.2915344e-06, 100.000015, 1.192093e-05, 0, -1.1920929e-05, 100.00001, 100.00002, 4.2915344e-06, 5.1159077e-13, 1.5642233, 0, 0.05023575)
[node name="Tree" type="Node3D" parent="." index="8" unique_id=229613049]
[node name="Tree" type="Node3D" parent="." index="5" unique_id=229613049]
[node name="TreeTest3" parent="Tree" index="0" unique_id=1532527216 instance=ExtResource("11_rmmhu")]
transform = Transform3D(1.258351, 0, -1.1430457, 0, 1.7000003, 0, 1.1430457, 0, 1.258351, 8.469691, 0, -28.48431)
@@ -405,7 +383,7 @@ transform = Transform3D(70.71069, -70.71068, -3.0908614e-06, 0, -4.371139e-06, 1
[node name="MultiMeshInstance3D" parent="Tree/TreeTest32/Leaf" index="0" unique_id=153924119]
material_override = SubResource("ShaderMaterial_265s3")
[node name="Flower2" type="Node3D" parent="." index="9" unique_id=913717123]
[node name="Flower2" type="Node3D" parent="." index="6" unique_id=913717123]
[node name="Flower" parent="Flower2" index="0" unique_id=705935685 instance=ExtResource("12_horjc")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.028124, 0, 9.384582)
@@ -521,9 +499,6 @@ transform = Transform3D(0.19438852, 0, 0.98092467, 0, 1, 0, -0.98092467, 0, 0.19
[node name="Flower36" parent="Flower2" index="37" unique_id=2100770937 instance=ExtResource("12_horjc")]
transform = Transform3D(0.71336067, 0, -0.7007972, 0, 1, 0, 0.7007972, 0, 0.71336067, 11.189318, 0, -27.307688)
[editable path="PaloLuce"]
[editable path="PaloLuce2"]
[editable path="PaloLuce3"]
[editable path="Tree/TreeTest3"]
[editable path="Tree/TreeTest4"]
[editable path="Tree/TreeTest5"]

Binary file not shown.

View File

@@ -0,0 +1,44 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://buv8xmfkpp4dr"
path="res://.godot/imported/chunk_river_cross_2.fbx-17f32db13905c0777aa18a65382353d3.scn"
[deps]
source_file="res://tgcc/chunk/river/mesh/chunk_river_cross_2.fbx"
dest_files=["res://.godot/imported/chunk_river_cross_2.fbx-17f32db13905c0777aa18a65382353d3.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1
fbx/naming_version=2

Binary file not shown.

View File

@@ -0,0 +1,44 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://cmpajc8yrlax6"
path="res://.godot/imported/chunk_river_curve_3.fbx-67d13f16ed66438f9a15fa3604c112ed.scn"
[deps]
source_file="res://tgcc/chunk/river/mesh/chunk_river_curve_3.fbx"
dest_files=["res://.godot/imported/chunk_river_curve_3.fbx-67d13f16ed66438f9a15fa3604c112ed.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1
fbx/naming_version=2

Binary file not shown.

View File

@@ -0,0 +1,44 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://dng3n0epr63am"
path="res://.godot/imported/chunk_river_straight_2.fbx-e89840723db6c61f3f7d317784ccfa21.scn"
[deps]
source_file="res://tgcc/chunk/river/mesh/chunk_river_straight_2.fbx"
dest_files=["res://.godot/imported/chunk_river_straight_2.fbx-e89840723db6c61f3f7d317784ccfa21.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1
fbx/naming_version=2

Binary file not shown.

View File

@@ -0,0 +1,44 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://biq582icdrw6d"
path="res://.godot/imported/chunk_river_straight_3.fbx-cf1b23e4666736acf429b1ba2d6ce793.scn"
[deps]
source_file="res://tgcc/chunk/river/mesh/chunk_river_straight_3.fbx"
dest_files=["res://.godot/imported/chunk_river_straight_3.fbx-cf1b23e4666736acf429b1ba2d6ce793.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1
fbx/naming_version=2

Binary file not shown.

View File

@@ -0,0 +1,44 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://sqedn5gppjtc"
path="res://.godot/imported/chunk_river_straight_5.fbx-09ecb06acd6a4030b0e9e9e14b432b37.scn"
[deps]
source_file="res://tgcc/chunk/river/mesh/chunk_river_straight_5.fbx"
dest_files=["res://.godot/imported/chunk_river_straight_5.fbx-09ecb06acd6a4030b0e9e9e14b432b37.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1
fbx/naming_version=2

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -39,6 +39,8 @@ buffer = PackedFloat32Array(-2.4161933e-08, 0.9076278, 0.4221527, 8.701078, -1.0
[node name="chunk_river_curve_2" unique_id=191563018 instance=ExtResource("1_by8bx")]
script = ExtResource("2_1jh71")
river_south = true
river_west = true
[node name="Argini_F_004" parent="." index="0" unique_id=998394083]
surface_material_override/0 = ExtResource("2_ejgtv")
@@ -81,157 +83,226 @@ cast_shadow = 0
multimesh = SubResource("MultiMesh_6sa8p")
[node name="Bambu" type="Node3D" parent="." index="4" unique_id=718852871]
visible = false
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -31.815884, 0, 0)
[node name="Bambù" parent="Bambu" index="0" unique_id=514636059 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, 9.461747, 0, -3.4025283)
transform = Transform3D(0.8278764, 0.06287517, -0.5573755, -0.046085197, 0.9979625, 0.044125043, 0.55901426, -0.010843327, 0.8290872, 30.405457, 0, 3.8645432)
[node name="Bambù2" parent="Bambu" index="1" unique_id=911103129 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 9.461747, -0.2565055, -2.5334916)
transform = Transform3D(0.8267325, 0.07238789, -0.55791897, -0.0872253, 0.9961887, 0, 0.55579245, 0.04866464, 0.8298955, 29.920605, -0.2565055, 4.585753)
[node name="Bambù3" parent="Bambu" index="2" unique_id=1673026671 instance=ExtResource("8_nbeq3")]
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, 9.461747, 0, -1.690526)
transform = Transform3D(0.8298955, 0.0075171394, -0.55786824, 0, 0.9999092, 0.013473534, 0.5579189, -0.011181626, 0.82982016, 29.450298, 0, 5.285326)
[node name="Bambù5" parent="Bambu" index="3" unique_id=446972919 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, 9.461747, -0.57449174, -6.0887227)
transform = Transform3D(0.8278764, 0.06287517, -0.5573755, -0.046085197, 0.9979625, 0.044125043, 0.55901426, -0.010843327, 0.8290872, 32.511173, -0.57449174, 2.1748714)
[node name="Bambù6" parent="Bambu" index="4" unique_id=1716987629 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 9.461747, -0.3562231, -5.219686)
transform = Transform3D(0.8267325, 0.07238789, -0.55791897, -0.0872253, 0.9961887, 0, 0.55579245, 0.04866464, 0.8298955, 31.419283, -0.3562231, 2.3564923)
[node name="Bambù7" parent="Bambu" index="5" unique_id=111309254 instance=ExtResource("8_nbeq3")]
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, 9.461747, 0, -4.3767204)
transform = Transform3D(0.8298955, 0.0075171394, -0.55786824, 0, 0.9999092, 0.013473534, 0.5579189, -0.011181626, 0.82982016, 30.948977, 0, 3.0560656)
[node name="Bambù8" parent="Bambu" index="6" unique_id=827441605 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, 9.782687, 4.7683716e-07, -5.0548396)
transform = Transform3D(0.8278764, 0.06287517, -0.5573755, -0.046085197, 0.9979625, 0.044125043, 0.55901426, -0.010843327, 0.8290872, 31.59366, 4.7683716e-07, 2.672357)
[node name="Bambù9" parent="Bambu" index="7" unique_id=118971434 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 9.782687, 4.7683716e-07, -4.185803)
transform = Transform3D(0.8267325, 0.07238789, -0.55791897, -0.0872253, 0.9961887, 0, 0.55579245, 0.04866464, 0.8298955, 31.108809, 4.7683716e-07, 3.3935666)
[node name="Bambù10" parent="Bambu" index="8" unique_id=1918485413 instance=ExtResource("8_nbeq3")]
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, 9.782687, -0.2763033, -3.3428373)
transform = Transform3D(0.8298955, 0.0075171394, -0.55786824, 0, 0.9999092, 0.013473534, 0.5579189, -0.011181626, 0.82982016, 30.638502, -0.2763033, 4.09314)
[node name="Bambù11" parent="Bambu" index="9" unique_id=1841532379 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, 9.782687, 4.7683716e-07, -4.0548396)
transform = Transform3D(0.8278764, 0.06287517, -0.5573755, -0.046085197, 0.9979625, 0.044125043, 0.55901426, -0.010843327, 0.8290872, 31.035742, 4.7683716e-07, 3.5022526)
[node name="Bambù12" parent="Bambu" index="10" unique_id=429060428 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 9.782687, 0.26429868, -3.185803)
transform = Transform3D(0.8267325, 0.07238789, -0.55791897, -0.0872253, 0.9961887, 0, 0.55579245, 0.04866464, 0.8298955, 30.55089, 0.26429868, 4.223462)
[node name="Bambù17" parent="Bambu" index="11" unique_id=608257368 instance=ExtResource("8_nbeq3")]
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, 9.782687, 4.7683716e-07, -2.3428373)
transform = Transform3D(0.8298955, 0.0075171394, -0.55786824, 0, 0.9999092, 0.013473534, 0.5579189, -0.011181626, 0.82982016, 30.080584, 4.7683716e-07, 4.9230356)
[node name="Bambù18" parent="Bambu" index="12" unique_id=712332440 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, 9.587206, -0.4043932, -8.056931)
transform = Transform3D(0.8278764, 0.06287517, -0.5573755, -0.046085197, 0.9979625, 0.044125043, 0.55901426, -0.010843327, 0.8290872, 33.713394, -0.4043932, 0.61146104)
[node name="Bambù19" parent="Bambu" index="13" unique_id=813082434 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 9.587206, 4.7683716e-07, -7.187894)
transform = Transform3D(0.8267325, 0.07238789, -0.55791897, -0.0872253, 0.9961887, 0, 0.55579245, 0.04866464, 0.8298955, 33.228542, 4.7683716e-07, 1.3326706)
[node name="Bambù20" parent="Bambu" index="14" unique_id=1937372784 instance=ExtResource("8_nbeq3")]
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, 9.587206, 4.7683716e-07, -6.3449283)
transform = Transform3D(0.8298955, 0.0075171394, -0.55786824, 0, 0.9999092, 0.013473534, 0.5579189, -0.011181626, 0.82982016, 32.758236, 4.7683716e-07, 2.032244)
[node name="Bambù4" parent="Bambu" index="15" unique_id=1386368965 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.88067085, -0.10227825, -0.46255592, 0.10135726, 0.9944858, -0.026919719, 0.46275857, -0.023175985, 0.88618135, 3.0080128, -0.42294633, 7.91705)
[node name="Bambù26" parent="Bambu" index="15" unique_id=349218106 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.38035512, 0.023314431, -0.92454666, -0.04608519, 0.9979625, 0.044125054, 0.92369163, 0.059391078, -0.3785057, 32.386986, -0.57449174, -2.0847476)
[node name="Bambù13" parent="Bambu" index="16" unique_id=1407501850 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.99579215, 0.09164066, 0, -0.09164066, 0.99579215, 0, 0, 0, 1, 2.3076468, 0, 6.7598033)
[node name="Bambù27" parent="Bambu" index="16" unique_id=1163919215 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.38035512, 0.023314431, -0.92454666, -0.04608519, 0.9979625, 0.044125054, 0.92369163, 0.059391078, -0.3785057, 34.160927, -0.4043932, -1.2229347)
[node name="Bambù14" parent="Bambu" index="17" unique_id=5004605 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.99390334, 0.110254735, 0, -0.110254735, 0.99390334, 0, 0, 0, 1, 2.3076468, 0.32301903, 7.62884)
[node name="Bambù28" parent="Bambu" index="17" unique_id=1930522805 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.37743062, -0.033047438, -0.925448, -0.0872253, 0.9961887, 3.6744758e-09, 0.92192084, 0.080722496, -0.37887475, 33.35668, 4.7683716e-07, -1.5521908)
[node name="Bambù15" parent="Bambu" index="18" unique_id=1800029865 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.99243087, -0.122804746, 0, 0.122804746, 0.99243087, 0, 0, 0, 1, 2.3076468, 0, 8.471806)
[node name="Bambù29" parent="Bambu" index="18" unique_id=1816776826 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.37887472, 0.0124690635, -0.92536396, 3.907812e-09, 0.9999092, 0.013473541, 0.92544794, 0.005104781, -0.37884033, 32.576553, 4.7683716e-07, -1.8715684)
[node name="Bambù16" parent="Bambu" index="19" unique_id=1386615944 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.9034512, -0.06505524, -0.42372638, 0.015782122, 0.99279577, -0.118775204, 0.4284007, 0.10062031, 0.8979694, 2.2757616, -0.3681563, 8.997369)
[node name="Bambù30" parent="Bambu" index="19" unique_id=369526031 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.06427674, 0.0470429, -0.9968227, -0.04608519, 0.9979625, 0.044125054, 0.99686736, 0.043102525, 0.06631376, 32.150078, -0.96456075, -0.37262297)
[node name="Bambù21" parent="Bambu" index="20" unique_id=1848700160 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.4627586, 0.02317599, -0.88618135, 0.10135725, 0.99448574, -0.026919715, 0.8806708, -0.10227824, -0.4625559, 3.2320342, -0.42294633, 9.680028)
[node name="Bambù31" parent="Bambu" index="20" unique_id=236764454 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.06427674, 0.0470429, -0.9968227, -0.04608519, 0.9979625, 0.044125054, 0.99686736, 0.043102525, 0.06631376, 34.12228, -0.7944622, -0.37808502)
[node name="Bambù22" parent="Bambu" index="21" unique_id=1025064897 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-4.3527457e-08, -4.0057406e-09, -1, -0.09164066, 0.99579215, 0, 0.99579215, 0.09164066, -4.371139e-08, 4.389281, 0, 9.4773655)
[node name="Bambù32" parent="Bambu" index="21" unique_id=882786947 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.06612552, 0.005789906, -0.9977946, -0.0872253, 0.99618876, 4.10384e-09, 0.99399155, 0.087032914, 0.0663784, 33.255157, -0.39006853, -0.3204008)
[node name="Bambù23" parent="Bambu" index="22" unique_id=1624498031 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-4.3444896e-08, -4.8193876e-09, -1, -0.110254735, 0.99390334, 0, 0.99390334, 0.110254735, -4.371139e-08, 3.5202441, 0.32301903, 9.4773655)
[node name="Bambù33" parent="Bambu" index="22" unique_id=295538370 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.066378415, 0.013443827, -0.997704, 4.1339825e-09, 0.99990916, 0.013473541, 0.99779457, -0.0008943558, 0.06637236, 32.414047, -0.39006853, -0.2644422)
[node name="Bambù24" parent="Bambu" index="23" unique_id=1316389609 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-4.338053e-08, 5.367966e-09, -1, 0.122804746, 0.99243087, 0, 0.99243087, -0.122804746, -4.371139e-08, 2.6772785, 0, 9.4773655)
[node name="Bambù34" parent="Bambu" index="23" unique_id=417660963 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.6168501, 0.063174285, -0.78454125, -0.046085197, 0.9979626, 0.044125054, 0.78573036, 0.008937184, 0.61850476, 29.542953, -0.96456075, -0.48354188)
[node name="Bambù25" parent="Bambu" index="24" unique_id=1726487928 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.42840073, -0.10062032, -0.8979694, 0.015782116, 0.9927959, -0.11877522, 0.90345126, -0.06505525, -0.4237265, 2.1517153, -0.3681563, 9.44548)
[node name="Bambù35" parent="Bambu" index="24" unique_id=1498923409 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.6168501, 0.063174285, -0.78454125, -0.046085197, 0.9979626, 0.044125054, 0.78573036, 0.008937184, 0.61850476, 31.16628, -0.7944622, -1.6035532)
[node name="Bambu2" type="Node3D" parent="Bambu" index="25" unique_id=2079270720]
[node name="Bambù36" parent="Bambu" index="25" unique_id=892938834 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.61674803, 0.054001864, -0.78530616, -0.087225296, 0.99618864, 4.0259702e-09, 0.7823129, 0.06849853, 0.61910766, 30.483818, -0.39006853, -1.0655253)
[node name="Bambù37" parent="Bambu" index="26" unique_id=58430446 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.6191077, 0.010580853, -0.7852349, 4.2538817e-09, 0.99990916, 0.01347354, 0.78530616, -0.008341576, 0.6190515, 29.82183, -0.39006853, -0.5436335)
[node name="Bambù38" parent="Bambu" index="27" unique_id=1526399036 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.6168501, 0.063174285, -0.78454125, -0.046085197, 0.9979626, 0.044125054, 0.78573036, 0.008937184, 0.61850476, 27.111229, -0.96456075, 1.0993724)
[node name="Bambù39" parent="Bambu" index="28" unique_id=118201189 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.6168501, 0.063174285, -0.78454125, -0.046085197, 0.9979626, 0.044125054, 0.78573036, 0.008937184, 0.61850476, 28.734558, -0.7944622, -0.020638943)
[node name="Bambù40" parent="Bambu" index="29" unique_id=1767844112 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.61674803, 0.054001864, -0.78530616, -0.087225296, 0.99618864, 4.0259702e-09, 0.7823129, 0.06849853, 0.61910766, 28.052094, -0.39006853, 0.51738894)
[node name="Bambù41" parent="Bambu" index="30" unique_id=618179609 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.6191077, 0.010580853, -0.7852349, 4.2538817e-09, 0.99990916, 0.01347354, 0.78530616, -0.008341576, 0.6190515, 27.390106, -0.39006853, 1.0392807)
[node name="Bambù42" parent="Bambu" index="31" unique_id=892396989 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.74203146, 0.06377233, -0.66732484, -0.046085197, 0.9979627, 0.04412505, 0.6687793, -0.001988382, 0.7434587, 29.651615, -0.96456075, 0.8472856)
[node name="Bambù43" parent="Bambu" index="32" unique_id=114194737 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.74203146, 0.06377233, -0.66732484, -0.046085197, 0.9979627, 0.04412505, 0.6687793, -0.001988382, 0.7434587, 31.059706, -0.7944622, -0.5336226)
[node name="Bambù44" parent="Bambu" index="33" unique_id=371622751 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.74134696, 0.06491162, -0.66797554, -0.087225296, 0.99618864, 8.0519404e-09, 0.6654295, 0.058264326, 0.74418336, 30.479206, -0.39006853, 0.11310145)
[node name="Bambù45" parent="Bambu" index="34" unique_id=1388199069 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.7441834, 0.008999994, -0.6679149, 4.8304707e-09, 0.99990916, 0.013473539, 0.6679754, -0.010026785, 0.7441157, 29.916124, -0.39006853, 0.7404278)
[node name="Bambù46" parent="Bambu" index="35" unique_id=1715224342 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.74203146, 0.06377233, -0.66732484, -0.046085197, 0.9979627, 0.04412505, 0.6687793, -0.001988382, 0.7434587, 29.674557, -0.96456075, 1.9484438)
[node name="Bambù47" parent="Bambu" index="36" unique_id=2031107096 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.74203146, 0.06377233, -0.66732484, -0.046085197, 0.9979627, 0.04412505, 0.6687793, -0.001988382, 0.7434587, 31.082645, -0.7944622, 0.5675355)
[node name="Bambù48" parent="Bambu" index="37" unique_id=340974736 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.74134696, 0.06491162, -0.66797554, -0.087225296, 0.99618864, 8.0519404e-09, 0.6654295, 0.058264326, 0.74418336, 30.502148, -0.39006853, 1.2142596)
[node name="Bambù49" parent="Bambu" index="38" unique_id=1683471424 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.7441834, 0.008999994, -0.6679149, 4.8304707e-09, 0.99990916, 0.013473539, 0.6679754, -0.010026785, 0.7441157, 29.939064, -0.39006853, 1.8415859)
[node name="Bambù50" parent="Bambu" index="39" unique_id=1028534067 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.5326235, 0.061917473, -0.8440844, -0.046085197, 0.9979627, 0.04412505, 0.84509677, 0.0153977405, 0.53439206, 30.969563, -1.5062501, 1.5743859)
[node name="Bambù51" parent="Bambu" index="40" unique_id=817337516 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.5326235, 0.061917473, -0.8440844, -0.046085197, 0.9979627, 0.04412505, 0.84509677, 0.0153977405, 0.53439206, 32.69964, -1.3361516, 0.627566)
[node name="Bambù52" parent="Bambu" index="41" unique_id=1747187617 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.5328741, 0.04665795, -0.84490734, -0.0872253, 0.99618864, 1.0559284e-08, 0.8416869, 0.07369726, 0.5349128, 31.965378, -0.9317579, 1.0924256)
[node name="Bambù53" parent="Bambu" index="42" unique_id=198893737 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.5349129, 0.011383893, -0.8448307, 5.4525713e-09, 0.99990916, 0.01347354, 0.84490734, -0.0072071687, 0.5348642, 31.253147, -0.9317579, 1.543343)
[node name="Bambù4" parent="Bambu" index="43" unique_id=1386368965 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.039574802, 0.031068113, 0.9987334, 0.10135724, 0.99448556, -0.026919706, -0.9940625, 0.10016355, -0.042505622, 24.45057, -0.42294633, -3.4806232)
[node name="Bambù13" parent="Bambu" index="44" unique_id=1407501850 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.4978962, -0.045820348, 0.8660254, -0.09164067, 0.99579227, 3.7275267e-09, -0.86238134, -0.079363145, -0.50000006, 23.798546, 0, -2.2954702)
[node name="Bambù14" parent="Bambu" index="45" unique_id=5004605 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.4969517, -0.055127367, 0.8660253, -0.110254735, 0.99390334, 1.799177e-09, -0.86074543, -0.09548339, -0.5, 24.551155, 0.32301903, -2.729988)
[node name="Bambù15" parent="Bambu" index="46" unique_id=1800029865 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.49621543, 0.06140237, 0.8660253, 0.12280476, 0.992431, 3.598354e-09, -0.85947025, 0.10635203, -0.5, 25.281185, 0, -3.1514714)
[node name="Bambù16" parent="Bambu" index="47" unique_id=1386615944 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.08071965, 0.11966735, 0.98952746, 0.01578211, 0.99279577, -0.118775204, -0.99661183, 0.006029304, -0.08202702, 25.752277, -0.3681563, -3.3866372)
[node name="Bambù21" parent="Bambu" index="48" unique_id=1848700160 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.9940626, -0.10016355, 0.042505592, 0.10135724, 0.9944857, -0.026919719, -0.039574683, 0.031068143, 0.9987335, 25.865341, -0.42294633, -4.556123)
[node name="Bambù22" parent="Bambu" index="49" unique_id=1025064897 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.86238134, 0.07936314, 0.49999997, -0.09164066, 0.99579215, 5.293956e-23, -0.49789608, -0.04582033, 0.8660253, 25.111206, 0, -5.456999)
[node name="Bambù23" parent="Bambu" index="50" unique_id=1624498031 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.8607455, 0.09548339, 0.49999997, -0.110254735, 0.99390334, 1.799177e-09, -0.49695164, -0.055127364, 0.8660253, 25.545727, 0.32301903, -4.7043896)
[node name="Bambù24" parent="Bambu" index="51" unique_id=1316389609 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.85947037, -0.10635203, 0.5, 0.12280476, 0.992431, 0, -0.49621546, 0.061402377, 0.86602545, 25.967209, 0, -3.9743576)
[node name="Bambù25" parent="Bambu" index="52" unique_id=1726487928 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.9966121, -0.0060293265, 0.08202687, 0.01578212, 0.992796, -0.11877522, -0.08071974, 0.11966735, 0.9895276, 26.202377, -0.3681563, -3.5032666)
[node name="Bambu2" type="Node3D" parent="Bambu" index="53" unique_id=2079270720]
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -13.827694, 0, 0)
[node name="Bambù" parent="Bambu/Bambu2" index="0" unique_id=2129280296 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -4.9984035, 0, -4.9083085)
[node name="Bambù4" parent="Bambu/Bambu2" index="0" unique_id=665448262 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.92608213, 0.104202114, 0.36264798, 0.10135725, 0.99448574, -0.026919711, -0.3634533, 0.011827114, -0.9315373, -49.38831, -0.42294633, -6.6872373)
[node name="Bambù2" parent="Bambu/Bambu2" index="1" unique_id=683815131 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -4.9984035, -0.2565055, -4.039272)
[node name="Bambù13" parent="Bambu/Bambu2" index="1" unique_id=1235466370 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.98979366, -0.0910886, -0.10959567, -0.09164065, 0.99579215, 9.606655e-10, 0.109134555, 0.010043419, -0.9939763, -48.56533, 0, -5.6137195)
[node name="Bambù3" parent="Bambu/Bambu2" index="2" unique_id=296049413 instance=ExtResource("8_nbeq3")]
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -4.9984035, 0, -3.1963067)
[node name="Bambù14" parent="Bambu/Bambu2" index="2" unique_id=341781859 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.98791623, -0.109590575, -0.10959573, -0.110254735, 0.9939033, 7.6554474e-10, 0.10892743, 0.012083463, -0.9939761, -48.660576, 0.32301903, -6.477519)
[node name="Bambù5" parent="Bambu/Bambu2" index="3" unique_id=991574882 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -4.9984026, -0.57449174, -7.5945034)
[node name="Bambù15" parent="Bambu/Bambu2" index="3" unique_id=1436006711 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.9864525, 0.122064985, -0.10959564, 0.12280473, 0.9924308, -7.959143e-09, 0.10876608, -0.013458864, -0.99397606, -48.75296, 0, -7.315411)
[node name="Bambù6" parent="Bambu/Bambu2" index="4" unique_id=1201398111 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -4.9984026, -0.3562231, -6.7254667)
[node name="Bambù16" parent="Bambu/Bambu2" index="4" unique_id=881741022 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.9449601, 0.05363581, 0.32276043, 0.015782112, 0.992796, -0.11877522, -0.32680586, -0.10714394, -0.9389988, -48.778866, -0.3681563, -7.8412986)
[node name="Bambù7" parent="Bambu/Bambu2" index="5" unique_id=2045374201 instance=ExtResource("8_nbeq3")]
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -4.9984026, 0, -5.882501)
[node name="Bambù21" parent="Bambu/Bambu2" index="5" unique_id=2079969860 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.36345336, -0.011827111, 0.9315373, 0.10135724, 0.9944856, -0.026919711, -0.9260821, 0.104202144, 0.36264792, -49.8042, -0.42294633, -8.415042)
[node name="Bambù8" parent="Bambu/Bambu2" index="6" unique_id=741333340 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -4.6774607, 4.7683716e-07, -6.5606203)
[node name="Bambù22" parent="Bambu/Bambu2" index="6" unique_id=579249021 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.109134525, -0.010043428, 0.9939762, -0.09164067, 0.9957924, -2.761918e-09, -0.9897937, -0.091088615, -0.10959557, -50.932262, 0, -8.086774)
[node name="Bambù9" parent="Bambu/Bambu2" index="7" unique_id=670640034 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -4.6774607, 4.7683716e-07, -5.6915836)
[node name="Bambù23" parent="Bambu/Bambu2" index="7" unique_id=669024496 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.10892746, -0.01208346, 0.99397624, -0.11025473, 0.9939033, 0, -0.9879163, -0.10959056, -0.10959558, -50.068462, 0.32301903, -8.182014)
[node name="Bambù10" parent="Bambu/Bambu2" index="8" unique_id=1414412448 instance=ExtResource("8_nbeq3")]
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -4.6774616, -0.2763033, -4.848618)
[node name="Bambù24" parent="Bambu/Bambu2" index="8" unique_id=887710118 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.10876614, 0.013458862, 0.9939763, 0.12280475, 0.992431, -4.488135e-09, -0.98645276, 0.122065, -0.10959564, -49.23057, 0, -8.274399)
[node name="Bambù11" parent="Bambu/Bambu2" index="9" unique_id=565794432 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -4.6774607, 4.7683716e-07, -5.5606203)
[node name="Bambù25" parent="Bambu/Bambu2" index="9" unique_id=529767329 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.32680577, 0.10714399, 0.93899894, 0.015782114, 0.9927962, -0.11877524, -0.94495994, 0.053635824, 0.32276052, -48.704678, -0.3681563, -8.300307)
[node name="Bambù12" parent="Bambu/Bambu2" index="10" unique_id=1516583686 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -4.6774616, 0.26429868, -4.6915836)
[node name="Bambù5" parent="Bambu/Bambu2" index="10" unique_id=450545721 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.993163, -0.102723494, -0.055452745, 0.10135723, 0.9944857, -0.026919713, 0.057912286, 0.021115145, 0.9980985, -49.82535, -0.42294633, 4.2134247)
[node name="Bambù17" parent="Bambu/Bambu2" index="11" unique_id=2001473423 instance=ExtResource("8_nbeq3")]
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -4.6774616, 4.7683716e-07, -3.848618)
[node name="Bambù17" parent="Bambu/Bambu2" index="11" unique_id=1251161167 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.9069736, 0.08346685, 0.4128343, -0.09164064, 0.99579215, 1.0424422e-08, -0.41109714, -0.0378324, 0.91080624, -50.941, 0, 3.4485338)
[node name="Bambù18" parent="Bambu/Bambu2" index="12" unique_id=1420718399 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -4.872945, -0.4043932, -9.562711)
[node name="Bambù18" parent="Bambu/Bambu2" index="12" unique_id=420587784 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.9052531, 0.10042067, 0.41283426, -0.11025474, 0.9939033, -3.034424e-09, -0.41031727, -0.045516957, 0.91080594, -50.582233, 0.32301903, 4.2400546)
[node name="Bambù19" parent="Bambu/Bambu2" index="13" unique_id=1533126869 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -4.872945, 4.7683716e-07, -8.693674)
[node name="Bambù19" parent="Bambu/Bambu2" index="13" unique_id=1731991002 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.9039121, -0.11185133, 0.4128343, 0.12280477, 0.99243104, -1.6125247e-08, -0.40970942, 0.050698005, 0.9108062, -50.234226, 0, 5.007838)
[node name="Bambù20" parent="Bambu/Bambu2" index="14" unique_id=1544763258 instance=ExtResource("8_nbeq3")]
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -4.872945, 4.7683716e-07, -7.850709)
[node name="Bambù20" parent="Bambu/Bambu2" index="14" unique_id=1058320789 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.9997275, -0.017713211, -0.015220058, 0.015782118, 0.9927961, -0.11877524, 0.01721437, 0.11850265, 0.99280494, -50.046303, -0.3681563, 5.499684)
[node name="Bambù4" parent="Bambu/Bambu2" index="15" unique_id=665448262 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.11138129, 0.015545364, 0.99365616, 0.10135725, 0.99448574, -0.026919715, -0.9885953, 0.10371261, 0.10919154, -5.8229303, -0.42294633, 8.319021)
[node name="Bambù26" parent="Bambu/Bambu2" index="15" unique_id=1430759694 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.05791236, -0.021115154, -0.9980983, 0.10135723, 0.9944855, -0.02691971, 0.9931629, -0.10272352, -0.055452745, -48.893494, -0.42294633, 5.726669)
[node name="Bambù13" parent="Bambu/Bambu2" index="16" unique_id=1235466370 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.36159322, -0.033276662, 0.93174195, -0.09164066, 0.99579215, 3.226196e-09, -0.92782134, -0.08538545, -0.36312118, -6.646868, 0, 9.391801)
[node name="Bambù27" parent="Bambu/Bambu2" index="16" unique_id=1968307990 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.4110971, 0.0378324, -0.9108061, -0.09164066, 0.9957923, -4.885261e-09, 0.9069736, 0.083466835, 0.41283414, -47.92313, 0, 5.0643363)
[node name="Bambù14" parent="Bambu/Bambu2" index="17" unique_id=341781859 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.36090735, -0.040035836, 0.93174195, -0.110254735, 0.99390334, 0, -0.92606145, -0.102728955, -0.36312118, -5.8371496, 0.32301903, 9.076235)
[node name="Bambù28" parent="Bambu/Bambu2" index="17" unique_id=727382439 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.41031733, 0.045516957, -0.9108062, -0.11025476, 0.99390346, 5.7266636e-11, 0.90525335, 0.100420676, 0.41283423, -48.714657, 0.32301903, 5.4231005)
[node name="Bambù15" parent="Bambu/Bambu2" index="18" unique_id=1436006711 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.36037263, 0.044593003, 0.93174195, 0.12280475, 0.992431, -3.7252907e-09, -0.9246895, 0.11442235, -0.36312118, -5.0517225, 0, 8.770136)
[node name="Bambù29" parent="Bambu/Bambu2" index="18" unique_id=1303730544 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.40970948, -0.050697993, -0.9108061, 0.12280474, 0.99243087, -8.256929e-09, 0.9039121, -0.11185131, 0.41283426, -49.482437, 0, 5.771106)
[node name="Bambù16" parent="Bambu/Bambu2" index="19" unique_id=881741022 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.07109662, 0.11737506, 0.99053967, 0.015782116, 0.9927959, -0.11877521, -0.997345, 0.02407733, 0.068731904, -4.550457, -0.3681563, 8.609001)
[node name="Bambù21" parent="Bambu/Bambu2" index="20" unique_id=2079969860 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.9885953, -0.103712626, -0.10919148, 0.101357244, 0.9944857, -0.026919713, 0.11138135, 0.015545372, 0.99365616, -4.2616377, -0.42294633, 7.470112)
[node name="Bambù22" parent="Bambu/Bambu2" index="21" unique_id=579249021 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.9278213, 0.08538545, 0.36312112, -0.09164067, 0.99579227, -4.990932e-10, -0.36159322, -0.033276662, 0.9317419, -4.8706865, 0, 6.465448)
[node name="Bambù23" parent="Bambu/Bambu2" index="22" unique_id=669024496 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.92606145, 0.10272895, 0.36312112, -0.110254735, 0.99390334, 0, -0.3609073, -0.040035825, 0.93174195, -4.5551214, 0.32301903, 7.2751656)
[node name="Bambù24" parent="Bambu/Bambu2" index="23" unique_id=887710118 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.9246895, -0.11442233, 0.36312112, 0.12280475, 0.992431, -3.72529e-09, -0.36037263, 0.044592995, 0.93174195, -4.2490225, 0, 8.060595)
[node name="Bambù25" parent="Bambu/Bambu2" index="24" unique_id=529767329 instance=ExtResource("8_nbeq3")]
transform = Transform3D(0.9973448, -0.024077326, -0.068732, 0.015782112, 0.99279594, -0.11877522, 0.07109657, 0.11737511, 0.9905398, -4.087888, -0.3681563, 8.561861)
[node name="Bambù30" parent="Bambu/Bambu2" index="19" unique_id=1602654435 instance=ExtResource("8_nbeq3")]
transform = Transform3D(-0.017214386, -0.11850264, -0.99280494, 0.01578212, 0.9927963, -0.118775256, 0.99972737, -0.017713217, -0.015220177, -49.974285, -0.3681563, 5.9590387)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -41,7 +41,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 40, 0, 80)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -280, 0, -220)
[node name="Chunk_Rettilineo_12" parent="." unique_id=353270627 instance=ExtResource("2_e76ix")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -280, 0, -260)
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -380, 0, -320)
[node name="Chunk_Rettilineo_2" parent="." unique_id=1793918166 instance=ExtResource("2_e76ix")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -40, 0, 0)
@@ -161,7 +161,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -460, 0, -220)
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -260, 0, -180)
[node name="Chunk_Rettilineo_F3" parent="." unique_id=1719977594 instance=ExtResource("3_wf82y")]
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -280, 0, -240)
transform = Transform3D(1.3113416e-07, 0, -1, 0, 1, 0, 1, 0, 1.3113416e-07, -360, 0, -320)
[node name="Chunk_Rettilineo_Ponte" parent="." unique_id=1180892866 instance=ExtResource("4_l8ggx")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -320, 0, 140)
@@ -182,7 +182,7 @@ transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -60,
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -180, 0, 140)
[node name="Blockout_Stazione3Hero" parent="." unique_id=149959015 instance=ExtResource("7_8nm7p")]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -360, 0, -320)
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, -280, 0, -240)
[node name="Blockout_Stazione3Hero2" parent="." unique_id=1050909298 instance=ExtResource("7_8nm7p")]
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, -560, 0, -80)