Compare commits
33 Commits
Chunk
...
biome_gen_
| Author | SHA1 | Date | |
|---|---|---|---|
| c1e99a3b8e | |||
| 8e1ba915a2 | |||
|
|
577b4570da | ||
| 36dff9c070 | |||
| 56591bb907 | |||
| 9f254d9725 | |||
| abae8434fc | |||
|
|
e211f89fca | ||
| 3c7cbdc662 | |||
| 8c7f1c3c82 | |||
| b7308c5d66 | |||
|
|
d709d9236c | ||
|
|
9ee6d08918 | ||
| ff93a7ab2c | |||
| 122ec189eb | |||
| 889334e7a3 | |||
|
|
3521839ed9 | ||
|
|
6a62f92ed5 | ||
|
|
ead4e557c4 | ||
|
|
b868584b78 | ||
| d668804038 | |||
| e8f2c4db84 | |||
| 72c933ba73 | |||
| 8f02afa796 | |||
| 211455f5da | |||
| ab87c7f478 | |||
| b95e8598b2 | |||
|
|
5ddf363368 | ||
| fda8188102 | |||
| 7470937b49 | |||
| 35618b5656 | |||
| 8b2cbab23b | |||
| 174ae98242 |
@@ -1,5 +1,14 @@
|
||||
extends Node3D
|
||||
|
||||
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 RAILWAY_SCENE_DIRECTORY: String = "res://tgcc/chunk/railway/scene"
|
||||
|
||||
@export_group("Rails")
|
||||
@export var rail_path: Path3D
|
||||
|
||||
@@ -14,17 +23,28 @@ extends Node3D
|
||||
@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
|
||||
|
||||
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 pending_generation_cells: Array[Vector2i] = []
|
||||
var pending_cleanup_cells: Array[Vector2i] = []
|
||||
var pending_wire_cells: Array[Vector2i] = []
|
||||
var pending_wire_lookup: Dictionary = {}
|
||||
var pending_radar_update: bool = false
|
||||
var rail_chunk_catalogue: Dictionary = {}
|
||||
|
||||
var manual_biome: Biome = null
|
||||
|
||||
func _ready() -> void:
|
||||
if biome_list.is_empty() or rail_path == null: return
|
||||
|
||||
#connect events
|
||||
UIEvents.update_rail_chunks.connect(_update_rail_chunks)
|
||||
|
||||
noise_generator = FastNoiseLite.new()
|
||||
noise_generator.noise_type = FastNoiseLite.TYPE_PERLIN
|
||||
@@ -36,6 +56,8 @@ func _ready() -> void:
|
||||
altitude_generator.seed = randi()
|
||||
altitude_generator.frequency = district_scale * 0.5
|
||||
|
||||
_warm_chunk_candidate_cache()
|
||||
_warm_rail_chunk_catalogue()
|
||||
_update_set_pieces()
|
||||
|
||||
func _update_set_pieces() -> void:
|
||||
@@ -47,7 +69,7 @@ func _update_set_pieces() -> void:
|
||||
if not "exclusive_biome" in sp or sp.exclusive_biome == "":
|
||||
print("⚠️ Set Piece '", sp.name, "' not have exclusive biome -> always visible.")
|
||||
continue
|
||||
|
||||
|
||||
var local_biome = ""
|
||||
if manual_biome != null:
|
||||
local_biome = manual_biome.nome
|
||||
@@ -55,7 +77,7 @@ func _update_set_pieces() -> void:
|
||||
var grid_x = roundi(sp.global_position.x / chunk_size)
|
||||
var grid_z = roundi(sp.global_position.z / chunk_size)
|
||||
local_biome = _get_procedural_biome_name(noise_generator.get_noise_2d(grid_x, grid_z))
|
||||
|
||||
|
||||
print("Analyze: '", sp.name, "' | Need: [", sp.exclusive_biome, "] | Current biome is: [", local_biome, "]")
|
||||
if local_biome == sp.exclusive_biome:
|
||||
sp.show()
|
||||
@@ -67,15 +89,18 @@ func _update_set_pieces() -> void:
|
||||
print(" ❌ Temple is an invisible ghost.")
|
||||
|
||||
func _destroy_and_regenrate_world() -> void:
|
||||
_warm_chunk_candidate_cache()
|
||||
_clear_pending_world_work()
|
||||
|
||||
#Turn off old temples
|
||||
_update_set_pieces()
|
||||
|
||||
#Destroy all models
|
||||
for pos in board.keys():
|
||||
var cella = board[pos]
|
||||
if cella["tipo"] == "bioma":
|
||||
if cella.has("nodo") and is_instance_valid(cella["nodo"]):
|
||||
cella["nodo"].queue_free()
|
||||
if cella["type"] != "obstacle":
|
||||
if cella.has("node") and is_instance_valid(cella["node"]):
|
||||
cella["node"].queue_free()
|
||||
|
||||
#Clean board and wire connections
|
||||
board.clear()
|
||||
@@ -83,9 +108,19 @@ func _destroy_and_regenrate_world() -> void:
|
||||
|
||||
#Create train
|
||||
last_pos_train = Vector2i(999999, 999999)
|
||||
_train_radar()
|
||||
last_pos_train = Vector2i(999999, 999999)
|
||||
_train_radar()
|
||||
if rail_path != null and rail_path.train_instance != null:
|
||||
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:
|
||||
_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
|
||||
@@ -97,9 +132,8 @@ func _physics_process(_delta: float) -> void:
|
||||
|
||||
if current_pos != last_pos_train:
|
||||
last_pos_train = current_pos
|
||||
_generate_pieces_around_train(current_pos)
|
||||
_clean_far_chunks(current_pos)
|
||||
_train_radar()
|
||||
_refresh_world(current_pos)
|
||||
pending_radar_update = true
|
||||
|
||||
func collect_all_chunkinfo(root: Node, list: Array[Node]) -> void:
|
||||
if root == null: return
|
||||
@@ -110,11 +144,297 @@ func collect_all_chunkinfo(root: Node, list: Array[Node]) -> void:
|
||||
for child in root.get_children():
|
||||
collect_all_chunkinfo(child, list)
|
||||
|
||||
func _warm_chunk_candidate_cache() -> void:
|
||||
var unique_scenes: Dictionary = {}
|
||||
|
||||
for biome in biome_list:
|
||||
if biome == null:
|
||||
continue
|
||||
for scene in biome.available_chunks:
|
||||
if scene == null:
|
||||
continue
|
||||
unique_scenes[_get_chunk_scene_cache_key(scene)] = scene
|
||||
|
||||
if manual_biome != null:
|
||||
for scene in manual_biome.available_chunks:
|
||||
if scene == null:
|
||||
continue
|
||||
unique_scenes[_get_chunk_scene_cache_key(scene)] = scene
|
||||
|
||||
for scene in unique_scenes.values():
|
||||
_get_chunk_scene_metadata(scene)
|
||||
|
||||
func _warm_rail_chunk_catalogue() -> void:
|
||||
rail_chunk_catalogue.clear()
|
||||
|
||||
var directory := DirAccess.open(RAILWAY_SCENE_DIRECTORY)
|
||||
if directory == null:
|
||||
return
|
||||
|
||||
directory.list_dir_begin()
|
||||
var file_name := directory.get_next()
|
||||
while file_name != "":
|
||||
if not directory.current_is_dir() and file_name.ends_with(".tscn"):
|
||||
var scene_path := "%s/%s" % [RAILWAY_SCENE_DIRECTORY, file_name]
|
||||
var scene := load(scene_path) as PackedScene
|
||||
if scene != null:
|
||||
var chunk_type = _get_chunk_type_from_scene(scene)
|
||||
if chunk_type == CHUNK_TYPE_STRAIGHT_TRACK or chunk_type == CHUNK_TYPE_CURVED_TRACK:
|
||||
if not rail_chunk_catalogue.has(chunk_type):
|
||||
rail_chunk_catalogue[chunk_type] = []
|
||||
rail_chunk_catalogue[chunk_type].append(scene)
|
||||
file_name = directory.get_next()
|
||||
directory.list_dir_end()
|
||||
|
||||
func _get_chunk_scene_cache_key(scene: PackedScene) -> String:
|
||||
if scene == null:
|
||||
return ""
|
||||
if scene.resource_path != "":
|
||||
return scene.resource_path
|
||||
return "scene_%s" % scene.get_instance_id()
|
||||
|
||||
func _get_chunk_scene_metadata(scene: PackedScene) -> Dictionary:
|
||||
if scene == null:
|
||||
return {}
|
||||
|
||||
var key = _get_chunk_scene_cache_key(scene)
|
||||
if chunk_candidate_cache.has(key):
|
||||
return chunk_candidate_cache[key]
|
||||
|
||||
var preview_chunk = scene.instantiate()
|
||||
var info_list: Array[Node] = []
|
||||
collect_all_chunkinfo(preview_chunk, info_list)
|
||||
var info_node = info_list[0] if info_list.size() > 0 else null
|
||||
|
||||
if info_node == null or not info_node.has_method("get_rotated_data"):
|
||||
preview_chunk.queue_free()
|
||||
chunk_candidate_cache[key] = {}
|
||||
return {}
|
||||
|
||||
var info_path: NodePath = NodePath(".")
|
||||
if info_node != preview_chunk:
|
||||
info_path = preview_chunk.get_path_to(info_node)
|
||||
|
||||
var rotations = []
|
||||
for rot in range(4):
|
||||
rotations.append({
|
||||
"rotation": rot,
|
||||
"data": info_node.get_rotated_data(rot)
|
||||
})
|
||||
|
||||
var metadata = {
|
||||
"info_path": info_path,
|
||||
"rotations": rotations,
|
||||
"has_lamppost": "have_lamppost" in info_node and info_node.have_lamppost,
|
||||
}
|
||||
preview_chunk.queue_free()
|
||||
chunk_candidate_cache[key] = metadata
|
||||
return metadata
|
||||
|
||||
func _get_cached_chunk_info(instance: Node, scene: PackedScene) -> Node:
|
||||
var metadata = _get_chunk_scene_metadata(scene)
|
||||
if metadata.is_empty():
|
||||
return null
|
||||
|
||||
var info_path: NodePath = metadata["info_path"]
|
||||
if String(info_path) == ".":
|
||||
return instance
|
||||
return instance.get_node_or_null(info_path)
|
||||
|
||||
func _get_chunk_type_from_scene(scene: PackedScene) -> int:
|
||||
if scene == null:
|
||||
return CHUNK_TYPE_BIOME
|
||||
|
||||
var preview_chunk = scene.instantiate()
|
||||
var info_list: Array[Node] = []
|
||||
collect_all_chunkinfo(preview_chunk, info_list)
|
||||
var info_node = info_list[0] if info_list.size() > 0 else null
|
||||
var chunk_type = CHUNK_TYPE_BIOME
|
||||
if info_node != null and "chunk_type" in info_node:
|
||||
chunk_type = info_node.chunk_type
|
||||
preview_chunk.queue_free()
|
||||
return chunk_type
|
||||
|
||||
func _clear_pending_world_work() -> void:
|
||||
pending_generation_cells.clear()
|
||||
pending_cleanup_cells.clear()
|
||||
pending_wire_cells.clear()
|
||||
pending_wire_lookup.clear()
|
||||
pending_radar_update = false
|
||||
|
||||
func _collect_replaceable_rail_chunks(root: Node, result: Array[Node3D]) -> void:
|
||||
if root == null:
|
||||
return
|
||||
|
||||
if root is Node3D:
|
||||
var node_3d := root as Node3D
|
||||
if node_3d.scene_file_path.begins_with(RAILWAY_SCENE_DIRECTORY):
|
||||
var info_list: Array[Node] = []
|
||||
collect_all_chunkinfo(node_3d, info_list)
|
||||
var info_node = info_list[0] if info_list.size() > 0 else null
|
||||
if info_node != null and "chunk_type" in info_node:
|
||||
var chunk_type = info_node.chunk_type
|
||||
if chunk_type == CHUNK_TYPE_STRAIGHT_TRACK or chunk_type == CHUNK_TYPE_CURVED_TRACK:
|
||||
result.append(node_3d)
|
||||
return
|
||||
|
||||
for child in root.get_children():
|
||||
_collect_replaceable_rail_chunks(child, result)
|
||||
|
||||
func _pick_replacement_rail_scene(chunk_type: int, current_scene_path: String) -> PackedScene:
|
||||
var candidates: Array = rail_chunk_catalogue.get(chunk_type, [])
|
||||
if candidates.is_empty():
|
||||
return null
|
||||
|
||||
var alternatives: Array[PackedScene] = []
|
||||
for candidate in candidates:
|
||||
var scene := candidate as PackedScene
|
||||
if scene != null and scene.resource_path != current_scene_path:
|
||||
alternatives.append(scene)
|
||||
|
||||
if not alternatives.is_empty():
|
||||
return alternatives.pick_random()
|
||||
return candidates.pick_random() as PackedScene
|
||||
|
||||
func _replace_rail_chunk_instance(chunk_root: Node3D) -> bool:
|
||||
if chunk_root == null or not is_instance_valid(chunk_root):
|
||||
return false
|
||||
|
||||
var info_list: Array[Node] = []
|
||||
collect_all_chunkinfo(chunk_root, info_list)
|
||||
var info_node = info_list[0] if info_list.size() > 0 else null
|
||||
if info_node == null or not "chunk_type" in info_node:
|
||||
return false
|
||||
|
||||
var replacement_scene = _pick_replacement_rail_scene(info_node.chunk_type, chunk_root.scene_file_path)
|
||||
if replacement_scene == null:
|
||||
return false
|
||||
|
||||
var chunk_parent = chunk_root.get_parent()
|
||||
var replacement = replacement_scene.instantiate() as Node3D
|
||||
if chunk_parent == null or replacement == null:
|
||||
return false
|
||||
|
||||
var chunk_index = chunk_root.get_index()
|
||||
var chunk_name = chunk_root.name
|
||||
chunk_root.name = "%s_old" % chunk_name
|
||||
|
||||
replacement.transform = chunk_root.transform
|
||||
chunk_parent.add_child(replacement)
|
||||
chunk_parent.move_child(replacement, chunk_index)
|
||||
replacement.name = chunk_name
|
||||
replacement.owner = chunk_root.owner
|
||||
chunk_root.queue_free()
|
||||
return true
|
||||
|
||||
func _refresh_rail_chunks() -> void:
|
||||
print("update rail chunks")
|
||||
_warm_rail_chunk_catalogue()
|
||||
|
||||
var current_scene: Node = get_tree().current_scene
|
||||
if current_scene == null:
|
||||
return
|
||||
|
||||
var replaceable_chunks: Array[Node3D] = []
|
||||
_collect_replaceable_rail_chunks(current_scene, replaceable_chunks)
|
||||
|
||||
var replaced_count = 0
|
||||
for chunk_root in replaceable_chunks:
|
||||
if _replace_rail_chunk_instance(chunk_root):
|
||||
replaced_count += 1
|
||||
|
||||
if replaced_count > 0:
|
||||
await get_tree().process_frame
|
||||
_destroy_and_regenrate_world()
|
||||
|
||||
func _update_rail_chunks() -> void:
|
||||
call_deferred("_refresh_rail_chunks")
|
||||
|
||||
func _refresh_world(center: Vector2i) -> void:
|
||||
_rebuild_generation_queue(center)
|
||||
_rebuild_cleanup_queue(center)
|
||||
|
||||
func _rebuild_generation_queue(center: Vector2i) -> void:
|
||||
pending_generation_cells.clear()
|
||||
|
||||
for radius in range(eye_line + 1):
|
||||
for x in range(-radius, radius + 1):
|
||||
for z in range(-radius, radius + 1):
|
||||
if maxi(abs(x), abs(z)) != radius:
|
||||
continue
|
||||
|
||||
var grid_pos = center + Vector2i(x, z)
|
||||
if board.has(grid_pos):
|
||||
continue
|
||||
pending_generation_cells.append(grid_pos)
|
||||
|
||||
func _rebuild_cleanup_queue(center: Vector2i) -> void:
|
||||
pending_cleanup_cells.clear()
|
||||
var safe_margin = 2
|
||||
|
||||
for grid_pos in board.keys():
|
||||
var cell = board[grid_pos]
|
||||
if cell["type"] == "obstacle":
|
||||
continue
|
||||
|
||||
var dist_x = abs(grid_pos.x - center.x)
|
||||
var dist_z = abs(grid_pos.y - center.y)
|
||||
if dist_x > eye_line + safe_margin or dist_z > eye_line + safe_margin:
|
||||
pending_cleanup_cells.append(grid_pos)
|
||||
|
||||
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()
|
||||
if board.has(grid_pos):
|
||||
continue
|
||||
|
||||
var is_obstacle = _register_cell_with_ray(grid_pos)
|
||||
if not is_obstacle:
|
||||
_add_compatible_biome(grid_pos)
|
||||
processed += 1
|
||||
|
||||
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()
|
||||
if not board.has(grid_pos):
|
||||
continue
|
||||
|
||||
var cell = board[grid_pos]
|
||||
if cell["type"] == "obstacle":
|
||||
continue
|
||||
|
||||
if cell.has("node") and is_instance_valid(cell["node"]):
|
||||
cell["node"].queue_free()
|
||||
board.erase(grid_pos)
|
||||
processed += 1
|
||||
|
||||
func _queue_lamppost_wire_connection(grid_pos: Vector2i) -> void:
|
||||
if pending_wire_lookup.has(grid_pos):
|
||||
return
|
||||
pending_wire_lookup[grid_pos] = true
|
||||
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()
|
||||
pending_wire_lookup.erase(grid_pos)
|
||||
|
||||
if not board.has(grid_pos):
|
||||
continue
|
||||
if not board[grid_pos].get("have_lamppost", false):
|
||||
continue
|
||||
|
||||
_connect_lamppost_wires(grid_pos)
|
||||
processed += 1
|
||||
|
||||
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):
|
||||
var grid_pos = center + Vector2i(x, z)
|
||||
|
||||
|
||||
if not board.has(grid_pos):
|
||||
var ce_obstacle = _register_cell_with_ray(grid_pos)
|
||||
if not ce_obstacle:
|
||||
@@ -166,7 +486,7 @@ func _register_cell_with_ray(grid_pos: Vector2i) -> bool:
|
||||
if info_list.size() > 0:
|
||||
var min_distance = 999999.0
|
||||
var center_cell_pos = Vector3(world_pos.x, 0, world_pos.z)
|
||||
|
||||
|
||||
for info in info_list:
|
||||
if info is Node3D:
|
||||
var pos_info = Vector3(info.global_position.x, 0, info.global_position.z)
|
||||
@@ -181,6 +501,7 @@ func _register_cell_with_ray(grid_pos: Vector2i) -> bool:
|
||||
right_info_node = info_list[0]
|
||||
|
||||
var exit_found = {"north": false, "est": false, "south": false, "west": false}
|
||||
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
|
||||
|
||||
@@ -190,8 +511,9 @@ func _register_cell_with_ray(grid_pos: Vector2i) -> bool:
|
||||
var rotation_steps = roundi(rad_to_deg(right_info_node.global_rotation.y) / -90.0)
|
||||
var data = right_info_node.get_rotated_data(rotation_steps)
|
||||
exit_found = data["connections"]
|
||||
river_exit_found = data["river_connections"]
|
||||
height_found = data["heights"]
|
||||
|
||||
|
||||
if "have_lamppost" in right_info_node:
|
||||
have_lamppost = right_info_node.have_lamppost
|
||||
|
||||
@@ -199,6 +521,7 @@ func _register_cell_with_ray(grid_pos: Vector2i) -> bool:
|
||||
board[grid_pos] = {
|
||||
"type": "obstacle",
|
||||
"exit": exit_found,
|
||||
"river_exit": river_exit_found,
|
||||
"heights": height_found,
|
||||
"node": root_chunk,
|
||||
"info": right_info_node,
|
||||
@@ -206,7 +529,7 @@ func _register_cell_with_ray(grid_pos: Vector2i) -> bool:
|
||||
}
|
||||
|
||||
if have_lamppost:
|
||||
_connect_lamppost_wires(grid_pos)
|
||||
_queue_lamppost_wire_connection(grid_pos)
|
||||
|
||||
return true
|
||||
return false
|
||||
@@ -216,6 +539,10 @@ func _add_compatible_biome(grid_pos: Vector2i) -> void:
|
||||
var req_conn_est = _needed_connection(grid_pos + Vector2i(1, 0), "west")
|
||||
var req_conn_south = _needed_connection(grid_pos + Vector2i(0, 1), "north")
|
||||
var req_conn_west = _needed_connection(grid_pos + Vector2i(-1, 0), "est")
|
||||
var req_river_north = _needed_river_connection(grid_pos + Vector2i(0, -1), "south")
|
||||
var req_river_est = _needed_river_connection(grid_pos + Vector2i(1, 0), "west")
|
||||
var req_river_south = _needed_river_connection(grid_pos + Vector2i(0, 1), "north")
|
||||
var req_river_west = _needed_river_connection(grid_pos + Vector2i(-1, 0), "est")
|
||||
|
||||
var req_height_north = _needed_heights(grid_pos + Vector2i(0, -1), "south")
|
||||
var req_height_est = _needed_heights(grid_pos + Vector2i(1, 0), "west")
|
||||
@@ -229,43 +556,45 @@ func _add_compatible_biome(grid_pos: Vector2i) -> void:
|
||||
var valid_candidates = []
|
||||
|
||||
for scene in zone_catalogue:
|
||||
var test_chunk = scene.instantiate()
|
||||
var test_list: Array[Node] = []
|
||||
collect_all_chunkinfo(test_chunk, test_list)
|
||||
var info_test = test_list[0] if test_list.size() > 0 else null
|
||||
var metadata = _get_chunk_scene_metadata(scene)
|
||||
if metadata.is_empty():
|
||||
continue
|
||||
|
||||
if info_test != null and info_test.has_method("get_rotated_data"):
|
||||
for rot in range(4):
|
||||
var data = test_chunk.get_rotated_data(rot)
|
||||
var u_conn = data["connections"]
|
||||
var u_height = data["heights"]
|
||||
for candidate in metadata["rotations"]:
|
||||
var rot = candidate["rotation"]
|
||||
var data = candidate["data"]
|
||||
var u_conn = data["connections"]
|
||||
var u_river_conn = data["river_connections"]
|
||||
var u_height = data["heights"]
|
||||
|
||||
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"])
|
||||
var match_conn_s = (req_conn_south == -1) or ((req_conn_south == 1) == u_conn["south"])
|
||||
var match_conn_o = (req_conn_west == -1) or ((req_conn_west == 1) == u_conn["west"])
|
||||
var match_river_n = (req_river_north == -1) or ((req_river_north == 1) == u_river_conn["north"])
|
||||
var match_river_e = (req_river_est == -1) or ((req_river_est == 1) == u_river_conn["est"])
|
||||
var match_river_s = (req_river_south == -1) or ((req_river_south == 1) == u_river_conn["south"])
|
||||
var match_river_o = (req_river_west == -1) or ((req_river_west == 1) == u_river_conn["west"])
|
||||
|
||||
var match_alt_n = (req_height_north == -1) or (req_height_north == u_height["north"])
|
||||
var match_alt_e = (req_height_est == -1) or (req_height_est == u_height["est"])
|
||||
var match_alt_s = (req_height_south == -1) or (req_height_south == u_height["south"])
|
||||
var match_alt_o = (req_height_west == -1) or (req_height_west == u_height["west"])
|
||||
|
||||
var diff_n = abs(u_height["north"] - height_target) if req_height_north == -1 else 0
|
||||
var diff_e = abs(u_height["est"] - height_target) if req_height_est == -1 else 0
|
||||
var diff_s = abs(u_height["south"] - height_target) if req_height_south == -1 else 0
|
||||
var diff_o = abs(u_height["west"] - height_target) if req_height_west == -1 else 0
|
||||
var excessive_jumps = diff_n > 1 or diff_e > 1 or diff_s > 1 or diff_o > 1
|
||||
|
||||
if match_conn_n and match_conn_e and match_conn_s and match_conn_o and match_river_n and match_river_e and match_river_s and match_river_o and match_alt_n and match_alt_e and match_alt_s and match_alt_o and not excessive_jumps:
|
||||
var score = 0
|
||||
if req_height_north == -1 and u_height["north"] == height_target: score += 1
|
||||
if req_height_est == -1 and u_height["est"] == height_target: score += 1
|
||||
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
|
||||
|
||||
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"])
|
||||
var match_conn_s = (req_conn_south == -1) or ((req_conn_south == 1) == u_conn["south"])
|
||||
var match_conn_o = (req_conn_west == -1) or ((req_conn_west == 1) == u_conn["west"])
|
||||
|
||||
var match_alt_n = (req_height_north == -1) or (req_height_north == u_height["north"])
|
||||
var match_alt_e = (req_height_est == -1) or (req_height_est == u_height["est"])
|
||||
var match_alt_s = (req_height_south == -1) or (req_height_south == u_height["south"])
|
||||
var match_alt_o = (req_height_west == -1) or (req_height_west == u_height["west"])
|
||||
|
||||
var diff_n = abs(u_height["north"] - height_target) if req_height_north == -1 else 0
|
||||
var diff_e = abs(u_height["est"] - height_target) if req_height_est == -1 else 0
|
||||
var diff_s = abs(u_height["south"] - height_target) if req_height_south == -1 else 0
|
||||
var diff_o = abs(u_height["west"] - height_target) if req_height_west == -1 else 0
|
||||
var excessive_jumps = diff_n > 1 or diff_e > 1 or diff_s > 1 or diff_o > 1
|
||||
|
||||
if match_conn_n and match_conn_e and match_conn_s and match_conn_o and match_alt_n and match_alt_e and match_alt_s and match_alt_o and not excessive_jumps:
|
||||
var score = 0
|
||||
if req_height_north == -1 and u_height["north"] == height_target: score += 1
|
||||
if req_height_est == -1 and u_height["est"] == height_target: score += 1
|
||||
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})
|
||||
|
||||
test_chunk.queue_free()
|
||||
valid_candidates.append({"scene": scene, "rotation": rot, "data": data, "score": score})
|
||||
|
||||
if valid_candidates.size() > 0:
|
||||
var max_score = -1
|
||||
@@ -278,21 +607,20 @@ func _add_compatible_biome(grid_pos: Vector2i) -> void:
|
||||
|
||||
var choise = best_candidate.pick_random()
|
||||
var new_chunk = choise.scene.instantiate()
|
||||
add_child(new_chunk)
|
||||
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)
|
||||
|
||||
var new_list: Array[Node] = []
|
||||
collect_all_chunkinfo(new_chunk, new_list)
|
||||
var info_new = new_list[0] if new_list.size() > 0 else null
|
||||
var info_new = _get_cached_chunk_info(new_chunk, choise.scene)
|
||||
|
||||
var have_lamppost = false
|
||||
if info_new != null and "have_lamppost" in new_chunk:
|
||||
if info_new != null and "have_lamppost" in info_new:
|
||||
have_lamppost = info_new.have_lamppost
|
||||
|
||||
board[grid_pos] = {
|
||||
"type": "bioma",
|
||||
"exit": choise.data["connections"],
|
||||
"river_exit": choise.data["river_connections"],
|
||||
"heights": choise.data["heights"],
|
||||
"node": new_chunk,
|
||||
"info": info_new,
|
||||
@@ -300,16 +628,14 @@ func _add_compatible_biome(grid_pos: Vector2i) -> void:
|
||||
}
|
||||
|
||||
if have_lamppost:
|
||||
_connect_lamppost_wires(grid_pos)
|
||||
_queue_lamppost_wire_connection(grid_pos)
|
||||
|
||||
else:
|
||||
var backup = zone_catalogue[0].instantiate()
|
||||
add_child(backup)
|
||||
backup.position = Vector3(grid_pos.x * chunk_size, 0, grid_pos.y * chunk_size)
|
||||
add_child(backup)
|
||||
|
||||
var backup_list: Array[Node] = []
|
||||
collect_all_chunkinfo(backup, backup_list)
|
||||
var info_backup = backup_list[0] if backup_list.size() > 0 else null
|
||||
var info_backup = _get_cached_chunk_info(backup, zone_catalogue[0])
|
||||
|
||||
var safe_heights = {
|
||||
"north": req_height_north if req_height_north != -1 else height_target,
|
||||
@@ -320,6 +646,7 @@ func _add_compatible_biome(grid_pos: Vector2i) -> void:
|
||||
board[grid_pos] = {
|
||||
"type": "biome",
|
||||
"exit": {"north":false, "est":false, "south":false, "west":false},
|
||||
"river_exit": {"north":false, "est":false, "south":false, "west":false},
|
||||
"heights": safe_heights,
|
||||
"node": backup,
|
||||
"info": info_backup,
|
||||
@@ -333,75 +660,28 @@ func _needed_connection(near_pos: Vector2i, side_needed: String) -> int:
|
||||
return 1 if board[near_pos]["exit"][side_needed] else 0
|
||||
return -1
|
||||
|
||||
func _needed_river_connection(near_pos: Vector2i, side_needed: String) -> int:
|
||||
if not board.has(near_pos):
|
||||
_register_cell_with_ray(near_pos)
|
||||
if board.has(near_pos) and board[near_pos].has("river_exit"):
|
||||
return 1 if board[near_pos]["river_exit"][side_needed] else 0
|
||||
return -1
|
||||
|
||||
func _needed_heights(near_pos: Vector2i, side_needed: String) -> int:
|
||||
if board.has(near_pos) and board[near_pos].has("heights"):
|
||||
return board[near_pos]["heights"][side_needed]
|
||||
return -1
|
||||
|
||||
func _train_radar() -> void:
|
||||
if rail_path == null or rail_path.curve == null or rail_path.train_instance == null: return
|
||||
|
||||
if manual_biome != null:
|
||||
return
|
||||
|
||||
var train_pos = rail_path.train_instance.global_position
|
||||
var grid_x = roundi(train_pos.x / chunk_size)
|
||||
var grid_z = roundi(train_pos.z / chunk_size)
|
||||
var current_biome = _get_procedural_biome_name(noise_generator.get_noise_2d(grid_x, grid_z))
|
||||
|
||||
var current_progress = rail_path.train_progress
|
||||
var total_length = rail_path.curve.get_baked_length()
|
||||
#var exchange_distance = 0.0
|
||||
#var next_biome = ""
|
||||
|
||||
for step in range(1, 31):
|
||||
var next_progress = wrapf(current_progress + (step * chunk_size), 0.0, total_length)
|
||||
var next_local_pos = rail_path.curve.sample_baked(next_progress, true)
|
||||
var next_global_pos = rail_path.to_global(next_local_pos)
|
||||
|
||||
var f_x = roundi(next_global_pos.x / chunk_size)
|
||||
var f_z = roundi(next_global_pos.z / chunk_size)
|
||||
var future_biome = _get_procedural_biome_name(noise_generator.get_noise_2d(f_x, f_z))
|
||||
|
||||
if future_biome != current_biome:
|
||||
#exchange_distance = step * chunk_size
|
||||
#next_biome = future_biome
|
||||
break
|
||||
|
||||
func _clean_far_chunks(centro_attuale: Vector2i) -> void:
|
||||
var cells_to_remove = []
|
||||
var safe_margin = 2
|
||||
|
||||
for grid_pos in board.keys():
|
||||
var cell = board[grid_pos]
|
||||
if cell["type"] == "obstacle": continue
|
||||
|
||||
var dist_x = abs(grid_pos.x - centro_attuale.x)
|
||||
var dist_z = abs(grid_pos.y - centro_attuale.y)
|
||||
|
||||
if dist_x > eye_line + safe_margin or dist_z > eye_line + safe_margin:
|
||||
if cell.has("node") and is_instance_valid(cell["node"]):
|
||||
cell["node"].queue_free()
|
||||
cells_to_remove.append(grid_pos)
|
||||
|
||||
for pos in cells_to_remove:
|
||||
board.erase(pos)
|
||||
|
||||
|
||||
func _get_lampposts(info_node: Node, side: String) -> Array[Node3D]:
|
||||
var lampposts: Array[Node3D] = []
|
||||
if side == "sx":
|
||||
if "connection_left" in info_node and info_node.connection_left != null:
|
||||
for p in info_node.connection_left:
|
||||
if is_instance_valid(p): lampposts.append(p)
|
||||
#if lampposts.is_empty() and "nodo_attacco_sx" in nodo_info and is_instance_valid(nodo_info.get("nodo_attacco_sx")):
|
||||
# lampposts.append(nodo_info.get("nodo_attacco_sx"))
|
||||
else:
|
||||
if "connection_right" in info_node and info_node.connection_right != null:
|
||||
for p in info_node.connection_right:
|
||||
if is_instance_valid(p): lampposts.append(p)
|
||||
#if lampposts.is_empty() and "nodo_attacco_dx" in nodo_info and is_instance_valid(nodo_info.get("nodo_attacco_dx")):
|
||||
# lampposts.append(nodo_info.get("nodo_attacco_dx"))
|
||||
return lampposts
|
||||
|
||||
func _connect_lamppost_wires(new_board_pos: Vector2i) -> void:
|
||||
@@ -425,7 +705,7 @@ func _connect_lamppost_wires(new_board_pos: Vector2i) -> void:
|
||||
var p_sx_your_best = null; var p_dx_your_best = null
|
||||
var best_closest_to_root = null
|
||||
var best_distance = 999999.0
|
||||
var ray_research = 3
|
||||
var ray_research = 6
|
||||
|
||||
for x in range(-ray_research, ray_research + 1):
|
||||
for z in range(-ray_research, ray_research + 1):
|
||||
@@ -471,7 +751,7 @@ func _connect_lamppost_wires(new_board_pos: Vector2i) -> void:
|
||||
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()
|
||||
@@ -493,7 +773,7 @@ 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]
|
||||
|
||||
var max_dist = chunk_size * 8.0
|
||||
var max_dist = chunk_size * lamppost_dist_factor
|
||||
|
||||
if best_closest_to_root != null and best_distance < max_dist:
|
||||
var dist_streight = p_sx_my_best.global_position.distance_to(p_sx_your_best.global_position) + p_dx_my_best.global_position.distance_to(p_dx_your_best.global_position)
|
||||
@@ -511,6 +791,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
|
||||
func _draw_parable(p1: Vector3, p2: Vector3, parent: Node3D) -> void:
|
||||
var segments = 15
|
||||
var lowering = 1.5
|
||||
|
||||
@@ -12,6 +12,12 @@ class_name ChunkInfo
|
||||
@export var south: bool = false
|
||||
@export var west: bool = false
|
||||
|
||||
@export_group("River exit")
|
||||
@export var river_north: bool = false
|
||||
@export var river_est: bool = false
|
||||
@export var river_south: bool = false
|
||||
@export var river_west: bool = false
|
||||
|
||||
@export_group("Margin heights (level 0, 1, 2)")
|
||||
@export_range(0, 2, 1) var height_north: int = 0
|
||||
@export_range(0, 2, 1) var height_est: int = 0
|
||||
@@ -29,14 +35,17 @@ func _ready() -> void:
|
||||
|
||||
func get_rotated_data(steps_90: int) -> Dictionary:
|
||||
var original_exit = [north, est, south, west]
|
||||
var original_river_exit = [river_north, river_est, river_south, river_west]
|
||||
var original_height = [height_north, height_est, height_south, height_west]
|
||||
|
||||
var calculated_exit = []
|
||||
var calculated_river_exit = []
|
||||
var calculated_height = []
|
||||
|
||||
for i in range(4):
|
||||
var index = (i - steps_90 + 4) % 4
|
||||
calculated_exit.append(original_exit[index])
|
||||
calculated_river_exit.append(original_river_exit[index])
|
||||
calculated_height.append(original_height[index])
|
||||
|
||||
return {
|
||||
@@ -44,6 +53,10 @@ func get_rotated_data(steps_90: int) -> Dictionary:
|
||||
"north": calculated_exit[0], "est": calculated_exit[1],
|
||||
"south": calculated_exit[2], "west": calculated_exit[3]
|
||||
},
|
||||
"river_connections": {
|
||||
"north": calculated_river_exit[0], "est": calculated_river_exit[1],
|
||||
"south": calculated_river_exit[2], "west": calculated_river_exit[3]
|
||||
},
|
||||
"heights": {
|
||||
"north": calculated_height[0], "est": calculated_height[1],
|
||||
"south": calculated_height[2], "west": calculated_height[3]
|
||||
|
||||
@@ -47,15 +47,112 @@ var next_stop_index: int = 0
|
||||
var stop_multiply: float = 1.0
|
||||
var is_restarting: bool = false
|
||||
var tween_restart: Tween
|
||||
var environment_config: EnvironmentConfig
|
||||
|
||||
func _ready() -> void:
|
||||
_cache_environment_config()
|
||||
if curve != null and curve.get_baked_length() > 0:
|
||||
build_rails()
|
||||
build_train()
|
||||
_plan_stops()
|
||||
_apply_initial_train_start()
|
||||
else:
|
||||
print("WARNING: Draw Path3D for rails!")
|
||||
|
||||
func _cache_environment_config() -> void:
|
||||
var parent_node: Node = get_parent()
|
||||
if parent_node != null:
|
||||
var day_night_node := parent_node.get_node_or_null("DayNight") as EnvironmentManagerRoot
|
||||
if day_night_node != null:
|
||||
environment_config = day_night_node.environment_config
|
||||
return
|
||||
|
||||
var current_scene: Node = get_tree().current_scene
|
||||
if current_scene == null:
|
||||
return
|
||||
|
||||
for child in current_scene.get_children():
|
||||
var environment_manager := child as EnvironmentManagerRoot
|
||||
if environment_manager != null:
|
||||
environment_config = environment_manager.environment_config
|
||||
return
|
||||
|
||||
func _apply_initial_train_start() -> void:
|
||||
if train_instance == null or curve == null:
|
||||
return
|
||||
|
||||
var total_length: float = curve.get_baked_length()
|
||||
if total_length <= 0.0:
|
||||
return
|
||||
|
||||
#start from a random position
|
||||
if environment_config != null and environment_config.train_start_from_random_position:
|
||||
train_progress = randf() * total_length
|
||||
_update_next_stop_index_from_progress()
|
||||
elif environment_config != null and not stop_offset.is_empty():
|
||||
#start from a specific stop
|
||||
var stop_index: int = clampi(environment_config.train_start_stop_index, 0, stop_offset.size() - 1)
|
||||
train_progress = stop_offset[stop_index]
|
||||
_set_next_stop_index_from_current(stop_index)
|
||||
else:
|
||||
train_progress = wrapf(train_progress, 0.0, total_length)
|
||||
_update_next_stop_index_from_progress()
|
||||
|
||||
_snap_train_to_progress()
|
||||
|
||||
func _set_next_stop_index_from_current(current_stop_index: int) -> void:
|
||||
if stop_offset.is_empty():
|
||||
next_stop_index = 0
|
||||
return
|
||||
|
||||
if train_speed >= 0.0:
|
||||
next_stop_index = (current_stop_index + 1) % stop_offset.size()
|
||||
else:
|
||||
next_stop_index = current_stop_index - 1
|
||||
if next_stop_index < 0:
|
||||
next_stop_index = stop_offset.size() - 1
|
||||
|
||||
func _update_next_stop_index_from_progress() -> void:
|
||||
if stop_offset.is_empty():
|
||||
next_stop_index = 0
|
||||
return
|
||||
|
||||
if train_speed >= 0.0:
|
||||
next_stop_index = 0
|
||||
for i in range(stop_offset.size()):
|
||||
if stop_offset[i] > train_progress + 0.001:
|
||||
next_stop_index = i
|
||||
return
|
||||
return
|
||||
|
||||
next_stop_index = stop_offset.size() - 1
|
||||
for i in range(stop_offset.size() - 1, -1, -1):
|
||||
if stop_offset[i] < train_progress - 0.001:
|
||||
next_stop_index = i
|
||||
return
|
||||
|
||||
func _snap_train_to_progress() -> void:
|
||||
if train_instance == null or curve == null:
|
||||
return
|
||||
|
||||
var total_length: float = curve.get_baked_length()
|
||||
if total_length <= 0.0:
|
||||
return
|
||||
|
||||
train_progress = wrapf(train_progress, 0.0, total_length)
|
||||
var center_position: Vector3 = to_global(curve.sample_baked(train_progress, true))
|
||||
var prog_forward: float = wrapf(train_progress + 2.0, 0.0, total_length)
|
||||
var forward_position: Vector3 = to_global(curve.sample_baked(prog_forward, true))
|
||||
|
||||
train_instance.global_position = center_position
|
||||
if center_position.distance_to(forward_position) > 0.01:
|
||||
train_instance.look_at(forward_position, Vector3.UP)
|
||||
train_instance.rotate_y(PI)
|
||||
|
||||
if cameras:
|
||||
cameras.global_position = center_position
|
||||
cameras.global_basis = train_instance.global_basis
|
||||
|
||||
func build_rails() -> void:
|
||||
var mat_wood = StandardMaterial3D.new()
|
||||
mat_wood.albedo_color = Color(0.35, 0.2, 0.1)
|
||||
7
core/daynight/FogNoise.tres
Normal file
7
core/daynight/FogNoise.tres
Normal file
@@ -0,0 +1,7 @@
|
||||
[gd_resource type="NoiseTexture2D" format=3 uid="uid://b2xcpt2y8v32x"]
|
||||
|
||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_oqwsk"]
|
||||
|
||||
[resource]
|
||||
noise = SubResource("FastNoiseLite_oqwsk")
|
||||
seamless = true
|
||||
@@ -1,9 +1,17 @@
|
||||
shader_type canvas_item;
|
||||
|
||||
// Cattura tutto quello che c'è sotto questo nodo
|
||||
uniform sampler2D screen_texture : hint_screen_texture, filter_linear_mipmap;
|
||||
|
||||
uniform float blur_amount : hint_range(0.0, 5.0) = 2.5;
|
||||
uniform float focus_size : hint_range(0.0, 1.0) = 0.4;
|
||||
uniform float transition_softness : hint_range(0.01, 1.0) = 0.3;
|
||||
|
||||
void fragment() {
|
||||
COLOR = textureLod(screen_texture, SCREEN_UV, blur_amount);
|
||||
}
|
||||
float dist_from_center = abs(SCREEN_UV.y - 0.5);
|
||||
float mask = smoothstep(focus_size / 2.0, (focus_size / 2.0) + transition_softness, dist_from_center);
|
||||
|
||||
// Applica il blur
|
||||
vec4 blurred_screen = textureLod(screen_texture, SCREEN_UV, blur_amount * mask);
|
||||
COLOR = blurred_screen;
|
||||
}
|
||||
@@ -1,16 +1,21 @@
|
||||
class_name DayNightController
|
||||
extends Node
|
||||
|
||||
const TIME_OPTION_SUNRISE: int = 0
|
||||
const TIME_OPTION_DAY: int = 1
|
||||
const TIME_OPTION_SUNSET: int = 2
|
||||
const TIME_OPTION_NIGHT: int = 3
|
||||
|
||||
var environment_config: EnvironmentConfig
|
||||
|
||||
#Multiply for debug
|
||||
@export var time_scale: float = 1.0
|
||||
|
||||
@export var paused: bool = false
|
||||
|
||||
signal time_changed(time: float)
|
||||
|
||||
var current_time: float = 0.0
|
||||
var _current_time_option_index: int = -1
|
||||
|
||||
func _init(environmentconfig: EnvironmentConfig) -> void:
|
||||
environment_config = environmentconfig
|
||||
@@ -19,6 +24,7 @@ func _ready() -> void:
|
||||
#connect events
|
||||
UIEvents.set_day_time.connect(_on_set_day_time)
|
||||
UIEvents.toggle_pause_daytime.connect(_on_toggle_pause_daytime)
|
||||
UIEvents.time_option_item_changed.connect(_time_option_changed)
|
||||
|
||||
current_time = environment_config.start_time
|
||||
update_time(current_time)
|
||||
@@ -44,9 +50,34 @@ func set_time(t: float) -> void:
|
||||
update_time(current_time)
|
||||
|
||||
func update_time(currtime: float) -> void:
|
||||
var time_option_index: int = get_time_option_index(currtime)
|
||||
if time_option_index != _current_time_option_index:
|
||||
_current_time_option_index = time_option_index
|
||||
UIEvents.day_time_option_changed.emit(time_option_index)
|
||||
|
||||
emit_signal("time_changed", currtime)
|
||||
UIEvents.day_time_changed.emit(currtime, get_time_string())
|
||||
|
||||
func get_time_option_index(currtime: float) -> int:
|
||||
if currtime >= environment_config.night or currtime < environment_config.sunrise:
|
||||
return TIME_OPTION_NIGHT
|
||||
if currtime < environment_config.day:
|
||||
return TIME_OPTION_SUNRISE
|
||||
if currtime < environment_config.sunset:
|
||||
return TIME_OPTION_DAY
|
||||
return TIME_OPTION_SUNSET
|
||||
|
||||
func _time_option_changed(index: int) -> void:
|
||||
match index:
|
||||
TIME_OPTION_SUNRISE:
|
||||
set_time(environment_config.sunrise)
|
||||
TIME_OPTION_DAY:
|
||||
set_time(environment_config.day)
|
||||
TIME_OPTION_SUNSET:
|
||||
set_time(environment_config.sunset)
|
||||
TIME_OPTION_NIGHT:
|
||||
set_time(environment_config.night)
|
||||
|
||||
func _on_set_day_time(value: float) -> void:
|
||||
set_time(value)
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
[ext_resource type="Material" uid="uid://codq5gx71rj4o" path="res://core/daynight/environment_dust_material.tres" id="8_amaf0"]
|
||||
[ext_resource type="Shader" uid="uid://bkn6eqgbn37jx" path="res://core/daynight/blur.gdshader" id="9_amaf0"]
|
||||
[ext_resource type="Shader" uid="uid://b5wa82soyhsqm" path="res://core/daynight/environment_shadows.gdshader" id="10_tuauy"]
|
||||
[ext_resource type="Texture2D" uid="uid://b2xcpt2y8v32x" path="res://core/daynight/FogNoise.tres" id="11_tuauy"]
|
||||
[ext_resource type="FastNoiseLite" uid="uid://c0mtwrkptjcuw" path="res://core/daynight/environment_shadows_noise_clouds.tres" id="11_yn8v8"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ruhh7"]
|
||||
@@ -40,9 +41,58 @@ shader_parameter/sun_color = Color(0.2841828, 0.2023238, 0.27953526, 1)
|
||||
|
||||
[sub_resource type="Resource" id="Resource_r4tfj"]
|
||||
script = ExtResource("2_h6hjk")
|
||||
morning_color = Color(0.93333334, 0.78039217, 0.6039216, 1)
|
||||
afternoon_color = Color(0.9490196, 0.62352943, 0.38039216, 1)
|
||||
night_color = Color(0.18431373, 0.18431373, 0.4862745, 1)
|
||||
sun_rotation_morning = Vector3(-50, -90, 0)
|
||||
sun_rotation_afternoon = Vector3(-120, -90, 0)
|
||||
sun_rotation_night = Vector3(-130, -90, 0)
|
||||
night_light_energy = 1.0
|
||||
exposure_morning = 0.8
|
||||
exposure_afternoon = 0.7
|
||||
exposure_night = 0.7
|
||||
sky_top_morning = Color(0.11764706, 0.35686275, 0.5411765, 1)
|
||||
sky_top_afternoon = Color(0.7019608, 0.4509804, 0.2, 1)
|
||||
sky_top_night = Color(0.050980393, 0.050980393, 0.14901961, 1)
|
||||
sky_horizon_morning = Color(0.4627451, 0.6745098, 0.8627451, 1)
|
||||
sky_horizon_afternoon = Color(0.93333334, 0.6, 0.8039216, 1)
|
||||
sky_horizon_night = Color(0.14901961, 0.101960786, 0.2509804, 1)
|
||||
grad_top_morning = Color(0.7921569, 0.8784314, 0.95686275, 1)
|
||||
grad_top_afternoon = Color(0.8627451, 0.24313726, 0.5411765, 1)
|
||||
grad_top_night = Color(0.16470589, 0.16470589, 0.26666668, 1)
|
||||
grad_bot_morning = Color(0.05882353, 0.078431375, 0.21568628, 1)
|
||||
grad_bot_afternoon = Color(0.2509804, 0.019607844, 0.043137256, 1)
|
||||
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_density_morning = 0.01
|
||||
fog_density_afternoon = 0.02
|
||||
glow_morning = 0.4
|
||||
glow_night = 0.6
|
||||
material_fog = SubResource("ShaderMaterial_b5atu")
|
||||
material_drops = SubResource("StandardMaterial3D_r4tfj")
|
||||
material_clouds = SubResource("ShaderMaterial_ruhh7")
|
||||
lightning_color = Color(1, 0.9843137, 0.4627451, 1)
|
||||
lightning_min = 2
|
||||
lightning_max = 4
|
||||
lightning_scale_min = 2.0
|
||||
lightning_scale_max = 5.0
|
||||
godray_max_rain = 60
|
||||
godray_spawn_radius = 100.0
|
||||
godray_spawn_offset = Vector3(20, 80, 20)
|
||||
godray_rotation_degrees = Vector3(50, 30, 0)
|
||||
godray_scale = Vector3(2, 25, 50)
|
||||
snow_amount = 2000.0
|
||||
wind_amount = 50
|
||||
cloud_speed = 0.01
|
||||
fireflies_amount = 550
|
||||
fireflies_spawn_ray = 60.0
|
||||
water_color_morning = Color(0.33333334, 0.654902, 0.5294118, 1)
|
||||
water_color_afternoon = Color(0.5803922, 0.5137255, 0.2901961, 1)
|
||||
water_color_night = Color(0.48235294, 0.45490196, 0.69411767, 1)
|
||||
metadata/_custom_type_script = "uid://butda6k2tli3o"
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_i3hjl"]
|
||||
@@ -85,7 +135,7 @@ gradient = SubResource("Gradient_djqkg")
|
||||
lifetime_randomness = 0.5
|
||||
emission_shape_scale = Vector3(5, 5, 5)
|
||||
emission_shape = 3
|
||||
emission_box_extents = Vector3(25, 5, 25)
|
||||
emission_box_extents = Vector3(1, 1, 1)
|
||||
direction = Vector3(0, 1, 0)
|
||||
initial_velocity_min = 6.0
|
||||
initial_velocity_max = 6.0
|
||||
@@ -99,10 +149,9 @@ point_count = 3
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_cer0u"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("5_djqkg")
|
||||
shader_parameter/wave_frequency = 1.0
|
||||
shader_parameter/base_amplitude = 0.5
|
||||
shader_parameter/secondary_ratio = 0.6
|
||||
shader_parameter/time_scale_base = 3.0
|
||||
shader_parameter/time_scale = 3.065
|
||||
shader_parameter/wave_amplitude = 0.3
|
||||
shader_parameter/wave_frequency = 0.25
|
||||
|
||||
[sub_resource type="TubeTrailMesh" id="TubeTrailMesh_vo82p"]
|
||||
material = SubResource("ShaderMaterial_cer0u")
|
||||
@@ -174,7 +223,9 @@ size = Vector2(0.05, 0.8)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_kavln"]
|
||||
shader = ExtResource("9_amaf0")
|
||||
shader_parameter/blur_amount = 0.6000000285
|
||||
shader_parameter/blur_amount = 0.50000002375
|
||||
shader_parameter/focus_size = 0.54400002584
|
||||
shader_parameter/transition_softness = 0.00999999977648
|
||||
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_sxgg7"]
|
||||
size = Vector2(2, 2)
|
||||
@@ -184,12 +235,12 @@ noise = ExtResource("11_yn8v8")
|
||||
seamless = true
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_oqt1s"]
|
||||
render_priority = 0
|
||||
render_priority = -1
|
||||
shader = ExtResource("10_tuauy")
|
||||
shader_parameter/noise_texture = SubResource("NoiseTexture2D_0fcg4")
|
||||
shader_parameter/cloud_scale = 0.0070000003325
|
||||
shader_parameter/cloud_speed = 0.0030000001425
|
||||
shader_parameter/direction = Vector2(0.5, 0.2)
|
||||
shader_parameter/direction = Vector2(0.1, 0.025)
|
||||
shader_parameter/sun_angle = Vector2(0.5, 0.5)
|
||||
shader_parameter/cloud_density = 0.400000019
|
||||
shader_parameter/center_sharpness = 0.138000006555
|
||||
@@ -201,7 +252,23 @@ shader_parameter/fade_end = 800.000035625
|
||||
shader_parameter/height_fade_start = 10.0
|
||||
shader_parameter/height_fade_end = 50.0
|
||||
|
||||
[node name="EnvironmentManager" type="Node3D" unique_id=1611939731 node_paths=PackedStringArray("particles_wind", "particles_snow", "particles_fireflies", "particles_rain", "environment_dust", "blur", "environment_shadows")]
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_yn8v8"]
|
||||
size = Vector2(2, 2)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_sxgg7"]
|
||||
render_priority = 2
|
||||
shader = ExtResource("2_r4tfj")
|
||||
shader_parameter/fog_noise = ExtResource("11_tuauy")
|
||||
shader_parameter/use_red_as_alpha = true
|
||||
shader_parameter/fog_color = Color(0.8, 0.8509804, 0.9019608, 0.2509804)
|
||||
shader_parameter/scroll_speed = Vector2(0, 0.01)
|
||||
shader_parameter/texture_scale = Vector2(1, 1)
|
||||
shader_parameter/edge_softness_y = 0.16400000779
|
||||
shader_parameter/edge_softness_x = 0.5
|
||||
shader_parameter/night_intensity = 0.0
|
||||
shader_parameter/sun_color = Color(1, 1, 1, 1)
|
||||
|
||||
[node name="EnvironmentManager" type="Node3D" unique_id=1611939731 node_paths=PackedStringArray("particles_wind", "particles_snow", "particles_fireflies", "particles_rain", "environment_dust", "blur", "environment_shadows", "fog")]
|
||||
script = ExtResource("1_wecen")
|
||||
environment_config = SubResource("Resource_r4tfj")
|
||||
particles_wind = NodePath("Particles_Wind")
|
||||
@@ -212,6 +279,7 @@ godray = ExtResource("5_411rw")
|
||||
environment_dust = NodePath("EnvironmentDust")
|
||||
blur = NodePath("Blur")
|
||||
environment_shadows = NodePath("EnvironmentCloudsShadows")
|
||||
fog = NodePath("Fog")
|
||||
|
||||
[node name="Particles_Fireflies" type="GPUParticles3D" parent="." unique_id=947538133]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0)
|
||||
@@ -222,9 +290,10 @@ process_material = SubResource("ParticleProcessMaterial_i3hjl")
|
||||
draw_pass_1 = SubResource("QuadMesh_b5atu")
|
||||
|
||||
[node name="Particles_Wind" type="GPUParticles3D" parent="." unique_id=1238214694]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 50, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 50, 0)
|
||||
cast_shadow = 0
|
||||
emitting = false
|
||||
amount = 100
|
||||
amount = 25
|
||||
lifetime = 3.0
|
||||
fixed_fps = 60
|
||||
process_material = SubResource("ParticleProcessMaterial_ruhh7")
|
||||
@@ -271,3 +340,15 @@ mouse_filter = 2
|
||||
extra_cull_margin = 16384.0
|
||||
mesh = SubResource("QuadMesh_sxgg7")
|
||||
surface_material_override/0 = SubResource("ShaderMaterial_oqt1s")
|
||||
|
||||
[node name="Fog" type="Node3D" parent="." unique_id=1626352238]
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Fog" unique_id=96635311]
|
||||
transform = Transform3D(-42.075005, 7.553328e-06, 1.7196172e-13, 0, -3.7766642e-06, 45, 3.6783138e-06, 86.4, 1.9670128e-06, -41.926987, 14, 0)
|
||||
mesh = SubResource("QuadMesh_yn8v8")
|
||||
surface_material_override/0 = SubResource("ShaderMaterial_sxgg7")
|
||||
|
||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="Fog" unique_id=10121049]
|
||||
transform = Transform3D(-42.075005, 7.553328e-06, 1.7196172e-13, 0, -3.7766642e-06, 45, 3.6783138e-06, 86.4, 1.9670128e-06, 59.320038, 14, 0)
|
||||
mesh = SubResource("QuadMesh_yn8v8")
|
||||
surface_material_override/0 = SubResource("ShaderMaterial_sxgg7")
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
class_name EnvironmentManagerRoot
|
||||
extends Node3D
|
||||
|
||||
const NOISE_TEXTURE: Texture2D = preload("res://core/daynight/noise.tres")
|
||||
const WEATHER_SHADER: Material = preload("res://core/daynight/weather_overlay.tres")
|
||||
const WEATHER_PLAIN_SHADER: Material = preload("res://core/daynight/weather_plain_shader.tres")
|
||||
const DYNAMIC_ENVIRONMENT_UPDATES_PER_FRAME: int = 2 #how many update of the environment (apply materials) will be done per frame
|
||||
|
||||
@export var environment_config: EnvironmentConfig
|
||||
|
||||
@export_group("Camera")
|
||||
@@ -16,6 +21,7 @@ extends Node3D
|
||||
@export var environment_dust: ColorRect
|
||||
@export var blur: ColorRect
|
||||
@export var environment_shadows: MeshInstance3D
|
||||
@export var fog: Node3D
|
||||
|
||||
@export_group("Sound")
|
||||
@export var thunder_sounds: Array[AudioStream]
|
||||
@@ -30,9 +36,13 @@ var weather_controller: WeatherController
|
||||
|
||||
var day_tween: Tween
|
||||
var day_time: float = 0.0
|
||||
var pending_environment_nodes: Dictionary = {}
|
||||
|
||||
func _ready() -> void:
|
||||
|
||||
#connect shader when new node is added
|
||||
get_tree().node_added.connect(_on_tree_node_added)
|
||||
|
||||
#set noise texture 2d to materials in special group
|
||||
ApplyWindNoiseToMaterials()
|
||||
#set weather overlay (snow + rain) to materials in special group
|
||||
@@ -55,6 +65,7 @@ func _ready() -> void:
|
||||
godray,
|
||||
environment_dust,
|
||||
blur,
|
||||
fog,
|
||||
environment_shadows,
|
||||
sun,
|
||||
environment,
|
||||
@@ -67,10 +78,67 @@ func _ready() -> void:
|
||||
weather_controller.name = "WeatherController"
|
||||
add_child(weather_controller)
|
||||
|
||||
func _process(_delta: float) -> void:
|
||||
_process_pending_environment_nodes()
|
||||
|
||||
func _on_tree_node_added(node: Node) -> void:
|
||||
if node.is_in_group("wind_node") or node.is_in_group("weather_node") or node.is_in_group("weather_vegetables_node"):
|
||||
_queue_dynamic_environment_node(node)
|
||||
|
||||
func _queue_dynamic_environment_node(node: Node) -> void:
|
||||
if not is_instance_valid(node):
|
||||
return
|
||||
|
||||
var ancestor = node.get_parent()
|
||||
while ancestor != null:
|
||||
if pending_environment_nodes.has(ancestor.get_instance_id()):
|
||||
return
|
||||
ancestor = ancestor.get_parent()
|
||||
|
||||
var stale_ids: Array[int] = []
|
||||
for node_id in pending_environment_nodes.keys():
|
||||
var pending_node = pending_environment_nodes[node_id]
|
||||
if not is_instance_valid(pending_node):
|
||||
stale_ids.append(node_id)
|
||||
continue
|
||||
if node.is_ancestor_of(pending_node):
|
||||
stale_ids.append(node_id)
|
||||
|
||||
for node_id in stale_ids:
|
||||
pending_environment_nodes.erase(node_id)
|
||||
|
||||
pending_environment_nodes[node.get_instance_id()] = node
|
||||
|
||||
func _process_pending_environment_nodes() -> void:
|
||||
var processed = 0
|
||||
for node_id in pending_environment_nodes.keys():
|
||||
if processed >= DYNAMIC_ENVIRONMENT_UPDATES_PER_FRAME:
|
||||
break
|
||||
|
||||
var node = pending_environment_nodes[node_id]
|
||||
pending_environment_nodes.erase(node_id)
|
||||
if not is_instance_valid(node):
|
||||
continue
|
||||
|
||||
_apply_dynamic_environment_materials(node)
|
||||
processed += 1
|
||||
|
||||
func _apply_dynamic_environment_materials(node: Node) -> void:
|
||||
if not is_instance_valid(node):
|
||||
return
|
||||
|
||||
if node.is_in_group("wind_node"):
|
||||
_apply_wind_noise_to_node(node, NOISE_TEXTURE)
|
||||
|
||||
if node.is_in_group("weather_node"):
|
||||
_apply_weather_overlay_to_node(node, WEATHER_SHADER)
|
||||
|
||||
if node.is_in_group("weather_vegetables_node"):
|
||||
_apply_weather_overlay_to_node(node, WEATHER_PLAIN_SHADER)
|
||||
|
||||
func ApplyWindNoiseToMaterials():
|
||||
var noise_tex = preload("res://core/daynight/noise.tres")
|
||||
for node in get_tree().get_nodes_in_group("wind_node"):
|
||||
_apply_wind_noise_to_node(node, noise_tex)
|
||||
_apply_wind_noise_to_node(node, NOISE_TEXTURE)
|
||||
|
||||
func _apply_wind_noise_to_node(node: Node, noise_tex: Texture2D) -> void:
|
||||
if node is GeometryInstance3D:
|
||||
@@ -88,15 +156,18 @@ func _apply_wind_noise_to_node(node: Node, noise_tex: Texture2D) -> void:
|
||||
_apply_wind_noise_to_node(child, noise_tex)
|
||||
|
||||
func ApplyWeatherShaderToMaterials():
|
||||
var weather_shader = preload("res://core/daynight/weather_overlay.tres")
|
||||
|
||||
for node in get_tree().get_nodes_in_group("weather_node"):
|
||||
if node is GeometryInstance3D:
|
||||
node.material_overlay = weather_shader
|
||||
else:
|
||||
for child in node.get_children():
|
||||
if child is GeometryInstance3D:
|
||||
child.material_overlay = weather_shader
|
||||
_apply_weather_overlay_to_node(node, WEATHER_SHADER)
|
||||
|
||||
for node in get_tree().get_nodes_in_group("weather_vegetables_node"):
|
||||
_apply_weather_overlay_to_node(node, WEATHER_PLAIN_SHADER)
|
||||
|
||||
func _apply_weather_overlay_to_node(node: Node, material: Material) -> void:
|
||||
if node is GeometryInstance3D:
|
||||
node.material_overlay = material
|
||||
|
||||
for child in node.get_children():
|
||||
_apply_weather_overlay_to_node(child, material)
|
||||
|
||||
func select_day_time(normalized_time: float) -> void:
|
||||
#set show_day_time_debug = true to show debug on screen
|
||||
|
||||
@@ -8,7 +8,10 @@ global uniform float global_wind_speed;
|
||||
global uniform float global_wind_strength;
|
||||
global uniform vec2 global_wind_direction;
|
||||
//global uniform sampler2D global_wind_noise : filter_linear_mipmap;
|
||||
global uniform float global_snow_amount;
|
||||
global uniform float global_snow_start_time;
|
||||
global uniform float global_snow_accumulation_speed;
|
||||
global uniform float global_snow_melt_time;
|
||||
global uniform float global_snow_melt_speed;
|
||||
|
||||
// --- PARAMETRI ESTETICI ---
|
||||
uniform bool billboard_enabled = true;
|
||||
@@ -109,10 +112,19 @@ void fragment() {
|
||||
float noise_sample = texture(color_variance_noise, v_world_pos.xz * variance_scale).r;
|
||||
// Applichiamo la variazione al colore finale dell'erba
|
||||
vec3 varied_grass_color = mix(v_final_color, variance_color.rgb, noise_sample * variance_intensity);
|
||||
|
||||
float snow_amount = 0.0;
|
||||
if (global_snow_start_time >= 0.0) {
|
||||
snow_amount = clamp((TIME - global_snow_start_time) * global_snow_accumulation_speed, 0.0, 1.0);
|
||||
}
|
||||
if (global_snow_melt_time >= 0.0) {
|
||||
float melt = clamp((TIME - global_snow_melt_time) * global_snow_melt_speed, 0.0, 1.0);
|
||||
snow_amount *= (1.0 - melt);
|
||||
}
|
||||
|
||||
float top_mask = 1.0 - shifted_uv.y;
|
||||
float snow_mask = smoothstep(1.0 - global_snow_amount, 1.2 - global_snow_amount, top_mask);
|
||||
snow_mask *= step(0.01, global_snow_amount);
|
||||
float snow_mask = smoothstep(1.0 - snow_amount, 1.2 - snow_amount, top_mask);
|
||||
snow_mask *= step(0.01, snow_amount);
|
||||
|
||||
vec3 dark_snow = snow_color.rgb * (1.0 - shadow_intensity);
|
||||
vec3 shaded_snow = mix(dark_snow, snow_color.rgb, v_shade_factor);
|
||||
@@ -131,4 +143,4 @@ void light() {
|
||||
float shadow_factor = mix(1.0 - cast_shadow_strength, 1.0, ATTENUATION);
|
||||
float cutoff_mask = smoothstep(0.0, 0.05, ATTENUATION);
|
||||
DIFFUSE_LIGHT += (shadow_factor * LIGHT_COLOR) * cutoff_mask;
|
||||
}
|
||||
}
|
||||
|
||||
107
core/daynight/snow_cap.gd
Normal file
107
core/daynight/snow_cap.gd
Normal file
@@ -0,0 +1,107 @@
|
||||
## Procedural snow cap geometry for flat roofs and vehicles.
|
||||
extends Node3D
|
||||
|
||||
enum PlacementMode {
|
||||
AUTO_TARGET_AABB,
|
||||
MANUAL_SURFACE,
|
||||
}
|
||||
|
||||
const SNOW_CAP_SHADER: Shader = preload("res://core/daynight/snow_cap.gdshader")
|
||||
|
||||
@export var placement_mode: PlacementMode = PlacementMode.AUTO_TARGET_AABB
|
||||
@export var target_path: NodePath
|
||||
@export var size_inset: Vector2 = Vector2(0.25, 1.0)
|
||||
@export var position_offset: Vector3 = Vector3(0.0, -0.08, 0.0)
|
||||
@export var max_snow_height: float = 0.2
|
||||
@export_range(1, 24) var subdivide_width: int = 6
|
||||
@export_range(1, 24) var subdivide_depth: int = 18
|
||||
@export var manual_surface_center: Vector3 = Vector3.ZERO
|
||||
@export var manual_surface_size: Vector2 = Vector2(2.0, 6.0)
|
||||
|
||||
var _mesh_instance: MeshInstance3D
|
||||
|
||||
func _ready() -> void:
|
||||
add_to_group("weather_overlay_ignore")
|
||||
_ensure_mesh_instance()
|
||||
_rebuild()
|
||||
|
||||
func rebuild() -> void:
|
||||
_rebuild()
|
||||
|
||||
func _ensure_mesh_instance() -> void:
|
||||
_mesh_instance = get_node_or_null("SnowCapMesh") as MeshInstance3D
|
||||
if _mesh_instance != null:
|
||||
return
|
||||
|
||||
_mesh_instance = MeshInstance3D.new()
|
||||
_mesh_instance.name = "SnowCapMesh"
|
||||
_mesh_instance.add_to_group("weather_overlay_ignore")
|
||||
add_child(_mesh_instance)
|
||||
|
||||
func _rebuild() -> void:
|
||||
var cap_width: float = 0.0
|
||||
var cap_depth: float = 0.0
|
||||
var cap_surface_center := Vector3.ZERO
|
||||
|
||||
if placement_mode == PlacementMode.MANUAL_SURFACE:
|
||||
cap_width = manual_surface_size.x
|
||||
cap_depth = manual_surface_size.y
|
||||
cap_surface_center = manual_surface_center
|
||||
else:
|
||||
var target_mesh: MeshInstance3D = get_node_or_null(target_path) as MeshInstance3D
|
||||
if target_mesh == null:
|
||||
if _mesh_instance:
|
||||
_mesh_instance.visible = false
|
||||
return
|
||||
|
||||
var target_aabb: AABB = _get_target_aabb(target_mesh)
|
||||
cap_width = max(target_aabb.size.x - size_inset.x, 0.1)
|
||||
cap_depth = max(target_aabb.size.z - size_inset.y, 0.1)
|
||||
cap_surface_center = Vector3(
|
||||
target_aabb.position.x + target_aabb.size.x * 0.5,
|
||||
target_aabb.position.y + target_aabb.size.y,
|
||||
target_aabb.position.z + target_aabb.size.z * 0.5
|
||||
)
|
||||
|
||||
var cap_center := cap_surface_center + Vector3(0.0, max_snow_height * 0.5, 0.0)
|
||||
|
||||
var box_mesh := BoxMesh.new()
|
||||
box_mesh.size = Vector3(cap_width, max_snow_height, cap_depth)
|
||||
box_mesh.subdivide_width = subdivide_width
|
||||
box_mesh.subdivide_depth = subdivide_depth
|
||||
_mesh_instance.mesh = box_mesh
|
||||
_mesh_instance.position = cap_center + position_offset
|
||||
_mesh_instance.material_override = _build_material(cap_width, cap_depth)
|
||||
_mesh_instance.visible = true
|
||||
|
||||
func _build_material(cap_width: float, cap_depth: float) -> ShaderMaterial:
|
||||
var material := ShaderMaterial.new()
|
||||
material.shader = SNOW_CAP_SHADER
|
||||
material.set_shader_parameter("max_height", max_snow_height)
|
||||
material.set_shader_parameter("half_width", cap_width * 0.5)
|
||||
material.set_shader_parameter("half_depth", cap_depth * 0.5)
|
||||
return material
|
||||
|
||||
func _get_target_aabb(target_mesh: MeshInstance3D) -> AABB:
|
||||
var points: Array[Vector3] = []
|
||||
for point in _get_aabb_points(target_mesh.get_aabb()):
|
||||
points.append(target_mesh.transform * point)
|
||||
|
||||
var merged := AABB(points[0], Vector3.ZERO)
|
||||
for point in points:
|
||||
merged = merged.expand(point)
|
||||
return merged
|
||||
|
||||
func _get_aabb_points(aabb: AABB) -> Array[Vector3]:
|
||||
var p: Vector3 = aabb.position
|
||||
var s: Vector3 = aabb.size
|
||||
return [
|
||||
p,
|
||||
p + Vector3(s.x, 0.0, 0.0),
|
||||
p + Vector3(0.0, s.y, 0.0),
|
||||
p + Vector3(0.0, 0.0, s.z),
|
||||
p + Vector3(s.x, s.y, 0.0),
|
||||
p + Vector3(s.x, 0.0, s.z),
|
||||
p + Vector3(0.0, s.y, s.z),
|
||||
p + s,
|
||||
]
|
||||
1
core/daynight/snow_cap.gd.uid
Normal file
1
core/daynight/snow_cap.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://bxc6ketfgedxw
|
||||
114
core/daynight/snow_cap.gdshader
Normal file
114
core/daynight/snow_cap.gdshader
Normal file
@@ -0,0 +1,114 @@
|
||||
shader_type spatial;
|
||||
render_mode blend_mix, cull_back, depth_draw_opaque;
|
||||
|
||||
global uniform float global_snow_start_time = -1.0;
|
||||
global uniform float global_snow_accumulation_speed = 0.1;
|
||||
global uniform float global_snow_melt_time = -1.0;
|
||||
global uniform float global_snow_melt_speed = 0.1;
|
||||
global uniform vec4 global_snow_color = vec4(0.92, 0.96, 1.0, 1.0);
|
||||
|
||||
uniform float max_height : hint_range(0.02, 1.0) = 0.2;
|
||||
uniform float half_width : hint_range(0.01, 20.0) = 1.0;
|
||||
uniform float half_depth : hint_range(0.01, 20.0) = 1.0;
|
||||
uniform float noise_scale : hint_range(0.05, 2.0) = 0.35;
|
||||
uniform float noise_strength : hint_range(0.0, 0.4) = 0.18;
|
||||
uniform float edge_rounding : hint_range(0.0, 0.3) = 0.12;
|
||||
uniform float side_shade : hint_range(0.2, 1.0) = 0.82;
|
||||
uniform float sparkle_strength : hint_range(0.0, 0.1) = 0.03;
|
||||
|
||||
varying float v_snow_amount;
|
||||
varying float v_noise;
|
||||
|
||||
float hash(vec2 p) {
|
||||
return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123);
|
||||
}
|
||||
|
||||
float value_noise(vec2 p) {
|
||||
vec2 i = floor(p);
|
||||
vec2 f = fract(p);
|
||||
vec2 u = f * f * (3.0 - 2.0 * f);
|
||||
|
||||
float a = hash(i);
|
||||
float b = hash(i + vec2(1.0, 0.0));
|
||||
float c = hash(i + vec2(0.0, 1.0));
|
||||
float d = hash(i + vec2(1.0, 1.0));
|
||||
|
||||
return mix(mix(a, b, u.x), mix(c, d, u.x), u.y);
|
||||
}
|
||||
|
||||
float fbm(vec2 p) {
|
||||
float value = 0.0;
|
||||
float amplitude = 0.5;
|
||||
float frequency = 1.0;
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
value += value_noise(p * frequency) * amplitude;
|
||||
frequency *= 2.0;
|
||||
amplitude *= 0.5;
|
||||
}
|
||||
|
||||
return clamp(value, 0.0, 1.0);
|
||||
}
|
||||
|
||||
float get_snow_amount() {
|
||||
float snow_amount = 0.0;
|
||||
if (global_snow_start_time >= 0.0) {
|
||||
snow_amount = clamp(
|
||||
(TIME - global_snow_start_time) * global_snow_accumulation_speed,
|
||||
0.0,
|
||||
1.0
|
||||
);
|
||||
}
|
||||
if (global_snow_melt_time >= 0.0) {
|
||||
float melt = clamp((TIME - global_snow_melt_time) * global_snow_melt_speed, 0.0, 1.0);
|
||||
snow_amount *= (1.0 - melt);
|
||||
}
|
||||
return snow_amount;
|
||||
}
|
||||
|
||||
void vertex() {
|
||||
vec3 base_vertex = VERTEX;
|
||||
vec3 world_pos = (MODEL_MATRIX * vec4(base_vertex, 1.0)).xyz;
|
||||
float snow_amount = get_snow_amount();
|
||||
float noise_val = fbm(world_pos.xz * noise_scale);
|
||||
float thickness = max_height * snow_amount * mix(
|
||||
1.0 - noise_strength,
|
||||
1.0 + noise_strength,
|
||||
noise_val
|
||||
);
|
||||
float footprint_growth = smoothstep(0.0, 0.35, snow_amount);
|
||||
|
||||
float from_bottom = clamp((base_vertex.y + max_height * 0.5) / max_height, 0.0, 1.0);
|
||||
VERTEX.y = -max_height * 0.5 + thickness * from_bottom;
|
||||
VERTEX.x *= mix(0.92, 1.0, footprint_growth);
|
||||
VERTEX.z *= mix(0.94, 1.0, footprint_growth);
|
||||
|
||||
float edge_x = abs(base_vertex.x) / max(half_width, 0.001);
|
||||
float edge_z = abs(base_vertex.z) / max(half_depth, 0.001);
|
||||
float edge_mask = smoothstep(0.55, 1.0, max(edge_x, edge_z));
|
||||
float top_mask = smoothstep(0.6, 1.0, from_bottom) * snow_amount;
|
||||
float round_factor = edge_rounding * edge_mask * top_mask;
|
||||
VERTEX.x *= 1.0 - round_factor;
|
||||
VERTEX.z *= 1.0 - round_factor;
|
||||
|
||||
v_snow_amount = snow_amount;
|
||||
v_noise = noise_val;
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
if (v_snow_amount <= 0.001) {
|
||||
ALPHA = 0.0;
|
||||
ALBEDO = global_snow_color.rgb;
|
||||
ROUGHNESS = 1.0;
|
||||
SPECULAR = 0.0;
|
||||
} else {
|
||||
float facing_up = clamp(NORMAL.y, 0.0, 1.0);
|
||||
float shade = mix(-sparkle_strength, sparkle_strength, v_noise);
|
||||
vec3 snow_albedo = clamp(global_snow_color.rgb + vec3(shade), 0.0, 1.0);
|
||||
|
||||
ALBEDO = mix(snow_albedo * side_shade, snow_albedo, facing_up);
|
||||
ROUGHNESS = mix(0.95, 0.72, facing_up);
|
||||
SPECULAR = 0.18;
|
||||
ALPHA = smoothstep(0.0, 0.28, v_snow_amount);
|
||||
}
|
||||
}
|
||||
1
core/daynight/snow_cap.gdshader.uid
Normal file
1
core/daynight/snow_cap.gdshader.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://c7js7ytvewmab
|
||||
@@ -6,11 +6,12 @@ global uniform vec2 global_wind_direction;
|
||||
global uniform float global_wind_scale;
|
||||
global uniform float global_wind_strength;
|
||||
global uniform float global_wind_fade;
|
||||
/*
|
||||
global uniform float global_snow_start_time;
|
||||
global uniform float global_snow_accumulation_speed;
|
||||
global uniform float global_snow_melt_time;
|
||||
global uniform float global_snow_melt_speed;
|
||||
global uniform vec4 global_snow_color;
|
||||
global uniform vec4 global_snow_color;*/
|
||||
global uniform float global_rain_intensity;
|
||||
|
||||
uniform sampler2D wind_noise : filter_linear_mipmap;
|
||||
@@ -87,24 +88,25 @@ void fragment() {
|
||||
vec2 shifted_uv = UV + texture_offset;
|
||||
vec4 tex = texture(alpha_texture, shifted_uv);
|
||||
|
||||
// Snow accumulation
|
||||
float snow_amount = 0.0;
|
||||
if (global_snow_start_time >= 0.0) {
|
||||
snow_amount = clamp((TIME - global_snow_start_time) * global_snow_accumulation_speed, 0.0, 1.0);
|
||||
}
|
||||
if (global_snow_melt_time >= 0.0) {
|
||||
float melt = clamp((TIME - global_snow_melt_time) * global_snow_melt_speed, 0.0, 1.0);
|
||||
snow_amount *= (1.0 - melt);
|
||||
}
|
||||
|
||||
float top_mask = 1.0 - shifted_uv.y;
|
||||
float snow_mask = smoothstep(1.0 - snow_amount, 1.2 - snow_amount, top_mask);
|
||||
snow_mask *= step(0.01, snow_amount);
|
||||
|
||||
vec3 dark_snow = global_snow_color.rgb * (1.0 - shadow_intensity);
|
||||
vec3 shaded_snow = mix(dark_snow, global_snow_color.rgb, v_shade_factor);
|
||||
vec3 final_albedo = mix(v_final_color, shaded_snow, snow_mask);
|
||||
//// Snow accumulation
|
||||
//float snow_amount = 0.0;
|
||||
//if (global_snow_start_time >= 0.0) {
|
||||
//snow_amount = clamp((TIME - global_snow_start_time) * global_snow_accumulation_speed, 0.0, 1.0);
|
||||
//}
|
||||
//if (global_snow_melt_time >= 0.0) {
|
||||
//float melt = clamp((TIME - global_snow_melt_time) * global_snow_melt_speed, 0.0, 1.0);
|
||||
//snow_amount *= (1.0 - melt);
|
||||
//}
|
||||
//
|
||||
//float top_mask = 1.0 - shifted_uv.y;
|
||||
//float snow_mask = smoothstep(1.0 - snow_amount, 1.2 - snow_amount, top_mask);
|
||||
//snow_mask *= step(0.01, snow_amount);
|
||||
|
||||
//vec3 dark_snow = global_snow_color.rgb * (1.0 - shadow_intensity);
|
||||
//vec3 shaded_snow = mix(dark_snow, global_snow_color.rgb, v_shade_factor);
|
||||
//vec3 final_albedo = mix(v_final_color, shaded_snow, snow_mask);
|
||||
vec3 final_albedo = v_final_color;
|
||||
|
||||
// Rain wetness: darken and make shinier
|
||||
float rain_int = clamp(global_rain_intensity, 0.0, 1.0);
|
||||
final_albedo *= mix(1.0, 1.0 - wetness_darkening, rain_int);
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
shader_type spatial;
|
||||
render_mode blend_mix, depth_draw_always;
|
||||
|
||||
global uniform float global_rain_intensity;
|
||||
global uniform vec4 global_water_color = vec4(0.285, 0.534, 0.487, 1.0);
|
||||
|
||||
//Water color
|
||||
uniform vec4 deep_water_color : source_color = vec4(0.0, 0.1, 0.2, 1.0);
|
||||
uniform vec4 shallow_water_color : source_color = vec4(0.0, 0.4, 0.7, 1.0);
|
||||
@@ -41,12 +44,15 @@ void fragment() {
|
||||
|
||||
float water_depth_gradient = exp(-depth_difference * beer_law_factor);
|
||||
vec4 base_water = mix(deep_water_color, shallow_water_color, water_depth_gradient);
|
||||
float rain_intensity = clamp(global_rain_intensity, 0.0, 1.0);
|
||||
base_water.rgb = mix(base_water.rgb, global_water_color.rgb, 0.7);
|
||||
|
||||
vec2 pos = world_pos_xz * ripple_scale;
|
||||
vec2 cell = floor(pos);
|
||||
vec2 local_pos = fract(pos) - 0.5;
|
||||
float random_val = fract(sin(dot(cell, vec2(12.9898, 78.233))) * 43758.5453);
|
||||
float is_active_cell = step(1.0 - ripple_density, random_val);
|
||||
float active_ripple_density = ripple_density * rain_intensity;
|
||||
float is_active_cell = step(1.0 - active_ripple_density, random_val);
|
||||
|
||||
float ring = 0.0;
|
||||
if (is_active_cell > 0.0) {
|
||||
@@ -56,6 +62,7 @@ void fragment() {
|
||||
- smoothstep(local_time, local_time + ripple_thickness, dist);
|
||||
ring *= (1.0 - local_time);
|
||||
}
|
||||
ring *= rain_intensity;
|
||||
|
||||
vec2 ref_uv = SCREEN_UV;
|
||||
|
||||
@@ -85,4 +92,4 @@ void fragment() {
|
||||
|
||||
ROUGHNESS = 1.0;
|
||||
SPECULAR = 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ var godray: PackedScene
|
||||
var environment_dust: ColorRect
|
||||
var blur: ColorRect
|
||||
var environment_shadows: MeshInstance3D
|
||||
var fog: Node3D
|
||||
|
||||
var sun: DirectionalLight3D
|
||||
var environment: WorldEnvironment
|
||||
@@ -49,10 +50,13 @@ var current_wind_speed: float = 0.0
|
||||
var current_wind_strength: float = 0.0
|
||||
var current_wind_fade: float = 0.0
|
||||
var max_wind_amount: int = 0
|
||||
var random_weather_restore_tween: Tween
|
||||
var random_event_remaining: float = 0.0
|
||||
var random_event_label_seconds: int = -1
|
||||
|
||||
func _init(wind: GPUParticles3D, snow: GPUParticles3D,
|
||||
fireflies: GPUParticles3D, rain: GPUParticles3D, ray: PackedScene,
|
||||
dust: ColorRect, blurr: ColorRect, envshadows: MeshInstance3D,
|
||||
dust: ColorRect, blurr: ColorRect, thefog: Node3D, envshadows: MeshInstance3D,
|
||||
thesun: DirectionalLight3D, theenvironment: WorldEnvironment, environmentconfig: EnvironmentConfig,
|
||||
thecamera: Camera3D, thecamerapivot: Node3D, thundersounds: Array[AudioStream], rainsounds: Array[AudioStream]) -> void:
|
||||
particles_wind = wind
|
||||
@@ -63,6 +67,7 @@ func _init(wind: GPUParticles3D, snow: GPUParticles3D,
|
||||
sun = thesun
|
||||
environment_dust = dust
|
||||
blur = blurr
|
||||
fog = thefog
|
||||
environment_shadows = envshadows
|
||||
environment = theenvironment
|
||||
environment_config = environmentconfig
|
||||
@@ -86,6 +91,7 @@ func _init(wind: GPUParticles3D, snow: GPUParticles3D,
|
||||
|
||||
toggle_dust(environment_config.enable_dust)
|
||||
toggle_blur(environment_config.enable_blur)
|
||||
toggle_fog(environment_config.enable_fog)
|
||||
|
||||
#set camera pivot if available
|
||||
if camera_pivot:
|
||||
@@ -98,13 +104,17 @@ func _ready() -> void:
|
||||
UIEvents.toggle_snow.connect(toggle_snow)
|
||||
UIEvents.toggle_wind.connect(toggle_wind)
|
||||
UIEvents.wind_change.connect(change_wind_strength)
|
||||
UIEvents.trigger_random_weather.connect(trigger_random_weather_event)
|
||||
UIEvents.toggle_fireflies.connect(toggle_fireflies)
|
||||
UIEvents.toggle_storm.connect(toggle_storm)
|
||||
UIEvents.toggle_dust.connect(toggle_dust)
|
||||
UIEvents.toggle_blur.connect(toggle_blur)
|
||||
UIEvents.toggle_fog.connect(toggle_fog)
|
||||
UIEvents.toggle_shadows.connect(toggle_shadows)
|
||||
_emit_weather_event_label()
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
_update_random_event_label(delta)
|
||||
|
||||
_follow_camera()
|
||||
|
||||
@@ -122,6 +132,7 @@ func _process(delta: float) -> void:
|
||||
var base_grad_top: Color
|
||||
var base_grad_bot: Color
|
||||
var base_grad_intensity: float
|
||||
var base_water_color: Color
|
||||
var base_rotation_sun: Vector3
|
||||
|
||||
if is_raining:
|
||||
@@ -149,6 +160,7 @@ func _process(delta: float) -> void:
|
||||
base_grad_top = environment_config.grad_top_morning.lerp(environment_config.grad_top_afternoon, t)
|
||||
base_grad_bot = environment_config.grad_top_morning.lerp(environment_config.grad_bot_afternoon, t)
|
||||
base_grad_intensity = lerp(environment_config.grad_intensity_morning, environment_config.grad_intensity_afternoon, t)
|
||||
base_water_color = environment_config.water_color_morning.lerp(environment_config.water_color_afternoon, t)
|
||||
base_rotation_sun = environment_config.sun_rotation_morning.lerp(environment_config.sun_rotation_afternoon, t)
|
||||
else:
|
||||
var t = day_time - 2.0
|
||||
@@ -162,6 +174,7 @@ func _process(delta: float) -> void:
|
||||
base_grad_top = environment_config.grad_top_afternoon.lerp(environment_config.grad_top_night, t)
|
||||
base_grad_bot = environment_config.grad_bot_afternoon.lerp(environment_config.grad_bot_night, t)
|
||||
base_grad_intensity = lerp(environment_config.grad_intensity_afternoon, environment_config.grad_intensity_night, t)
|
||||
base_water_color = environment_config.water_color_afternoon.lerp(environment_config.water_color_night, t)
|
||||
base_rotation_sun = environment_config.sun_rotation_afternoon.lerp(environment_config.sun_rotation_night, t)
|
||||
|
||||
var weather_color = environment_config.rain_mode_color
|
||||
@@ -173,6 +186,7 @@ func _process(delta: float) -> void:
|
||||
var final_sky_horizon = base_sky_horizon.lerp(base_sky_horizon * weather_color, clamp(rain_intensity, 0.0, 1.0))
|
||||
var final_fog_color = base_fog_color.lerp(base_fog_color * weather_color, clamp(rain_intensity, 0.0, 1.0))
|
||||
var final_fog_density = lerp(base_fog_density, base_fog_density * 4.0, clamp(rain_intensity, 0.0, 1.0))
|
||||
var final_water_color = base_water_color.darkened(clamp(environment_config.water_darkening_rain, 0.0, 1.0) * clamp(rain_intensity, 0.0, 1.0))
|
||||
|
||||
final_tint = final_tint.lerp(final_tint * environment_config.snow_mode_color, actual_snow_amount)
|
||||
final_sky_top = final_sky_top.lerp(final_sky_top * environment_config.snow_mode_color, actual_snow_amount)
|
||||
@@ -186,6 +200,7 @@ func _process(delta: float) -> void:
|
||||
RenderingServer.global_shader_parameter_set("global_gradient_color_top", final_grad_top)
|
||||
RenderingServer.global_shader_parameter_set("global_gradient_color_bot", final_grad_bot)
|
||||
RenderingServer.global_shader_parameter_set("global_gradient_intensity", base_grad_intensity)
|
||||
RenderingServer.global_shader_parameter_set("global_water_color", final_water_color)
|
||||
|
||||
var night_val = clamp(day_time - 2.0, 0.0, 1.0)
|
||||
|
||||
@@ -265,6 +280,23 @@ func _get_weather_anchor_position() -> Variant:
|
||||
return camera.global_position
|
||||
return null
|
||||
|
||||
func _get_weather_anchor_basis() -> Variant:
|
||||
var source_basis: Basis
|
||||
if camera_pivot and is_instance_valid(camera_pivot):
|
||||
source_basis = camera_pivot.global_basis
|
||||
elif camera and is_instance_valid(camera):
|
||||
source_basis = camera.global_basis
|
||||
else:
|
||||
return null
|
||||
|
||||
var forward := -source_basis.z
|
||||
forward.y = 0.0
|
||||
if forward.length_squared() <= 0.0001:
|
||||
return Basis.IDENTITY
|
||||
forward = forward.normalized()
|
||||
var right := forward.cross(Vector3.UP).normalized()
|
||||
return Basis(right, Vector3.UP, -forward)
|
||||
|
||||
func _follow_camera() -> void:
|
||||
var cam_pos = _get_weather_anchor_position()
|
||||
if cam_pos == null:
|
||||
@@ -277,6 +309,12 @@ func _follow_camera() -> void:
|
||||
particles_wind.global_position = Vector3(cam_pos.x, cam_pos.y, cam_pos.z)
|
||||
if particles_fireflies:
|
||||
particles_fireflies.global_position = Vector3(cam_pos.x, particles_fireflies.position.y, cam_pos.z)
|
||||
if fog:
|
||||
fog.global_position = Vector3(cam_pos.x, fog.global_position.y, cam_pos.z)
|
||||
#used to follow camera pivot or camera
|
||||
var anchor_basis = _get_weather_anchor_basis()
|
||||
if anchor_basis != null:
|
||||
fog.global_basis = anchor_basis
|
||||
#endregion
|
||||
|
||||
#region Fireflies
|
||||
@@ -307,6 +345,7 @@ func toggle_wind(value: bool):
|
||||
particles_wind.emitting = is_windy
|
||||
|
||||
_apply_wind_state()
|
||||
_emit_weather_event_label()
|
||||
|
||||
#disable wind and set default values and materials
|
||||
func init_wind():
|
||||
@@ -410,6 +449,67 @@ func _update_wind_amount_from_strength(value: float) -> void:
|
||||
|
||||
environment_config.wind_amount = roundi(max_wind_amount * amount_ratio)
|
||||
|
||||
func trigger_random_weather_event(duration: float = 0.0) -> void:
|
||||
if random_weather_restore_tween and random_weather_restore_tween.is_valid():
|
||||
random_weather_restore_tween.kill()
|
||||
random_event_remaining = 0.0
|
||||
random_event_label_seconds = -1
|
||||
|
||||
var previous_rain: bool = is_raining
|
||||
var previous_snow: bool = is_snowing
|
||||
var previous_wind: bool = is_windy
|
||||
var previous_storm: bool = is_storm
|
||||
var random_event_index: int = randi_range(0, 3)
|
||||
match random_event_index:
|
||||
0:
|
||||
_apply_weather_event_state(false, true, false, false)
|
||||
1:
|
||||
_apply_weather_event_state(true, false, false, false)
|
||||
2:
|
||||
_apply_weather_event_state(false, false, true, false)
|
||||
_:
|
||||
_apply_weather_event_state(true, false, false, true)
|
||||
|
||||
if duration > 0.0:
|
||||
random_event_remaining = duration
|
||||
_emit_weather_event_label()
|
||||
random_weather_restore_tween = create_tween()
|
||||
random_weather_restore_tween.tween_interval(duration)
|
||||
random_weather_restore_tween.tween_callback(func():
|
||||
random_event_remaining = 0.0
|
||||
random_event_label_seconds = -1
|
||||
_apply_weather_event_state(previous_rain, previous_snow, previous_wind, previous_storm)
|
||||
)
|
||||
|
||||
func _update_random_event_label(delta: float) -> void:
|
||||
if random_event_remaining <= 0.0:
|
||||
return
|
||||
|
||||
random_event_remaining = maxf(random_event_remaining - delta, 0.0)
|
||||
var display_seconds: int = ceili(random_event_remaining)
|
||||
if display_seconds != random_event_label_seconds:
|
||||
random_event_label_seconds = display_seconds
|
||||
_emit_weather_event_label()
|
||||
|
||||
func _apply_weather_event_state(rain_enabled: bool, snow_enabled: bool, wind_enabled: bool, storm_enabled: bool = false) -> void:
|
||||
if is_storm and not storm_enabled:
|
||||
toggle_storm(false)
|
||||
if is_raining and not rain_enabled:
|
||||
toggle_rain(false)
|
||||
if is_snowing and not snow_enabled:
|
||||
toggle_snow(false)
|
||||
if is_windy and not wind_enabled:
|
||||
toggle_wind(false)
|
||||
|
||||
if not is_raining and rain_enabled:
|
||||
toggle_rain(true)
|
||||
if not is_snowing and snow_enabled:
|
||||
toggle_snow(true)
|
||||
if not is_windy and wind_enabled:
|
||||
toggle_wind(true)
|
||||
if not is_storm and storm_enabled:
|
||||
toggle_storm(true)
|
||||
|
||||
func _apply_cloud_config() -> void:
|
||||
var dir = environment_config.wind_direction
|
||||
var cloud_scale = environment_config.cloud_scale
|
||||
@@ -441,6 +541,7 @@ func _apply_cloud_config() -> void:
|
||||
|
||||
func toggle_storm(value: bool):
|
||||
is_storm = value
|
||||
_emit_weather_event_label()
|
||||
|
||||
#set lightning
|
||||
func init_lightning():
|
||||
@@ -554,6 +655,7 @@ func toggle_rain(value: bool):
|
||||
is_raining = value
|
||||
|
||||
if not particles_rain:
|
||||
_emit_weather_event_label()
|
||||
return
|
||||
|
||||
if is_raining and is_snowing:
|
||||
@@ -587,6 +689,7 @@ func toggle_rain(value: bool):
|
||||
trigger_after_rain())
|
||||
puddle_tween = create_tween()
|
||||
puddle_tween.tween_method(set_puddle_amount, puddle_amount, 0.0, environment_config.puddle_dry_time)
|
||||
_emit_weather_event_label()
|
||||
|
||||
func trigger_morning() -> void:
|
||||
spawn_single_godray()
|
||||
@@ -685,6 +788,25 @@ func toggle_snow(value: bool):
|
||||
snow_tween.kill()
|
||||
snow_tween = create_tween()
|
||||
snow_tween.tween_method(init_snow_amount, actual_snow_amount, target_snow_amount, environment_config.snow_transaction_time)
|
||||
_emit_weather_event_label()
|
||||
|
||||
func _emit_weather_event_label() -> void:
|
||||
var weather_label := "Weather: Clear"
|
||||
if is_storm:
|
||||
weather_label = "Weather: Storm"
|
||||
else:
|
||||
var active_events: Array[String] = []
|
||||
if is_snowing:
|
||||
active_events.append("Snow")
|
||||
if is_raining:
|
||||
active_events.append("Rain")
|
||||
if is_windy:
|
||||
active_events.append("Wind")
|
||||
if not active_events.is_empty():
|
||||
weather_label = "Weather: %s" % " + ".join(active_events)
|
||||
if random_event_remaining > 0.0:
|
||||
weather_label += " (%s'')" % ceili(random_event_remaining)
|
||||
UIEvents.weather_event_changed.emit(weather_label)
|
||||
|
||||
#disable snow and set default values and shader
|
||||
func init_snow(value: float = 0.0):
|
||||
@@ -699,6 +821,13 @@ func init_snow(value: float = 0.0):
|
||||
RenderingServer.global_shader_parameter_set("global_snow_color", environment_config.snow_color)
|
||||
RenderingServer.global_shader_parameter_set("global_snow_accumulation_speed", environment_config.snow_accumulation_speed)
|
||||
RenderingServer.global_shader_parameter_set("global_snow_melt_speed", environment_config.snow_melt_speed)
|
||||
RenderingServer.global_shader_parameter_set("global_snow_max_accumulation", environment_config.snow_max_accumulation)
|
||||
RenderingServer.global_shader_parameter_set("global_snow_cap_enabled", environment_config.show_snow_accumulation_volume)
|
||||
RenderingServer.global_shader_parameter_set("global_snow_cap_height", environment_config.snow_cap_height)
|
||||
RenderingServer.global_shader_parameter_set("global_snow_cap_flatness_start", environment_config.snow_cap_flatness_start)
|
||||
RenderingServer.global_shader_parameter_set("global_snow_cap_flatness_end", environment_config.snow_cap_flatness_end)
|
||||
RenderingServer.global_shader_parameter_set("global_snow_cap_noise_scale", environment_config.snow_cap_noise_scale)
|
||||
RenderingServer.global_shader_parameter_set("global_snow_cap_noise_strength", environment_config.snow_cap_noise_strength)
|
||||
RenderingServer.global_shader_parameter_set("global_snow_start_time", -1.0)
|
||||
RenderingServer.global_shader_parameter_set("global_snow_melt_time", -1.0)
|
||||
|
||||
@@ -728,6 +857,10 @@ func toggle_blur(value: bool) -> void:
|
||||
|
||||
ApplyPostProcessBlurConfig()
|
||||
|
||||
func toggle_fog(value: bool) -> void:
|
||||
if fog:
|
||||
fog.visible = value
|
||||
|
||||
func toggle_shadows(value: bool) -> void:
|
||||
if environment_shadows:
|
||||
environment_shadows.visible = value
|
||||
|
||||
@@ -6,8 +6,16 @@ global uniform float global_snow_start_time = -1.0;
|
||||
global uniform float global_snow_accumulation_speed = 0.1;
|
||||
global uniform float global_snow_melt_time = -1.0;
|
||||
global uniform float global_snow_melt_speed = 0.1;
|
||||
global uniform float global_snow_amount = 0.0;
|
||||
global uniform float global_snow_threshold = 0.5;
|
||||
global uniform vec4 global_snow_color = vec4(0.92, 0.96, 1.0, 1.0);
|
||||
global uniform float global_snow_max_accumulation = 0.72;
|
||||
global uniform bool global_snow_cap_enabled = true;
|
||||
global uniform float global_snow_cap_height = 0.06;
|
||||
global uniform float global_snow_cap_flatness_start = 0.72;
|
||||
global uniform float global_snow_cap_flatness_end = 0.96;
|
||||
global uniform float global_snow_cap_noise_scale = 0.22;
|
||||
global uniform float global_snow_cap_noise_strength = 0.18;
|
||||
uniform float snow_noise_scale : hint_range(0.01, 1.0) = 0.15;
|
||||
uniform float snow_edge_softness : hint_range(0.01, 0.5) = 0.2;
|
||||
uniform float snow_roughness_variation : hint_range(0.0, 0.3) = 0.15;
|
||||
@@ -29,6 +37,58 @@ uniform float puddle_threshold : hint_range(0.0, 0.8) = 0.45;
|
||||
|
||||
uniform sampler2D noise_texture : filter_linear_mipmap, repeat_enable;
|
||||
|
||||
varying float v_snow_amount;
|
||||
varying float v_snow_cap_mask;
|
||||
|
||||
float hash(vec2 p) {
|
||||
return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123);
|
||||
}
|
||||
|
||||
float value_noise(vec2 p) {
|
||||
vec2 i = floor(p);
|
||||
vec2 f = fract(p);
|
||||
vec2 u = f * f * (3.0 - 2.0 * f);
|
||||
|
||||
float a = hash(i);
|
||||
float b = hash(i + vec2(1.0, 0.0));
|
||||
float c = hash(i + vec2(0.0, 1.0));
|
||||
float d = hash(i + vec2(1.0, 1.0));
|
||||
|
||||
return mix(mix(a, b, u.x), mix(c, d, u.x), u.y);
|
||||
}
|
||||
|
||||
float fbm(vec2 p) {
|
||||
float value = 0.0;
|
||||
float amplitude = 0.5;
|
||||
float frequency = 1.0;
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
value += value_noise(p * frequency) * amplitude;
|
||||
frequency *= 2.0;
|
||||
amplitude *= 0.5;
|
||||
}
|
||||
|
||||
return clamp(value, 0.0, 1.0);
|
||||
}
|
||||
|
||||
float get_snow_progress() {
|
||||
bool has_snow_timeline = global_snow_start_time >= 0.0 || global_snow_melt_time >= 0.0;
|
||||
float snow_progress = clamp(global_snow_amount, 0.0, 1.0);
|
||||
|
||||
if (has_snow_timeline) {
|
||||
snow_progress = 0.0;
|
||||
if (global_snow_start_time >= 0.0) {
|
||||
snow_progress = clamp((TIME - global_snow_start_time) * global_snow_accumulation_speed, 0.0, 1.0);
|
||||
}
|
||||
if (global_snow_melt_time >= 0.0) {
|
||||
float melt = clamp((TIME - global_snow_melt_time) * global_snow_melt_speed, 0.0, 1.0);
|
||||
snow_progress *= (1.0 - melt);
|
||||
}
|
||||
}
|
||||
|
||||
return snow_progress;
|
||||
}
|
||||
|
||||
float ripple_ring(vec2 uv, float time_offset) {
|
||||
float d = length(uv);
|
||||
float ring = sin(d * 30.0 - TIME * ripple_speed + time_offset) * 0.5 + 0.5;
|
||||
@@ -36,6 +96,27 @@ float ripple_ring(vec2 uv, float time_offset) {
|
||||
return ring * fade;
|
||||
}
|
||||
|
||||
void vertex() {
|
||||
float snow_progress = get_snow_progress();
|
||||
float snow_accumulation = snow_progress * global_snow_max_accumulation;
|
||||
vec3 world_pos = (MODEL_MATRIX * vec4(VERTEX, 1.0)).xyz;
|
||||
vec3 world_normal = normalize((MODEL_MATRIX * vec4(NORMAL, 0.0)).xyz);
|
||||
|
||||
float flat_surface = smoothstep(
|
||||
max(global_snow_threshold, global_snow_cap_flatness_start),
|
||||
global_snow_cap_flatness_end,
|
||||
world_normal.y
|
||||
);
|
||||
float accumulation_growth = smoothstep(0.08, 0.65, snow_progress);
|
||||
float cap_noise = fbm(world_pos.xz * global_snow_cap_noise_scale + vec2(11.3, 4.7));
|
||||
float cap_variation = mix(1.0 - global_snow_cap_noise_strength, 1.0 + global_snow_cap_noise_strength, cap_noise);
|
||||
|
||||
v_snow_amount = snow_progress;
|
||||
v_snow_cap_mask = flat_surface * accumulation_growth * cap_variation * (global_snow_cap_enabled ? 1.0 : 0.0);
|
||||
|
||||
VERTEX += NORMAL * (global_snow_cap_height * snow_accumulation * v_snow_cap_mask);
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
vec3 world_pos = (INV_VIEW_MATRIX * vec4(VERTEX, 1.0)).xyz;
|
||||
vec3 world_normal = normalize((INV_VIEW_MATRIX * vec4(NORMAL, 0.0)).xyz);
|
||||
@@ -43,25 +124,23 @@ void fragment() {
|
||||
float noise_val = texture(noise_texture, world_pos.xz * snow_noise_scale).r;
|
||||
|
||||
//Snow
|
||||
float snow_amount = 0.0;
|
||||
if (global_snow_start_time >= 0.0) {
|
||||
snow_amount = clamp((TIME - global_snow_start_time) * global_snow_accumulation_speed, 0.0, 1.0);
|
||||
}
|
||||
if (global_snow_melt_time >= 0.0) {
|
||||
float melt = clamp((TIME - global_snow_melt_time) * global_snow_melt_speed, 0.0, 1.0);
|
||||
snow_amount *= (1.0 - melt);
|
||||
}
|
||||
float snow_progress = v_snow_amount;
|
||||
float snow_accumulation = snow_progress * global_snow_max_accumulation;
|
||||
|
||||
float snow_edge = smoothstep(
|
||||
global_snow_threshold - snow_edge_softness,
|
||||
global_snow_threshold + snow_edge_softness,
|
||||
facing_up + (noise_val - 0.5) * 0.4
|
||||
);
|
||||
float snow_coverage = smoothstep(0.0, 0.6, noise_val + snow_amount - 0.4);
|
||||
float snow_factor = snow_edge * snow_coverage * snow_amount;
|
||||
float flat_accumulation = smoothstep(0.0, 0.35, v_snow_cap_mask) * snow_accumulation;
|
||||
float snow_coverage = smoothstep(0.0, 0.6, noise_val + snow_progress - 0.4 + flat_accumulation * 0.25);
|
||||
float snow_factor = max(snow_edge * snow_coverage * snow_progress, flat_accumulation);
|
||||
float snow_opacity = smoothstep(0.04, 0.28, snow_factor);
|
||||
snow_opacity = max(snow_opacity, flat_accumulation * 0.9);
|
||||
|
||||
float shade = mix(-snow_color_variation, snow_color_variation, noise_val);
|
||||
vec3 snow_albedo = clamp(global_snow_color.rgb + vec3(shade), 0.0, 1.0);
|
||||
snow_albedo = mix(snow_albedo, vec3(1.0), 0.18 + snow_opacity * 0.12);
|
||||
float snow_rough = mix(0.15 - snow_roughness_variation, 0.15 + snow_roughness_variation, noise_val);
|
||||
|
||||
//Rain
|
||||
@@ -173,7 +252,7 @@ void fragment() {
|
||||
ALBEDO = snow_albedo;
|
||||
ROUGHNESS = snow_rough;
|
||||
METALLIC = 0.0;
|
||||
ALPHA = snow_factor;
|
||||
ALPHA = snow_opacity;
|
||||
} else {
|
||||
ALBEDO = rain_albedo;
|
||||
ROUGHNESS = rain_rough;
|
||||
|
||||
@@ -5,3 +5,17 @@
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_weather")
|
||||
shader_parameter/snow_noise_scale = 0.15
|
||||
shader_parameter/snow_edge_softness = 0.2
|
||||
shader_parameter/snow_roughness_variation = 0.15
|
||||
shader_parameter/snow_color_variation = 0.05
|
||||
shader_parameter/ripple_scale = 1.5
|
||||
shader_parameter/ripple_speed = 2.0
|
||||
shader_parameter/ripple_layers = 3.0
|
||||
shader_parameter/streak_scale = 2.0
|
||||
shader_parameter/streak_speed = 0.8
|
||||
shader_parameter/wetness_darkening = 0.25
|
||||
shader_parameter/wet_roughness = 0.05
|
||||
shader_parameter/rain_normal_strength = 0.4
|
||||
shader_parameter/puddle_noise_scale = 0.08
|
||||
shader_parameter/puddle_threshold = 0.45
|
||||
|
||||
@@ -7,16 +7,13 @@ global uniform float global_snow_accumulation_speed;
|
||||
global uniform float global_snow_melt_time;
|
||||
global uniform float global_snow_melt_speed;
|
||||
global uniform vec4 global_snow_color;
|
||||
|
||||
// Rain globals
|
||||
global uniform float global_rain_intensity;
|
||||
global uniform float global_rain_puddle_amount;
|
||||
|
||||
// Snow parameters
|
||||
uniform float snow_edge_softness : hint_range(0.01, 0.5) = 0.15;
|
||||
uniform float snow_color_variation : hint_range(0.0, 0.15) = 0.05;
|
||||
|
||||
|
||||
// Rain wetness parameters
|
||||
global uniform float global_rain_intensity;
|
||||
global uniform float global_rain_puddle_amount;
|
||||
uniform float ripple_scale : hint_range(0.1, 5.0) = 1.5;
|
||||
uniform float ripple_speed : hint_range(0.5, 5.0) = 2.0;
|
||||
uniform float ripple_layers : hint_range(1.0, 4.0) = 3.0;
|
||||
|
||||
@@ -1,7 +1,21 @@
|
||||
[gd_resource type="ShaderMaterial" format=3]
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://b34bnqbrtxktw"]
|
||||
|
||||
[ext_resource type="Shader" path="res://core/daynight/weather_plain_shader.gdshader" id="1_weather_plain"]
|
||||
[ext_resource type="Shader" uid="uid://do8puw7u8dvry" path="res://core/daynight/weather_plain_shader.gdshader" id="1_weather_plain"]
|
||||
[ext_resource type="Texture2D" uid="uid://bpswbjh4jj1ou" path="res://core/daynight/noise.tres" id="2_noise"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_weather_plain")
|
||||
shader_parameter/snow_edge_softness = 0.15
|
||||
shader_parameter/snow_color_variation = 0.05
|
||||
shader_parameter/ripple_scale = 1.5
|
||||
shader_parameter/ripple_speed = 2.0
|
||||
shader_parameter/ripple_layers = 3.0
|
||||
shader_parameter/streak_scale = 2.0
|
||||
shader_parameter/streak_speed = 0.8
|
||||
shader_parameter/wetness_darkening = 0.25
|
||||
shader_parameter/wet_roughness = 0.05
|
||||
shader_parameter/rain_normal_strength = 0.4
|
||||
shader_parameter/puddle_noise_scale = 0.08
|
||||
shader_parameter/puddle_threshold = 0.45
|
||||
shader_parameter/noise_texture = ExtResource("2_noise")
|
||||
|
||||
@@ -1,31 +1,26 @@
|
||||
shader_type spatial;
|
||||
render_mode unshaded;
|
||||
|
||||
global uniform float global_wind_speed = 1.0; //0.0 = calm, 1.0 = normal, 2.0+ = strong
|
||||
global uniform vec2 global_wind_direction = vec2(1.0, 0.0);
|
||||
|
||||
uniform float wave_frequency = 1.0;
|
||||
uniform float base_amplitude = 0.5;
|
||||
uniform float secondary_ratio = 0.6;
|
||||
uniform float time_scale_base = 3.0;
|
||||
// --- PARAMETRI ---
|
||||
uniform float time_scale = 3.0;
|
||||
uniform float wave_amplitude = 0.5; // Quanto curva a destra/sinistra
|
||||
uniform float wave_frequency = 1.0; // Ogni quanto fa la curva
|
||||
|
||||
void vertex() {
|
||||
float random_seed_offset = INSTANCE_CUSTOM.x * 100.0;
|
||||
float scaled_time = (TIME + random_seed_offset) * (time_scale_base * global_wind_speed);
|
||||
float amplitude = base_amplitude * global_wind_speed;
|
||||
|
||||
vec2 wind_dir = normalize(global_wind_direction);
|
||||
vec2 wind_perp = vec2(-wind_dir.y, wind_dir.x); //90° perpendicular
|
||||
|
||||
float primary_sway = sin(VERTEX.y * wave_frequency + scaled_time) * amplitude;
|
||||
float secondary_sway = sin(VERTEX.y * wave_frequency * 1.3 + scaled_time * 0.7 + 1.57)
|
||||
* (amplitude * secondary_ratio);
|
||||
|
||||
VERTEX.x += primary_sway * wind_dir.x + secondary_sway * wind_perp.x;
|
||||
VERTEX.z += primary_sway * wind_dir.y + secondary_sway * wind_perp.y;
|
||||
// Creiamo un offset unico per ogni particella in modo che non si muovano tutte uguali
|
||||
float random_seed_offset = INSTANCE_CUSTOM.x * 100.0;
|
||||
float scaled_time = (TIME + random_seed_offset) * time_scale;
|
||||
|
||||
// Applichiamo SOLO la curva morbida all'asse X (o Z, a seconda di come orienti la scena)
|
||||
// Usiamo VERTEX.y per far sì che la curva si propaghi lungo tutta la lunghezza della scia
|
||||
VERTEX.x += sin(VERTEX.y * wave_frequency + scaled_time) * wave_amplitude;
|
||||
|
||||
// Niente più "VERTEX.y += t;", quindi niente più teletrasporti!
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
// Il colore e l'alpha (per lo spawn dolce e la morte lenta)
|
||||
// vengono comandati dalla Color Ramp del GPUParticles3D!
|
||||
ALBEDO = COLOR.rgb;
|
||||
ALPHA = COLOR.a;
|
||||
}
|
||||
@@ -81,8 +81,9 @@ extends Resource
|
||||
#Post-process effect toggles (initial values)
|
||||
@export_group("Post Process")
|
||||
@export var enable_dust: bool = false #Floating dust particles overlay
|
||||
@export var enable_blur: bool = false #Screen blur effect
|
||||
@export var enable_blur: bool = true #Screen blur effect
|
||||
@export var enable_environment_shadows: bool = true #Cloud shadow projection on terrain
|
||||
@export var enable_fog: bool = false #Enable fog around the train
|
||||
@export var blur_amount: float = 0.6
|
||||
|
||||
@export_group("Dust")
|
||||
@@ -100,7 +101,7 @@ extends Resource
|
||||
|
||||
#Rain weather settings
|
||||
@export_group("Rain")
|
||||
@export var rain_mode_color: Color = Color(0.5, 0.6, 0.7, 1.0) #Sky/light darkening color during rain
|
||||
@export var rain_mode_color: Color = Color(0.85, 0.89, 0.93, 1.0) #Sky/light darkening color during rain
|
||||
@export var rain_fade_time: float = 5.0 #Seconds for rain particles to fade in/out
|
||||
@export var rain_audio_volume_db: float = -10.0 #Target rain loop volume in decibels
|
||||
@export var puddle_form_time: float = 15.0 #Seconds for puddles to fully form
|
||||
@@ -109,7 +110,7 @@ extends Resource
|
||||
#Storm settings (applied on top of rain when storm is active)
|
||||
@export_group("Storm")
|
||||
@export var storm_rain_intensity_multiplier: float = 1.5 #Rain intensity target during storm (1.0 = normal rain)
|
||||
@export var storm_mode_color: Color = Color(0.476, 0.531, 0.639, 1.0) #Additional sky darkening color during storm
|
||||
@export var storm_mode_color: Color = Color(0.78, 0.83, 0.89, 1.0) #Additional sky darkening color during storm
|
||||
|
||||
#Lightning and thunder configuration
|
||||
@export_group("Lightning and Thunders")
|
||||
@@ -133,15 +134,27 @@ extends Resource
|
||||
@export var godray_spawn_height: float = 5.0 #Y world position where god rays spawn
|
||||
@export var godray_scale: Vector3 = Vector3(2.0, 6.0, 2.0) #Scale of the god ray mesh
|
||||
|
||||
#Train start settings
|
||||
@export_group("Train Start")
|
||||
@export var train_start_from_random_position: bool = false #When enabled the train starts from a random offset on the rail curve instead of a stop
|
||||
@export_range(0, 64, 1, "or_greater") var train_start_stop_index: int = 1 #Stop index used for the train start when random start is disabled
|
||||
|
||||
#Snow settings
|
||||
@export_group("Snow")
|
||||
@export var snow_amount: float = 0.0 #Initial snow coverage amount (0.0 = none, 1.0 = full)
|
||||
@export var snow_transaction_time: float = 10.0 #Seconds for snow shader to fully transition in/out
|
||||
@export var snow_fade_time: float = 5.0 #Seconds for snow particles to fade in/out
|
||||
@export var snow_threshold: float = 0.4 #Normal Y threshold for snow accumulation on surfaces
|
||||
@export var snow_accumulation_speed: float = 0.02 #Accumulation speed: 0.1 -> 10s, 0.05 -> 20s, 0.02 -> 50s, 0.2 -> 5s
|
||||
@export var snow_accumulation_speed: float = 0.014 #Accumulation speed: 0.1 -> 10s, 0.05 -> 20s, 0.02 -> 50s, 0.012 -> ~83s
|
||||
@export var snow_melt_speed: float = 0.05 #Speed at which accumulated snow melts away
|
||||
@export var show_snow_accumulation_volume: bool = true #Enables vertex snow buildup; when false snow only changes surface color
|
||||
@export var snow_max_accumulation: float = 0.25 #Maximum accumulated snow factor applied to coverage and thickness
|
||||
@export var snow_color: Color = Color(0.9, 0.95, 1.0) #Albedo color of snow on surfaces
|
||||
@export var snow_cap_height: float = 0.03 #Maximum snow thickness extruded on flat surfaces
|
||||
@export var snow_cap_flatness_start: float = 0.85 #Surface normal Y where cap buildup starts
|
||||
@export var snow_cap_flatness_end: float = 0.96 #Surface normal Y where cap buildup reaches full effect
|
||||
@export var snow_cap_noise_scale: float = 0.22 #Noise scale used to vary the snow cap silhouette
|
||||
@export var snow_cap_noise_strength: float = 0.12 #How much the cap noise changes the accumulated thickness
|
||||
@export var snow_mode_color: Color = Color(0.556, 0.62, 0.683, 1.0) #Sky/light darkening color during snow
|
||||
|
||||
#Wind settings
|
||||
@@ -152,7 +165,7 @@ extends Resource
|
||||
@export var wind_direction: Vector2 = Vector2(0.5, 0.4) #Global wind direction (XZ)
|
||||
@export var wind_speed: float = 0.2 #Global wind animation speed
|
||||
@export var wind_scale: float = 0.025 #Global wind noise scale
|
||||
@export var wind_strength: float = 0.6 #Global wind displacement strength
|
||||
@export var wind_strength: float = 0.3 #Global wind displacement strength
|
||||
@export var cloud_scale: float = 0.5 #Cloud noise scale in sky shader
|
||||
@export var cloud_speed: float = 0.05 #Cloud movement speed in sky shader
|
||||
@export_range(0.01, 1.0) var cloud_scale_envshadows_rate: float = 0.01 #Cloud scale multiplier for environment shadows
|
||||
@@ -164,3 +177,14 @@ extends Resource
|
||||
@export var fireflies_amount: int = 60 #Number of firefly particles
|
||||
@export var fireflies_spawn_ray: float = 20.0 #Horizontal spawn radius
|
||||
@export var fireflies_spawn_height: float = 3.0 #Vertical spawn range
|
||||
|
||||
#Water settings
|
||||
@export_group("Water")
|
||||
@export var water_color_morning: Color = Color(0.285, 0.534, 0.487, 1.0) #Tint for morning
|
||||
@export var water_color_afternoon: Color = Color(0.889, 0.733, 0.205, 1.0) #Tint for afternoon (sunset)
|
||||
@export var water_color_night: Color = Color(0.728, 0.54, 0.986, 1.0); #Tint for night
|
||||
@export var water_darkening_rain: float = 0.7 #Percentage of darkening when is rainy
|
||||
|
||||
#Random events
|
||||
@export_group("Random Events")
|
||||
@export var random_event_duration: float = 30.0 #Duration time for random event
|
||||
|
||||
@@ -10,6 +10,10 @@ signal toggle_wind(value: bool)
|
||||
@warning_ignore("unused_signal")
|
||||
signal wind_change(value: float)
|
||||
@warning_ignore("unused_signal")
|
||||
signal trigger_random_weather(duration: float)
|
||||
@warning_ignore("unused_signal")
|
||||
signal weather_event_changed(description: String)
|
||||
@warning_ignore("unused_signal")
|
||||
signal toggle_fireflies(value: bool)
|
||||
@warning_ignore("unused_signal")
|
||||
signal toggle_storm(value: bool)
|
||||
@@ -23,9 +27,19 @@ signal toggle_dust(value: bool)
|
||||
signal toggle_blur(value: bool)
|
||||
@warning_ignore("unused_signal")
|
||||
signal toggle_shadows(value: bool)
|
||||
@warning_ignore("unused_signal")
|
||||
signal toggle_fog(value: bool)
|
||||
|
||||
#railway signals
|
||||
@warning_ignore("unused_signal")
|
||||
signal update_rail_chunks()
|
||||
|
||||
#day cycle signals
|
||||
@warning_ignore("unused_signal")
|
||||
signal toggle_pause_daytime(value: bool)
|
||||
@warning_ignore("unused_signal")
|
||||
signal day_time_changed(value: float, time_string: String)
|
||||
@warning_ignore("unused_signal")
|
||||
signal time_option_item_changed(index: int)
|
||||
@warning_ignore("unused_signal")
|
||||
signal day_time_option_changed(index: int)
|
||||
|
||||
@@ -8,12 +8,13 @@
|
||||
[ext_resource type="Script" uid="uid://wv6kcqkibium" path="res://core/biome_generator/biome.gd" id="5_2wjys"]
|
||||
[ext_resource type="PackedScene" uid="uid://cv5xmnow451kl" path="res://core/camera.tscn" id="5_8tojn"]
|
||||
[ext_resource type="PackedScene" uid="uid://crlk31ecl480n" path="res://tgcc/chunk/countryside/scene/chunk_country_corner_03.tscn" id="6_21usy"]
|
||||
[ext_resource type="Script" uid="uid://dboerd4a6dwj7" path="res://docs/museums/biome_generator/rails.gd" id="6_pypsn"]
|
||||
[ext_resource type="Script" uid="uid://dboerd4a6dwj7" path="res://core/biome_generator/rails.gd" id="6_pypsn"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvk3bytqn3m5s" path="res://tgcc/train/main_train.tscn" id="6_wjpfq"]
|
||||
[ext_resource type="PackedScene" uid="uid://brpp7fe5noq8v" path="res://tgcc/chunk/countryside/scene/chunk_country_cross_3_01.tscn" id="7_qe84w"]
|
||||
[ext_resource type="PackedScene" uid="uid://0kgjaqijaqku" path="res://docs/museums/biome_generator/rails.tscn" id="8_mb5yv"]
|
||||
[ext_resource type="PackedScene" uid="uid://dn1btv0e0ses7" path="res://core/fireworks.tscn" id="8_xtogr"]
|
||||
[ext_resource type="PackedScene" uid="uid://cu2chsjh8wuvp" path="res://tgcc/chunk/countryside/scene/chunk_country_straight_02.tscn" id="9_sw7bt"]
|
||||
[ext_resource type="PackedScene" uid="uid://c73yk6858dmwn" path="res://tgcc/chunk/countryside/scene/chunk_country_cross_4_01.tscn" id="10_c7mkj"]
|
||||
[ext_resource type="PackedScene" uid="uid://cmuvmmp7xam4o" path="res://core/daynight/environment_management.tscn" id="16_c7mkj"]
|
||||
[ext_resource type="AudioStream" uid="uid://dvabvoqyya0g5" path="res://core/daynight/sounds/thunder_3.mp3" id="17_sw7bt"]
|
||||
[ext_resource type="AudioStream" uid="uid://creenugno7hm" path="res://core/daynight/sounds/thunder_4.mp3" id="18_2l6dd"]
|
||||
@@ -100,7 +101,7 @@ compositor_effects = Array[CompositorEffect]([SubResource("CompositorEffect_q52t
|
||||
[sub_resource type="Resource" id="Resource_3qrd0"]
|
||||
script = ExtResource("5_2wjys")
|
||||
name = "countryside"
|
||||
available_chunks = Array[PackedScene]([ExtResource("6_21usy"), ExtResource("7_qe84w"), ExtResource("9_sw7bt")])
|
||||
available_chunks = Array[PackedScene]([ExtResource("6_21usy"), ExtResource("7_qe84w"), ExtResource("9_sw7bt"), ExtResource("10_c7mkj")])
|
||||
metadata/_custom_type_script = "uid://wv6kcqkibium"
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pypsn"]
|
||||
@@ -178,10 +179,10 @@ script = ExtResource("23_27ile")
|
||||
|
||||
[node name="Snow" type="CheckButton" parent="Control" unique_id=454394427]
|
||||
layout_mode = 0
|
||||
offset_left = 21.0
|
||||
offset_top = 13.0
|
||||
offset_right = 109.0
|
||||
offset_bottom = 44.0
|
||||
offset_left = 8.0
|
||||
offset_top = 173.0
|
||||
offset_right = 98.0
|
||||
offset_bottom = 204.0
|
||||
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
|
||||
@@ -192,10 +193,10 @@ text = "Snow"
|
||||
|
||||
[node name="Rain" type="CheckButton" parent="Control" unique_id=837805524]
|
||||
layout_mode = 0
|
||||
offset_left = 21.0
|
||||
offset_top = 41.0
|
||||
offset_right = 109.0
|
||||
offset_bottom = 72.0
|
||||
offset_left = 8.0
|
||||
offset_top = 201.0
|
||||
offset_right = 96.0
|
||||
offset_bottom = 232.0
|
||||
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
|
||||
@@ -206,10 +207,10 @@ text = "Rain"
|
||||
|
||||
[node name="Wind" type="CheckButton" parent="Control" unique_id=1013004982]
|
||||
layout_mode = 0
|
||||
offset_left = 21.0
|
||||
offset_top = 91.0
|
||||
offset_right = 109.0
|
||||
offset_bottom = 122.0
|
||||
offset_left = 8.0
|
||||
offset_top = 231.0
|
||||
offset_right = 96.0
|
||||
offset_bottom = 262.0
|
||||
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
|
||||
@@ -220,19 +221,19 @@ text = "Wind"
|
||||
|
||||
[node name="WindSlider" type="HSlider" parent="Control" unique_id=28050098]
|
||||
layout_mode = 0
|
||||
offset_left = 26.0
|
||||
offset_top = 124.0
|
||||
offset_right = 205.0
|
||||
offset_bottom = 140.0
|
||||
offset_left = 103.0
|
||||
offset_top = 238.0
|
||||
offset_right = 187.0
|
||||
offset_bottom = 254.0
|
||||
max_value = 1.0
|
||||
step = 0.01
|
||||
|
||||
[node name="Fireflies" type="CheckButton" parent="Control" unique_id=1046228444]
|
||||
layout_mode = 0
|
||||
offset_left = 21.0
|
||||
offset_top = 169.0
|
||||
offset_right = 130.0
|
||||
offset_bottom = 200.0
|
||||
offset_left = 8.0
|
||||
offset_top = 259.0
|
||||
offset_right = 117.0
|
||||
offset_bottom = 290.0
|
||||
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
|
||||
@@ -243,10 +244,10 @@ text = "Fireflies"
|
||||
|
||||
[node name="Storm" type="CheckButton" parent="Control" unique_id=1792625744]
|
||||
layout_mode = 0
|
||||
offset_left = 21.0
|
||||
offset_top = 66.0
|
||||
offset_right = 117.0
|
||||
offset_bottom = 97.0
|
||||
offset_left = 98.0
|
||||
offset_top = 201.0
|
||||
offset_right = 194.0
|
||||
offset_bottom = 232.0
|
||||
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
|
||||
@@ -257,73 +258,88 @@ text = "Storm"
|
||||
|
||||
[node name="DayTimeLabel" type="Label" parent="Control" unique_id=1124935856]
|
||||
layout_mode = 0
|
||||
offset_left = 26.0
|
||||
offset_top = 150.0
|
||||
offset_right = 360.0
|
||||
offset_bottom = 173.0
|
||||
offset_left = 13.0
|
||||
offset_top = 15.0
|
||||
offset_right = 347.0
|
||||
offset_bottom = 38.0
|
||||
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
|
||||
text = "Time 00:00"
|
||||
|
||||
[node name="DayTimeSlider" type="HSlider" parent="Control" unique_id=1865778345]
|
||||
layout_mode = 0
|
||||
offset_left = 26.0
|
||||
offset_top = 228.0
|
||||
offset_right = 205.0
|
||||
offset_bottom = 244.0
|
||||
offset_left = 13.0
|
||||
offset_top = 40.0
|
||||
offset_right = 138.0
|
||||
offset_bottom = 56.0
|
||||
max_value = 1.0
|
||||
step = 0.01
|
||||
|
||||
[node name="DayTimeOptions" type="OptionButton" parent="Control" unique_id=928646468]
|
||||
layout_mode = 0
|
||||
offset_left = 13.0
|
||||
offset_top = 59.0
|
||||
offset_right = 124.0
|
||||
offset_bottom = 90.0
|
||||
selected = 1
|
||||
item_count = 4
|
||||
popup/item_0/text = "Sunrise"
|
||||
popup/item_0/id = 1
|
||||
popup/item_1/text = "Day"
|
||||
popup/item_1/id = 2
|
||||
popup/item_2/text = "Sunset"
|
||||
popup/item_2/id = 3
|
||||
popup/item_3/text = "Night"
|
||||
popup/item_3/id = 4
|
||||
|
||||
[node name="Dust" type="CheckButton" parent="Control" unique_id=760281365]
|
||||
layout_mode = 0
|
||||
offset_left = 21.0
|
||||
offset_top = 304.0
|
||||
offset_right = 150.0
|
||||
offset_bottom = 335.0
|
||||
offset_left = 8.0
|
||||
offset_top = 91.0
|
||||
offset_right = 137.0
|
||||
offset_bottom = 122.0
|
||||
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
|
||||
button_pressed = true
|
||||
text = "Dust"
|
||||
|
||||
[node name="Blur" type="CheckButton" parent="Control" unique_id=1083708100]
|
||||
layout_mode = 0
|
||||
offset_left = 21.0
|
||||
offset_top = 332.0
|
||||
offset_right = 150.0
|
||||
offset_bottom = 363.0
|
||||
offset_left = 8.0
|
||||
offset_top = 118.0
|
||||
offset_right = 137.0
|
||||
offset_bottom = 149.0
|
||||
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
|
||||
button_pressed = true
|
||||
text = "Blur"
|
||||
|
||||
[node name="Pause" type="CheckButton" parent="Control" unique_id=1587043871]
|
||||
layout_mode = 0
|
||||
offset_left = 21.0
|
||||
offset_top = 243.0
|
||||
offset_right = 158.0
|
||||
offset_bottom = 274.0
|
||||
offset_left = 143.0
|
||||
offset_top = 31.0
|
||||
offset_right = 238.0
|
||||
offset_bottom = 62.0
|
||||
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
|
||||
text = "Pause Time"
|
||||
text = "Pause"
|
||||
|
||||
[node name="Shadows" type="CheckButton" parent="Control" unique_id=283354318]
|
||||
layout_mode = 0
|
||||
offset_left = 21.0
|
||||
offset_top = 356.0
|
||||
offset_right = 150.0
|
||||
offset_bottom = 387.0
|
||||
offset_left = 8.0
|
||||
offset_top = 145.0
|
||||
offset_right = 137.0
|
||||
offset_bottom = 176.0
|
||||
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
|
||||
@@ -333,20 +349,29 @@ theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
|
||||
button_pressed = true
|
||||
text = "Shadows"
|
||||
|
||||
[node name="Guide" type="Label" parent="Control" unique_id=2121474959]
|
||||
[node name="RandomWeather" type="Button" parent="Control" unique_id=1047710802]
|
||||
layout_mode = 0
|
||||
offset_left = 26.0
|
||||
offset_top = 401.0
|
||||
offset_right = 339.0
|
||||
offset_bottom = 606.0
|
||||
text = "R-> Reset isometric camera
|
||||
C-> Toggle cinematic mode
|
||||
Z-> soft zoom
|
||||
Manual controls (1-5)
|
||||
T -> go to next stop
|
||||
F -> fireworks
|
||||
BACKSPACE -> stop train
|
||||
ARROW UP/DOWN -> change train speed"
|
||||
offset_left = 12.0
|
||||
offset_top = 289.0
|
||||
offset_right = 157.0
|
||||
offset_bottom = 320.0
|
||||
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
|
||||
text = "Random Weather (10\")"
|
||||
|
||||
[node name="WeatherEventLabel" type="Label" parent="Control" unique_id=641424797]
|
||||
layout_mode = 0
|
||||
offset_left = 1656.0
|
||||
offset_top = 11.0
|
||||
offset_right = 1908.0
|
||||
offset_bottom = 34.0
|
||||
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
|
||||
text = "Weather: Clear"
|
||||
|
||||
[connection signal="toggled" from="Control/Snow" to="Control" method="_on_snow_toggled"]
|
||||
[connection signal="toggled" from="Control/Rain" to="Control" method="_on_rain_toggled"]
|
||||
@@ -355,7 +380,9 @@ ARROW UP/DOWN -> change train speed"
|
||||
[connection signal="toggled" from="Control/Fireflies" to="Control" method="_on_fireflies_toggled"]
|
||||
[connection signal="toggled" from="Control/Storm" to="Control" method="_on_storm_toggled"]
|
||||
[connection signal="value_changed" from="Control/DayTimeSlider" to="Control" method="_on_day_time_slider_value_changed"]
|
||||
[connection signal="item_selected" from="Control/DayTimeOptions" to="Control" method="_on_option_button_item_selected"]
|
||||
[connection signal="toggled" from="Control/Dust" to="Control" method="_on_dust_toggled"]
|
||||
[connection signal="toggled" from="Control/Blur" to="Control" method="_on_blur_toggled"]
|
||||
[connection signal="toggled" from="Control/Pause" to="Control" method="_on_pause_toggled"]
|
||||
[connection signal="toggled" from="Control/Shadows" to="Control" method="_on_shadows_toggled"]
|
||||
[connection signal="pressed" from="Control/RandomWeather" to="Control" method="_on_random_weather_pressed"]
|
||||
|
||||
445
docs/museums/biome_generator/museum_map.tscn
Normal file
445
docs/museums/biome_generator/museum_map.tscn
Normal file
File diff suppressed because one or more lines are too long
@@ -1,16 +1,22 @@
|
||||
extends Control
|
||||
|
||||
@onready var day_night: EnvironmentManagerRoot = get_node_or_null("../DayNight") as EnvironmentManagerRoot
|
||||
@onready var day_night: EnvironmentManagerRoot = $"../DayNight"
|
||||
@onready var weather_event_label: Label = $WeatherEventLabel
|
||||
@onready var day_time_label: Label = $DayTimeLabel
|
||||
@onready var day_time_slider: HSlider = $DayTimeSlider
|
||||
@onready var wind_slider: HSlider = get_node_or_null("WindSlider") as HSlider
|
||||
@onready var wind_slider: HSlider = $WindSlider
|
||||
@onready var day_time_option: OptionButton = $DayTimeOptions
|
||||
|
||||
var default_random_event_duration: float = 10.0
|
||||
|
||||
func _ready() -> void:
|
||||
UIEvents.day_time_changed.connect(_on_day_time_changed)
|
||||
UIEvents.day_time_option_changed.connect(_on_day_time_option_changed)
|
||||
UIEvents.weather_event_changed.connect(_on_weather_event_changed)
|
||||
if day_night != null and day_night.environment_config != null and wind_slider != null:
|
||||
wind_slider.set_value_no_signal(day_night.environment_config.wind_strength)
|
||||
_sync_day_time_ui()
|
||||
_on_weather_event_changed("Weather: Clear")
|
||||
|
||||
func _on_rain_toggled(toggled_on: bool) -> void:
|
||||
UIEvents.toggle_rain.emit(toggled_on)
|
||||
@@ -24,10 +30,16 @@ func _on_wind_toggled(toggled_on: bool) -> void:
|
||||
func _on_wind_slider_value_changed(value: float) -> void:
|
||||
UIEvents.wind_change.emit(value)
|
||||
|
||||
func _on_random_weather_pressed() -> void:
|
||||
var duration: float = default_random_event_duration
|
||||
if day_night != null and day_night.environment_config != null:
|
||||
duration = day_night.environment_config.random_event_duration
|
||||
UIEvents.trigger_random_weather.emit(duration)
|
||||
|
||||
func _on_fireflies_toggled(toggled_on: bool) -> void:
|
||||
UIEvents.toggle_fireflies.emit(toggled_on)
|
||||
|
||||
func _on_storm_toggled(toggled_on: bool) -> void:
|
||||
func _on_storm_toggled(toggled_on: bool) -> void:
|
||||
UIEvents.toggle_storm.emit(toggled_on)
|
||||
|
||||
func _on_day_time_slider_value_changed(value: float) -> void:
|
||||
@@ -44,6 +56,10 @@ func _on_day_time_changed(value: float, time_string: String) -> void:
|
||||
label_text = "Time %s | nt %.3f | dt %.3f" % [time_string, value, day_night.day_time]
|
||||
day_time_label.text = label_text
|
||||
|
||||
func _on_weather_event_changed(description: String) -> void:
|
||||
if weather_event_label:
|
||||
weather_event_label.text = description
|
||||
|
||||
func _on_fog_overlay_toggled(toggled_on: bool) -> void:
|
||||
UIEvents.toggle_fog_overlay.emit(toggled_on)
|
||||
|
||||
@@ -74,3 +90,20 @@ func _sync_day_time_ui() -> void:
|
||||
day_night_controller.current_time,
|
||||
day_night_controller.get_time_string()
|
||||
)
|
||||
_on_day_time_option_changed(
|
||||
day_night_controller.get_time_option_index(day_night_controller.current_time)
|
||||
)
|
||||
|
||||
func _on_day_time_option_changed(index: int) -> void:
|
||||
if day_time_option == null:
|
||||
return
|
||||
day_time_option.select(index)
|
||||
|
||||
func _on_option_button_item_selected(index: int) -> void:
|
||||
UIEvents.time_option_item_changed.emit(index)
|
||||
|
||||
func _on_fog_toggled(toggled_on: bool) -> void:
|
||||
UIEvents.toggle_fog.emit(toggled_on)
|
||||
|
||||
func _on_update_rails_pressed() -> void:
|
||||
UIEvents.update_rail_chunks.emit()
|
||||
|
||||
File diff suppressed because one or more lines are too long
57
docs/zoos/zoo_countryside.tscn
Normal file
57
docs/zoos/zoo_countryside.tscn
Normal file
@@ -0,0 +1,57 @@
|
||||
[gd_scene format=3 uid="uid://b7rhqxsyv87r1"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://cjv1e8pc6gde1" path="res://tgcc/chunk/countryside/scene/chunk_country_corner_01.tscn" id="1_eexnc"]
|
||||
[ext_resource type="PackedScene" uid="uid://dqoai3665vb0a" path="res://tgcc/chunk/countryside/scene/chunk_country_corner_02.tscn" id="2_jh6kr"]
|
||||
[ext_resource type="PackedScene" uid="uid://crlk31ecl480n" path="res://tgcc/chunk/countryside/scene/chunk_country_corner_03.tscn" id="3_pftht"]
|
||||
[ext_resource type="PackedScene" uid="uid://brpp7fe5noq8v" path="res://tgcc/chunk/countryside/scene/chunk_country_cross_3_01.tscn" id="4_jexg3"]
|
||||
[ext_resource type="PackedScene" uid="uid://qmt8bkiksgj3" path="res://tgcc/chunk/countryside/scene/chunk_country_cross_3_02.tscn" id="5_hieqo"]
|
||||
[ext_resource type="PackedScene" uid="uid://d1tfkhuktwthn" path="res://tgcc/chunk/countryside/scene/chunk_country_cross_3_03.tscn" id="6_re3ik"]
|
||||
[ext_resource type="PackedScene" uid="uid://c73yk6858dmwn" path="res://tgcc/chunk/countryside/scene/chunk_country_cross_4_01.tscn" id="7_v47u4"]
|
||||
[ext_resource type="PackedScene" uid="uid://b8blm6bwintf7" path="res://tgcc/chunk/countryside/scene/chunk_country_empty_01.tscn" id="8_bag0j"]
|
||||
[ext_resource type="PackedScene" uid="uid://b002wu5ltuqi4" path="res://tgcc/chunk/countryside/scene/chunk_country_end_01.tscn" id="9_1vyrv"]
|
||||
[ext_resource type="PackedScene" uid="uid://dtfmvcbninrcu" path="res://tgcc/chunk/countryside/scene/chunk_country_end_02.tscn" id="10_sdnjr"]
|
||||
[ext_resource type="PackedScene" uid="uid://h6xj43vo84uf" path="res://tgcc/chunk/countryside/scene/chunk_country_straight_01.tscn" id="11_arwwt"]
|
||||
[ext_resource type="PackedScene" uid="uid://cu2chsjh8wuvp" path="res://tgcc/chunk/countryside/scene/chunk_country_straight_02.tscn" id="12_l62i2"]
|
||||
[ext_resource type="PackedScene" uid="uid://pxmcy0lhne5d" path="res://tgcc/chunk/countryside/scene/chunk_country_straight_03.tscn" id="13_f3g5s"]
|
||||
|
||||
[node name="ZooCountryside" type="Node3D" unique_id=1742985179]
|
||||
|
||||
[node name="country" type="Node3D" parent="." unique_id=672430814]
|
||||
|
||||
[node name="chunk_country_corner_01" parent="country" unique_id=200417581 instance=ExtResource("1_eexnc")]
|
||||
|
||||
[node name="chunk_country_corner_02" parent="country" unique_id=85657005 instance=ExtResource("2_jh6kr")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 22.5)
|
||||
|
||||
[node name="chunk_country_corner_03" parent="country" unique_id=1046737870 instance=ExtResource("3_pftht")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 45)
|
||||
|
||||
[node name="chunk_country_cross3_01" parent="country" unique_id=319840865 instance=ExtResource("4_jexg3")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22.5, 0, 0)
|
||||
|
||||
[node name="chunk_country_cross3_02" parent="country" unique_id=1492245999 instance=ExtResource("5_hieqo")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22.5, 0, 22.5)
|
||||
|
||||
[node name="chunk_country_cross3_03" parent="country" unique_id=643218732 instance=ExtResource("6_re3ik")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22.5, 0, 45)
|
||||
|
||||
[node name="chunk_country_cross4_01" parent="country" unique_id=680431911 instance=ExtResource("7_v47u4")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -45, 0, 0)
|
||||
|
||||
[node name="chunk_country_empty_01" parent="country" unique_id=385761952 instance=ExtResource("8_bag0j")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -67.5, 0, 0)
|
||||
|
||||
[node name="chunk_country_end_01" parent="country" unique_id=913263516 instance=ExtResource("9_1vyrv")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -90, 0, 0)
|
||||
|
||||
[node name="chunk_country_end_02" parent="country" unique_id=1712924087 instance=ExtResource("10_sdnjr")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -90, 0, 22.5)
|
||||
|
||||
[node name="chunk_country_straight_01" parent="country" unique_id=926368352 instance=ExtResource("11_arwwt")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -113, 0, 0)
|
||||
|
||||
[node name="chunk_country_straight_02" parent="country" unique_id=1847746456 instance=ExtResource("12_l62i2")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -113, 0, 22.5)
|
||||
|
||||
[node name="chunk_country_straight_03" parent="country" unique_id=626808879 instance=ExtResource("13_f3g5s")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -113, 0, 45)
|
||||
36
docs/zoos/zoo_railway.tscn
Normal file
36
docs/zoos/zoo_railway.tscn
Normal file
@@ -0,0 +1,36 @@
|
||||
[gd_scene format=3 uid="uid://bvjiqu363c15p"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://cl2ast2tk7ifw" path="res://tgcc/chunk/railway/scene/chunk_railway_curve.tscn" id="14_ttcft"]
|
||||
[ext_resource type="PackedScene" uid="uid://cewdxvcpqb53f" path="res://tgcc/chunk/railway/scene/chunk_railway_station_doubleside.tscn" id="15_oi62p"]
|
||||
[ext_resource type="PackedScene" uid="uid://bup6gwlxos0w2" path="res://tgcc/chunk/railway/scene/chunk_railway_station_hero.tscn" id="16_birpm"]
|
||||
[ext_resource type="PackedScene" uid="uid://d3pcshw2bioic" path="res://tgcc/chunk/railway/scene/chunk_railway_station_oneside.tscn" id="17_esgqd"]
|
||||
[ext_resource type="PackedScene" uid="uid://bqxpqhla2kogq" path="res://tgcc/chunk/railway/scene/chunk_railway_straight.tscn" id="18_5ivsh"]
|
||||
[ext_resource type="PackedScene" uid="uid://c3ub6rj0tlt6q" path="res://tgcc/chunk/railway/scene/chunk_railway_straight_2.tscn" id="19_yd4l5"]
|
||||
[ext_resource type="PackedScene" uid="uid://f53hfrjaxkwa" path="res://tgcc/chunk/railway/scene/chunk_railway_straight_bridge.tscn" id="20_h1ucl"]
|
||||
|
||||
[node name="ZooCountryside" type="Node3D" unique_id=1742985179]
|
||||
|
||||
[node name="country" type="Node3D" parent="." unique_id=672430814]
|
||||
|
||||
[node name="railway" type="Node3D" parent="." unique_id=1626602327]
|
||||
|
||||
[node name="chunk_railway_curve" parent="railway" unique_id=238887300 instance=ExtResource("14_ttcft")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14, 0, -20)
|
||||
|
||||
[node name="chunk_railway_station_doubleside" parent="railway" unique_id=1591869611 instance=ExtResource("15_oi62p")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, 46)
|
||||
|
||||
[node name="chunk_railway_station_hero" parent="railway" unique_id=1050909298 instance=ExtResource("16_birpm")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 29, 0, 25)
|
||||
|
||||
[node name="chunk_railway_station_oneside" parent="railway" unique_id=310632835 instance=ExtResource("17_esgqd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, 24)
|
||||
|
||||
[node name="chunk_railway_straight" parent="railway" unique_id=1509029322 instance=ExtResource("18_5ivsh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 29, 0, 0)
|
||||
|
||||
[node name="chunk_railway_straight_2" parent="railway" unique_id=476549215 instance=ExtResource("19_yd4l5")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 29, 0, -23)
|
||||
|
||||
[node name="chunk_railway_straight_bridge" parent="railway" unique_id=1049036234 instance=ExtResource("20_h1ucl")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 29, 0, -46)
|
||||
@@ -11,8 +11,9 @@ config_version=5
|
||||
[application]
|
||||
|
||||
config/name="tgcc"
|
||||
run/main_scene="uid://bjkhawylawqof"
|
||||
run/main_scene="uid://38qpxwbpvd28"
|
||||
config/features=PackedStringArray("4.6", "Forward Plus")
|
||||
run/max_fps=60
|
||||
config/icon="uid://bfar1kk3pgq8f"
|
||||
|
||||
[autoload]
|
||||
@@ -113,3 +114,35 @@ global_wind_fade={
|
||||
"type": "float",
|
||||
"value": 1.2
|
||||
}
|
||||
global_snow_cap_height={
|
||||
"type": "float",
|
||||
"value": 0.0
|
||||
}
|
||||
global_snow_cap_flatness_start={
|
||||
"type": "float",
|
||||
"value": 0.0
|
||||
}
|
||||
global_snow_cap_flatness_end={
|
||||
"type": "float",
|
||||
"value": 0.0
|
||||
}
|
||||
global_snow_cap_noise_scale={
|
||||
"type": "float",
|
||||
"value": 0.0
|
||||
}
|
||||
global_snow_cap_noise_strength={
|
||||
"type": "float",
|
||||
"value": 0.0
|
||||
}
|
||||
global_snow_max_accumulation={
|
||||
"type": "float",
|
||||
"value": 0.0
|
||||
}
|
||||
global_snow_cap_enabled={
|
||||
"type": "bool",
|
||||
"value": false
|
||||
}
|
||||
global_water_color={
|
||||
"type": "color",
|
||||
"value": Color(0, 0, 0, 1)
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
[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"]
|
||||
[ext_resource type="PackedScene" uid="uid://bgb4pfflokl5s" path="res://tgcc/chunk/prop/pylon/pylon.tscn" id="10_r06ll"]
|
||||
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_mm7rq"]
|
||||
size = Vector2(0.5, 0.5)
|
||||
@@ -43,27 +44,30 @@ size = Vector2(1, 1)
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_oviqx"]
|
||||
size = Vector2(1, 1)
|
||||
|
||||
[node name="chunk_country_corner_01" unique_id=200417581 groups=["weather_vegetables_node", "wind_node"] instance=ExtResource("1_0ffx4")]
|
||||
[node name="chunk_country_corner_01" unique_id=200417581 node_paths=PackedStringArray("connection_left", "connection_right") instance=ExtResource("1_0ffx4")]
|
||||
script = ExtResource("2_4d433")
|
||||
south = true
|
||||
west = true
|
||||
have_lamppost = true
|
||||
connection_left = [NodePath("PaloLuce/sx")]
|
||||
connection_right = [NodePath("PaloLuce/dx")]
|
||||
|
||||
[node name="Argini_001" parent="." index="0" unique_id=1474838784]
|
||||
[node name="Argini_001" parent="." index="0" unique_id=439223507]
|
||||
surface_material_override/0 = ExtResource("2_ewqv4")
|
||||
|
||||
[node name="Chunk_005" parent="." index="1" unique_id=844192036]
|
||||
[node name="Chunk_005" parent="." index="1" unique_id=1955568282]
|
||||
surface_material_override/0 = ExtResource("2_ewqv4")
|
||||
|
||||
[node name="Chunk_036" parent="." index="2" unique_id=1584066508]
|
||||
[node name="Chunk_036" parent="." index="2" unique_id=1808067169 groups=["weather_node"]]
|
||||
surface_material_override/0 = ExtResource("3_4d433")
|
||||
|
||||
[node name="Chunk_037" parent="." index="3" unique_id=1100757609]
|
||||
[node name="Chunk_037" parent="." index="3" unique_id=1338393481 groups=["weather_node"]]
|
||||
surface_material_override/0 = ExtResource("3_4d433")
|
||||
|
||||
[node name="Water_003" parent="." index="4" unique_id=1047599796]
|
||||
[node name="Water_003" parent="." index="4" unique_id=1175879696]
|
||||
surface_material_override/0 = ExtResource("4_r06ll")
|
||||
|
||||
[node name="grass" type="Node3D" parent="." index="5" unique_id=924191951]
|
||||
[node name="grass" type="Node3D" parent="." index="5" 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)
|
||||
@@ -94,7 +98,7 @@ material_override = ExtResource("8_vtfy7")
|
||||
cast_shadow = 0
|
||||
multimesh = SubResource("MultiMesh_sddh0")
|
||||
|
||||
[node name="rice" type="Node3D" parent="." index="6" unique_id=318026795]
|
||||
[node name="rice" type="Node3D" parent="." index="6" 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]
|
||||
@@ -906,3 +910,8 @@ transform = Transform3D(-4.371139e-08, -1, 4.371139e-08, 0, -4.371139e-08, -1, 1
|
||||
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")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.4629593, 0, -1.4456635)
|
||||
|
||||
[editable path="PaloLuce"]
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
[ext_resource type="Material" uid="uid://jygb1hcokks5" path="res://tgcc/chunk/prop/grass/grass_bank.tres" id="6_jqpht"]
|
||||
[ext_resource type="Material" uid="uid://bjrb33qwp1p43" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds.tres" id="7_sun4k"]
|
||||
[ext_resource type="Material" uid="uid://0x17mj2v807r" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds2.tres" id="8_xu1ds"]
|
||||
[ext_resource type="PackedScene" uid="uid://c7hdw2g6sbygr" path="res://tgcc/chunk/prop/tree/bambù/bambù.tscn" id="10_x1bjv"]
|
||||
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_wt3n1"]
|
||||
size = Vector2(0.5, 0.5)
|
||||
@@ -46,24 +47,24 @@ size = Vector2(1, 1)
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_h2iw8"]
|
||||
size = Vector2(1, 1)
|
||||
|
||||
[node name="chunk_country_corner_02" unique_id=85657005 groups=["weather_vegetables_node", "wind_node"] instance=ExtResource("1_r82s4")]
|
||||
[node name="chunk_country_corner_02" unique_id=85657005 instance=ExtResource("1_r82s4")]
|
||||
script = ExtResource("2_yfmnf")
|
||||
south = true
|
||||
west = true
|
||||
|
||||
[node name="Argini" parent="." index="0" unique_id=357182272]
|
||||
[node name="Argini" parent="." index="0" unique_id=487109030]
|
||||
surface_material_override/0 = ExtResource("2_02qm6")
|
||||
|
||||
[node name="Sentieri" parent="." index="1" unique_id=1704203551]
|
||||
[node name="Sentieri" parent="." index="1" unique_id=320924856 groups=["weather_node"]]
|
||||
surface_material_override/0 = ExtResource("3_yfmnf")
|
||||
|
||||
[node name="Terreno" parent="." index="2" unique_id=1478648388]
|
||||
[node name="Terreno" parent="." index="2" unique_id=1980435075]
|
||||
surface_material_override/0 = ExtResource("2_02qm6")
|
||||
|
||||
[node name="Water" parent="." index="3" unique_id=415433510]
|
||||
[node name="Water" parent="." index="3" unique_id=424969495]
|
||||
surface_material_override/0 = ExtResource("4_x1bjv")
|
||||
|
||||
[node name="grass" type="Node3D" parent="." index="4" unique_id=543668848]
|
||||
[node name="grass" type="Node3D" parent="." index="4" unique_id=543668848 groups=["weather_vegetables_node", "wind_node"]]
|
||||
|
||||
[node name="grass_plane" type="MeshInstance3D" parent="grass" index="0" unique_id=235424245]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0)
|
||||
@@ -94,7 +95,7 @@ material_override = ExtResource("8_xu1ds")
|
||||
cast_shadow = 0
|
||||
multimesh = SubResource("MultiMesh_6jtv6")
|
||||
|
||||
[node name="rice" type="Node3D" parent="." index="5" unique_id=768586320]
|
||||
[node name="rice" type="Node3D" parent="." index="5" unique_id=768586320 groups=["weather_vegetables_node", "wind_node"]]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -65.14392, 0, 0)
|
||||
|
||||
[node name="rice_plane61" type="MeshInstance3D" parent="rice" index="0" unique_id=137429418]
|
||||
@@ -642,3 +643,315 @@ transform = Transform3D(-4.371139e-08, -1, 4.371139e-08, 0, -4.371139e-08, -1, 1
|
||||
cast_shadow = 0
|
||||
mesh = SubResource("PlaneMesh_h2iw8")
|
||||
surface_material_override/0 = ExtResource("7_sun4k")
|
||||
|
||||
[node name="Bambu" type="Node3D" parent="." index="6" unique_id=1385527421]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 40.689186, 0, 3.7492359)
|
||||
|
||||
[node name="Bambù15" parent="Bambu" index="0" unique_id=514636059 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -38.31033, 0, 3.3824284)
|
||||
|
||||
[node name="Bambù16" parent="Bambu" index="1" unique_id=1480420907 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -38.31033, -0.2565055, 4.251465)
|
||||
|
||||
[node name="Bambù21" parent="Bambu" index="2" unique_id=152072695 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -38.31033, 0, 5.09443)
|
||||
|
||||
[node name="Bambù22" parent="Bambu" index="3" unique_id=779786550 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -38.31033, -0.3562231, 1.5652707)
|
||||
|
||||
[node name="Bambù23" parent="Bambu" index="4" unique_id=497536429 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -38.31033, 0, 2.4082358)
|
||||
|
||||
[node name="Bambù24" parent="Bambu" index="5" unique_id=1708521479 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -37.989388, 4.7683716e-07, 1.7301171)
|
||||
|
||||
[node name="Bambù25" parent="Bambu" index="6" unique_id=1732587367 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -37.989388, 4.7683716e-07, 2.5991538)
|
||||
|
||||
[node name="Bambù41" parent="Bambu" index="7" unique_id=237404877 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -37.989388, -0.2763033, 3.442119)
|
||||
|
||||
[node name="Bambù42" parent="Bambu" index="8" unique_id=1628476712 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -37.989388, 4.7683716e-07, 2.730117)
|
||||
|
||||
[node name="Bambù43" parent="Bambu" index="9" unique_id=1395253232 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -37.989388, 0.26429868, 3.5991528)
|
||||
|
||||
[node name="Bambù44" parent="Bambu" index="10" unique_id=2129495332 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -37.989388, 4.7683716e-07, 4.4421186)
|
||||
|
||||
[node name="Bambù45" parent="Bambu" index="11" unique_id=862005943 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.6353606, 0.043886177, -0.77096754, 0.10135725, 0.99448574, -0.026919715, 0.76553476, -0.09524688, -0.6363053, -37.15841, -0.42294633, 5.3506317)
|
||||
|
||||
[node name="Bambù46" parent="Bambu" index="12" unique_id=1498068833 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.20654383, -0.019007795, -0.9782527, -0.09164066, 0.99579215, 0, 0.97413635, 0.089647725, -0.20741661, -35.881065, 0, 4.905528)
|
||||
|
||||
[node name="Bambù47" parent="Bambu" index="13" unique_id=804073666 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.20615207, -0.022868663, -0.9782527, -0.110254735, 0.99390334, 0, 0.9722886, 0.107857, -0.20741661, -36.7312, 0.32301903, 4.725275)
|
||||
|
||||
[node name="Bambù48" parent="Bambu" index="14" unique_id=637975928 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.88067085, -0.10227825, -0.46255592, 0.10135726, 0.9944858, -0.026919719, 0.46275857, -0.023175985, 0.88618135, -34.30868, -0.42294633, 5.2680883)
|
||||
|
||||
[node name="Bambù49" parent="Bambu" index="15" unique_id=1822564689 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.99579215, 0.09164066, 0, -0.09164066, 0.99579215, 0, 0, 0, 1, -35.009045, 0, 4.1108427)
|
||||
|
||||
[node name="Bambù50" parent="Bambu" index="16" unique_id=23861177 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.99390334, 0.110254735, 0, -0.110254735, 0.99390334, 0, 0, 0, 1, -35.009045, 0.32301903, 4.9798784)
|
||||
|
||||
[node name="Bambù17" parent="Bambu" index="17" unique_id=1649546931 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -36.41784, 0, 1.697335)
|
||||
|
||||
[node name="Bambù18" parent="Bambu" index="18" unique_id=1162519719 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -36.41784, -0.2565055, 2.5663717)
|
||||
|
||||
[node name="Bambù26" parent="Bambu" index="19" unique_id=748140647 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -36.41784, 0, 3.4093368)
|
||||
|
||||
[node name="Bambù27" parent="Bambu" index="20" unique_id=1515557362 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -36.41784, -0.3562231, -0.11982274)
|
||||
|
||||
[node name="Bambù28" parent="Bambu" index="21" unique_id=1206347038 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -36.41784, 0, 0.7231424)
|
||||
|
||||
[node name="Bambù29" parent="Bambu" index="22" unique_id=1895500093 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -36.096897, 4.7683716e-07, 0.04502368)
|
||||
|
||||
[node name="Bambù30" parent="Bambu" index="23" unique_id=1816904361 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -36.096897, 4.7683716e-07, 0.91406035)
|
||||
|
||||
[node name="Bambù51" parent="Bambu" index="24" unique_id=461505508 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -36.096897, -0.2763033, 1.7570255)
|
||||
|
||||
[node name="Bambù52" parent="Bambu" index="25" unique_id=245194971 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -36.096897, 4.7683716e-07, 1.0450237)
|
||||
|
||||
[node name="Bambù53" parent="Bambu" index="26" unique_id=372543990 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -36.096897, 0.26429868, 1.9140594)
|
||||
|
||||
[node name="Bambù54" parent="Bambu" index="27" unique_id=1593384501 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -36.096897, 4.7683716e-07, 2.7570255)
|
||||
|
||||
[node name="Bambù55" parent="Bambu" index="28" unique_id=838851368 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.6353606, 0.043886177, -0.77096754, 0.10135725, 0.99448574, -0.026919715, 0.76553476, -0.09524688, -0.6363053, -35.26592, -0.42294633, 3.6655385)
|
||||
|
||||
[node name="Bambù56" parent="Bambu" index="29" unique_id=1421474514 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.20654383, -0.019007795, -0.9782527, -0.09164066, 0.99579215, 0, 0.97413635, 0.089647725, -0.20741661, -33.988575, 0, 3.220435)
|
||||
|
||||
[node name="Bambù57" parent="Bambu" index="30" unique_id=776582209 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.20615207, -0.022868663, -0.9782527, -0.110254735, 0.99390334, 0, 0.9722886, 0.107857, -0.20741661, -34.83871, 0.32301903, 3.0401819)
|
||||
|
||||
[node name="Bambù58" parent="Bambu" index="31" unique_id=1984571319 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.88067085, -0.10227825, -0.46255592, 0.10135726, 0.9944858, -0.026919719, 0.46275857, -0.023175985, 0.88618135, -32.41619, -0.42294633, 3.5829952)
|
||||
|
||||
[node name="Bambù59" parent="Bambu" index="32" unique_id=541762193 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.99579215, 0.09164066, 0, -0.09164066, 0.99579215, 0, 0, 0, 1, -33.116554, 0, 2.4257495)
|
||||
|
||||
[node name="Bambù60" parent="Bambu" index="33" unique_id=817390138 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.99390334, 0.110254735, 0, -0.110254735, 0.99390334, 0, 0, 0, 1, -33.116554, 0.32301903, 3.2947853)
|
||||
|
||||
[node name="Bambù19" parent="Bambu" index="34" unique_id=456023603 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99893546, -0.04613013, -8.7268496e-08, -0.046085197, 0.9979625, 0.044125043, -0.0020354062, 0.044078067, -0.999026, -34.58353, 0, -0.044016123)
|
||||
|
||||
[node name="Bambù20" parent="Bambu" index="35" unique_id=1236938691 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.9961887, -0.0872253, -8.7422784e-08, -0.0872253, 0.9961887, 0, 8.7089575e-08, 7.625477e-09, -1, -34.58353, -0.2565055, -0.9130528)
|
||||
|
||||
[node name="Bambù31" parent="Bambu" index="36" unique_id=1562537746 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-1, 1.1778938e-09, -8.741484e-08, 0, 0.9999092, 0.013473534, 8.742278e-08, 0.013473534, -0.9999092, -34.58353, 0, -1.7560179)
|
||||
|
||||
[node name="Bambù32" parent="Bambu" index="37" unique_id=1214045855 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.9961887, -0.0872253, -8.7422784e-08, -0.0872253, 0.9961887, 0, 8.7089575e-08, 7.625477e-09, -1, -34.58353, -0.3562231, 1.7731411)
|
||||
|
||||
[node name="Bambù33" parent="Bambu" index="38" unique_id=1403203384 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-1, 1.1778938e-09, -8.741484e-08, 0, 0.9999092, 0.013473534, 8.742278e-08, 0.013473534, -0.9999092, -34.58353, 0, 0.9301765)
|
||||
|
||||
[node name="Bambù34" parent="Bambu" index="39" unique_id=1850769055 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99893546, -0.04613013, -8.7268496e-08, -0.046085197, 0.9979625, 0.044125043, -0.0020354062, 0.044078067, -0.999026, -34.904472, 4.7683716e-07, 1.6082957)
|
||||
|
||||
[node name="Bambù35" parent="Bambu" index="40" unique_id=1905859107 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.9961887, -0.0872253, -8.7422784e-08, -0.0872253, 0.9961887, 0, 8.7089575e-08, 7.625477e-09, -1, -34.904472, 4.7683716e-07, 0.7392585)
|
||||
|
||||
[node name="Bambù61" parent="Bambu" index="41" unique_id=1672384904 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-1, 1.1778938e-09, -8.741484e-08, 0, 0.9999092, 0.013473534, 8.742278e-08, 0.013473534, -0.9999092, -34.904472, -0.2763033, -0.1037066)
|
||||
|
||||
[node name="Bambù62" parent="Bambu" index="42" unique_id=825326507 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99893546, -0.04613013, -8.7268496e-08, -0.046085197, 0.9979625, 0.044125043, -0.0020354062, 0.044078067, -0.999026, -34.904472, 4.7683716e-07, 0.6082952)
|
||||
|
||||
[node name="Bambù63" parent="Bambu" index="43" unique_id=1927852527 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.9961887, -0.0872253, -8.7422784e-08, -0.0872253, 0.9961887, 0, 8.7089575e-08, 7.625477e-09, -1, -34.904472, 0.26429868, -0.26074052)
|
||||
|
||||
[node name="Bambù64" parent="Bambu" index="44" unique_id=1393052564 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-1, 1.1778938e-09, -8.741484e-08, 0, 0.9999092, 0.013473534, 8.742278e-08, 0.013473534, -0.9999092, -34.904472, 4.7683716e-07, -1.1037066)
|
||||
|
||||
[node name="Bambù65" parent="Bambu" index="45" unique_id=218922169 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.63536054, -0.04388616, 0.7709676, 0.10135724, 0.9944857, -0.026919717, -0.76553476, 0.095246874, 0.63630515, -35.73545, -0.42294633, -2.0122197)
|
||||
|
||||
[node name="Bambù66" parent="Bambu" index="46" unique_id=1004212493 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.20654374, 0.019007787, 0.9782527, -0.09164065, 0.99579215, -1.5453742e-09, -0.97413635, -0.08964771, 0.20741652, -37.012794, 0, -1.567116)
|
||||
|
||||
[node name="Bambù67" parent="Bambu" index="47" unique_id=1582717696 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.20615196, 0.022868654, 0.9782527, -0.11025474, 0.99390346, -3.3675118e-09, -0.9722887, -0.10785699, 0.20741653, -36.16266, 0.32301903, -1.386863)
|
||||
|
||||
[node name="Bambù68" parent="Bambu" index="48" unique_id=973884661 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.8806709, 0.10227825, 0.46255583, 0.10135725, 0.99448574, -0.026919715, -0.46275845, 0.023175973, -0.88618135, -37.691097, -0.42294633, -0.72248435)
|
||||
|
||||
[node name="Bambù69" parent="Bambu" index="49" unique_id=499270978 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99579215, -0.09164066, -8.742278e-08, -0.09164066, 0.99579215, 0, 8.7054914e-08, 8.011481e-09, -1, -36.990734, 0, 0.4347608)
|
||||
|
||||
[node name="Bambù70" parent="Bambu" index="50" unique_id=26287663 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99390334, -0.110254735, -8.742278e-08, -0.110254735, 0.99390334, 0, 8.688979e-08, 9.638775e-09, -1, -36.990734, 0.32301903, -0.43427444)
|
||||
|
||||
[node name="Bambù100" parent="Bambu" index="51" unique_id=242552700 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.8806709, 0.10227825, 0.46255583, 0.10135725, 0.99448574, -0.026919715, -0.46275845, 0.023175973, -0.88618135, -34.035736, -0.42294633, 1.3774025)
|
||||
|
||||
[node name="Bambù101" parent="Bambu" index="52" unique_id=1626955951 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99579215, -0.09164066, -8.742278e-08, -0.09164066, 0.99579215, 0, 8.7054914e-08, 8.011481e-09, -1, -33.335373, 0, 2.5346477)
|
||||
|
||||
[node name="Bambù102" parent="Bambu" index="53" unique_id=1549413066 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99390334, -0.110254735, -8.742278e-08, -0.110254735, 0.99390334, 0, 8.688979e-08, 9.638775e-09, -1, -33.335373, 0.32301903, 1.6656125)
|
||||
|
||||
[node name="Bambù103" parent="Bambu" index="54" unique_id=1338645337 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.8806709, 0.10227825, 0.46255583, 0.10135725, 0.99448574, -0.026919715, -0.46275845, 0.023175973, -0.88618135, -34.06166, -0.42294633, 3.632837)
|
||||
|
||||
[node name="Bambù104" parent="Bambu" index="55" unique_id=1131209096 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99579215, -0.09164066, -8.742278e-08, -0.09164066, 0.99579215, 0, 8.7054914e-08, 8.011481e-09, -1, -33.361298, 0, 4.790082)
|
||||
|
||||
[node name="Bambù105" parent="Bambu" index="56" unique_id=1653167272 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99390334, -0.110254735, -8.742278e-08, -0.110254735, 0.99390334, 0, 8.688979e-08, 9.638775e-09, -1, -33.361298, 0.32301903, 3.921047)
|
||||
|
||||
[node name="Bambù106" parent="Bambu" index="57" unique_id=1671720951 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.8806709, 0.10227825, 0.46255583, 0.10135725, 0.99448574, -0.026919715, -0.46275845, 0.023175973, -0.88618135, -32.84321, -0.42294633, 0.65151525)
|
||||
|
||||
[node name="Bambù107" parent="Bambu" index="58" unique_id=221072840 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99579215, -0.09164066, -8.742278e-08, -0.09164066, 0.99579215, 0, 8.7054914e-08, 8.011481e-09, -1, -32.142845, 0, 1.8087604)
|
||||
|
||||
[node name="Bambù108" parent="Bambu" index="59" unique_id=1620976585 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99390334, -0.110254735, -8.742278e-08, -0.110254735, 0.99390334, 0, 8.688979e-08, 9.638775e-09, -1, -32.142845, 0.32301903, 0.93972516)
|
||||
|
||||
[node name="Bambù109" parent="Bambu" index="60" unique_id=836783603 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.8806709, 0.10227825, 0.46255583, 0.10135725, 0.99448574, -0.026919715, -0.46275845, 0.023175973, -0.88618135, -32.869133, -0.42294633, 4.0217037)
|
||||
|
||||
[node name="Bambù110" parent="Bambu" index="61" unique_id=251286294 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99579215, -0.09164066, -8.742278e-08, -0.09164066, 0.99579215, 0, 8.7054914e-08, 8.011481e-09, -1, -32.16877, 0, 5.1789484)
|
||||
|
||||
[node name="Bambù111" parent="Bambu" index="62" unique_id=196602680 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99390334, -0.110254735, -8.742278e-08, -0.110254735, 0.99390334, 0, 8.688979e-08, 9.638775e-09, -1, -32.16877, 0.32301903, 4.3099127)
|
||||
|
||||
[node name="Bambù112" parent="Bambu" index="63" unique_id=967443532 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.8806709, 0.10227825, 0.46255583, 0.10135725, 0.99448574, -0.026919715, -0.46275845, 0.023175973, -0.88618135, -32.869133, -0.42294633, -0.97829604)
|
||||
|
||||
[node name="Bambù113" parent="Bambu" index="64" unique_id=1482031422 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99579215, -0.09164066, -8.742278e-08, -0.09164066, 0.99579215, 0, 8.7054914e-08, 8.011481e-09, -1, -32.16877, 0, 0.17894864)
|
||||
|
||||
[node name="Bambù114" parent="Bambu" index="65" unique_id=1379389822 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99390334, -0.110254735, -8.742278e-08, -0.110254735, 0.99390334, 0, 8.688979e-08, 9.638775e-09, -1, -32.16877, 0.32301903, -0.6900871)
|
||||
|
||||
[node name="Bambù115" parent="Bambu" index="66" unique_id=975304912 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.015310675, 0.028615177, 0.9994732, 0.101357244, 0.9944857, -0.026919713, -0.99473214, 0.1008917, -0.018126577, -31.591593, -0.42294633, -2.9296694)
|
||||
|
||||
[node name="Bambù116" parent="Bambu" index="67" unique_id=2135974183 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.47670823, -0.043870457, 0.87796617, -0.09164066, 0.99579215, -8.881784e-16, -0.8742718, -0.0804574, -0.47872263, -32.272335, 0, -1.760775)
|
||||
|
||||
[node name="Bambù117" parent="Bambu" index="68" unique_id=478364536 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.47580403, -0.052781433, 0.87796617, -0.110254735, 0.99390334, 0, -0.8726135, -0.096799925, -0.47872263, -31.509352, 0.32301903, -2.1768017)
|
||||
|
||||
[node name="Bambù36" parent="Bambu" index="69" unique_id=758304427 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99893546, -0.04613013, -8.7268496e-08, -0.046085197, 0.9979625, 0.044125043, -0.0020354062, 0.044078067, -0.999026, -33.26138, 0, -1.4439404)
|
||||
|
||||
[node name="Bambù37" parent="Bambu" index="70" unique_id=1213919388 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.9961887, -0.0872253, -8.7422784e-08, -0.0872253, 0.9961887, 0, 8.7089575e-08, 7.625477e-09, -1, -33.26138, -0.2565055, -2.312977)
|
||||
|
||||
[node name="Bambù38" parent="Bambu" index="71" unique_id=986726857 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-1, 1.1778938e-09, -8.741484e-08, 0, 0.9999092, 0.013473534, 8.742278e-08, 0.013473534, -0.9999092, -33.26138, 0, -3.1559422)
|
||||
|
||||
[node name="Bambù39" parent="Bambu" index="72" unique_id=1350182591 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.9961887, -0.0872253, -8.7422784e-08, -0.0872253, 0.9961887, 0, 8.7089575e-08, 7.625477e-09, -1, -33.26138, -0.3562231, 0.37321687)
|
||||
|
||||
[node name="Bambù40" parent="Bambu" index="73" unique_id=100164560 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-1, 1.1778938e-09, -8.741484e-08, 0, 0.9999092, 0.013473534, 8.742278e-08, 0.013473534, -0.9999092, -33.26138, 0, -0.46974778)
|
||||
|
||||
[node name="Bambù71" parent="Bambu" index="74" unique_id=233601894 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99893546, -0.04613013, -8.7268496e-08, -0.046085197, 0.9979625, 0.044125043, -0.0020354062, 0.044078067, -0.999026, -33.58232, 4.7683716e-07, 0.2083714)
|
||||
|
||||
[node name="Bambù72" parent="Bambu" index="75" unique_id=1557143999 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.9961887, -0.0872253, -8.7422784e-08, -0.0872253, 0.9961887, 0, 8.7089575e-08, 7.625477e-09, -1, -33.58232, 4.7683716e-07, -0.66066575)
|
||||
|
||||
[node name="Bambù73" parent="Bambu" index="76" unique_id=1199352277 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-1, 1.1778938e-09, -8.741484e-08, 0, 0.9999092, 0.013473534, 8.742278e-08, 0.013473534, -0.9999092, -33.58232, -0.2763033, -1.5036309)
|
||||
|
||||
[node name="Bambù74" parent="Bambu" index="77" unique_id=962740386 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99893546, -0.04613013, -8.7268496e-08, -0.046085197, 0.9979625, 0.044125043, -0.0020354062, 0.044078067, -0.999026, -33.58232, 4.7683716e-07, -0.7916291)
|
||||
|
||||
[node name="Bambù75" parent="Bambu" index="78" unique_id=1175179469 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.9961887, -0.0872253, -8.7422784e-08, -0.0872253, 0.9961887, 0, 8.7089575e-08, 7.625477e-09, -1, -33.58232, 0.26429868, -1.6606648)
|
||||
|
||||
[node name="Bambù76" parent="Bambu" index="79" unique_id=1994616556 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-1, 1.1778938e-09, -8.741484e-08, 0, 0.9999092, 0.013473534, 8.742278e-08, 0.013473534, -0.9999092, -33.58232, 4.7683716e-07, -2.5036309)
|
||||
|
||||
[node name="Bambù77" parent="Bambu" index="80" unique_id=274474376 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.63536054, -0.04388616, 0.7709676, 0.10135724, 0.9944857, -0.026919717, -0.76553476, 0.095246874, 0.63630515, -34.4133, -0.42294633, -3.412144)
|
||||
|
||||
[node name="Bambù78" parent="Bambu" index="81" unique_id=99925458 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.20654374, 0.019007787, 0.9782527, -0.09164065, 0.99579215, -1.5453742e-09, -0.97413635, -0.08964771, 0.20741652, -35.690643, 0, -2.9670403)
|
||||
|
||||
[node name="Bambù79" parent="Bambu" index="82" unique_id=2061154476 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.20615196, 0.022868654, 0.9782527, -0.11025474, 0.99390346, -3.3675118e-09, -0.9722887, -0.10785699, 0.20741653, -34.840508, 0.32301903, -2.7867873)
|
||||
|
||||
[node name="Bambù80" parent="Bambu" index="83" unique_id=662645315 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.8806709, 0.10227825, 0.46255583, 0.10135725, 0.99448574, -0.026919715, -0.46275845, 0.023175973, -0.88618135, -37.263027, -0.42294633, -3.3296)
|
||||
|
||||
[node name="Bambù81" parent="Bambu" index="84" unique_id=1672022163 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99579215, -0.09164066, -8.742278e-08, -0.09164066, 0.99579215, 0, 8.7054914e-08, 8.011481e-09, -1, -36.562664, 0, -2.172355)
|
||||
|
||||
[node name="Bambù82" parent="Bambu" index="85" unique_id=1830293455 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99390334, -0.110254735, -8.742278e-08, -0.110254735, 0.99390334, 0, 8.688979e-08, 9.638775e-09, -1, -36.562664, 0.32301903, -3.0413902)
|
||||
|
||||
[node name="Bambù83" parent="Bambu" index="86" unique_id=1745614643 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99893546, -0.04613013, -8.7268496e-08, -0.046085197, 0.9979625, 0.044125043, -0.0020354062, 0.044078067, -0.999026, -32.40587, -0.15795898, -3.0512614)
|
||||
|
||||
[node name="Bambù84" parent="Bambu" index="87" unique_id=1417946289 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.9961887, -0.0872253, -8.7422784e-08, -0.0872253, 0.9961887, 0, 8.7089575e-08, 7.625477e-09, -1, -32.40587, -0.41446447, -3.920298)
|
||||
|
||||
[node name="Bambù85" parent="Bambu" index="88" unique_id=706143232 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-1, 1.1778938e-09, -8.741484e-08, 0, 0.9999092, 0.013473534, 8.742278e-08, 0.013473534, -0.9999092, -32.40587, -0.15795898, -4.763263)
|
||||
|
||||
[node name="Bambù86" parent="Bambu" index="89" unique_id=929818396 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.9961887, -0.0872253, -8.7422784e-08, -0.0872253, 0.9961887, 0, 8.7089575e-08, 7.625477e-09, -1, -32.40587, -0.5141821, -1.2341042)
|
||||
|
||||
[node name="Bambù87" parent="Bambu" index="90" unique_id=1421223174 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-1, 1.1778938e-09, -8.741484e-08, 0, 0.9999092, 0.013473534, 8.742278e-08, 0.013473534, -0.9999092, -32.40587, -0.15795898, -2.0770688)
|
||||
|
||||
[node name="Bambù88" parent="Bambu" index="91" unique_id=3127006 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99893546, -0.04613013, -8.7268496e-08, -0.046085197, 0.9979625, 0.044125043, -0.0020354062, 0.044078067, -0.999026, -32.726814, -0.15795851, -1.3989496)
|
||||
|
||||
[node name="Bambù89" parent="Bambu" index="92" unique_id=267111895 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.9961887, -0.0872253, -8.7422784e-08, -0.0872253, 0.9961887, 0, 8.7089575e-08, 7.625477e-09, -1, -32.726814, -0.15795851, -2.2679868)
|
||||
|
||||
[node name="Bambù90" parent="Bambu" index="93" unique_id=1039626904 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-1, 1.1778938e-09, -8.741484e-08, 0, 0.9999092, 0.013473534, 8.742278e-08, 0.013473534, -0.9999092, -32.726814, -0.43426228, -3.110952)
|
||||
|
||||
[node name="Bambù91" parent="Bambu" index="94" unique_id=1994168253 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99893546, -0.04613013, -8.7268496e-08, -0.046085197, 0.9979625, 0.044125043, -0.0020354062, 0.044078067, -0.999026, -32.726814, -0.15795851, -2.39895)
|
||||
|
||||
[node name="Bambù92" parent="Bambu" index="95" unique_id=187305983 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.9961887, -0.0872253, -8.7422784e-08, -0.0872253, 0.9961887, 0, 8.7089575e-08, 7.625477e-09, -1, -32.726814, 0.10633969, -3.2679858)
|
||||
|
||||
[node name="Bambù93" parent="Bambu" index="96" unique_id=1879946930 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-1, 1.1778938e-09, -8.741484e-08, 0, 0.9999092, 0.013473534, 8.742278e-08, 0.013473534, -0.9999092, -32.726814, -0.15795851, -4.110952)
|
||||
|
||||
[node name="Bambù94" parent="Bambu" index="97" unique_id=696009367 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.63536054, -0.04388616, 0.7709676, 0.10135724, 0.9944857, -0.026919717, -0.76553476, 0.095246874, 0.63630515, -33.557793, -0.5809053, -5.019465)
|
||||
|
||||
[node name="Bambù95" parent="Bambu" index="98" unique_id=1606460467 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.20654374, 0.019007787, 0.9782527, -0.09164065, 0.99579215, -1.5453742e-09, -0.97413635, -0.08964771, 0.20741652, -34.835136, -0.15795898, -4.5743613)
|
||||
|
||||
[node name="Bambù96" parent="Bambu" index="99" unique_id=602620642 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(0.20615196, 0.022868654, 0.9782527, -0.11025474, 0.99390346, -3.3675118e-09, -0.9722887, -0.10785699, 0.20741653, -33.985, 0.16506004, -4.3941083)
|
||||
|
||||
[node name="Bambù97" parent="Bambu" index="100" unique_id=1445277351 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.8806709, 0.10227825, 0.46255583, 0.10135725, 0.99448574, -0.026919715, -0.46275845, 0.023175973, -0.88618135, -36.407516, -0.5809053, -4.936921)
|
||||
|
||||
[node name="Bambù98" parent="Bambu" index="101" unique_id=421197506 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99579215, -0.09164066, -8.742278e-08, -0.09164066, 0.99579215, 0, 8.7054914e-08, 8.011481e-09, -1, -35.707153, -0.15795898, -3.779676)
|
||||
|
||||
[node name="Bambù99" parent="Bambu" index="102" unique_id=1720440871 instance=ExtResource("10_x1bjv")]
|
||||
transform = Transform3D(-0.99390334, -0.110254735, -8.742278e-08, -0.110254735, 0.99390334, 0, 8.688979e-08, 9.638775e-09, -1, -35.707153, 0.16506004, -4.648711)
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
[ext_resource type="Material" uid="uid://f5uoreickew7" path="res://tgcc/chunk/prop/flower/flower.tres" id="12_5yfr5"]
|
||||
[ext_resource type="PackedScene" uid="uid://d12t04rs47jq3" path="res://tgcc/chunk/prop/tree/tree_01.tscn" id="18_fqrww"]
|
||||
[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"]
|
||||
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_fqrww"]
|
||||
@@ -73,69 +74,85 @@ shader_parameter/random_mix = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.0
|
||||
shader_parameter/wetness_darkening = 0.25
|
||||
|
||||
[node name="chunk_country_corner_03" unique_id=1046737870 groups=["weather_node", "wind_node"] instance=ExtResource("1_jemyf")]
|
||||
[sub_resource type="Gradient" id="Gradient_5yfr5"]
|
||||
offsets = PackedFloat32Array(1, 1)
|
||||
colors = PackedColorArray(0, 0, 0, 0.5882353, 0, 0, 0, 0)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_fqrww"]
|
||||
gradient = SubResource("Gradient_5yfr5")
|
||||
fill = 2
|
||||
fill_from = Vector2(0.5, 0.5)
|
||||
|
||||
[node name="chunk_country_corner_03" unique_id=1046737870 node_paths=PackedStringArray("connection_left", "connection_right") instance=ExtResource("1_jemyf")]
|
||||
script = ExtResource("2_ejpey")
|
||||
south = true
|
||||
west = true
|
||||
have_lamppost = true
|
||||
connection_left = [NodePath("PaloLuce/sx")]
|
||||
connection_right = [NodePath("PaloLuce/dx")]
|
||||
|
||||
[node name="Cavi_001" parent="." index="0" unique_id=1489236714]
|
||||
[node name="Cavi_001" parent="." index="0" unique_id=1776585264]
|
||||
surface_material_override/0 = ExtResource("2_skxxm")
|
||||
|
||||
[node name="Cube_227" parent="." index="1" unique_id=1343854496]
|
||||
[node name="Cube_227" parent="." index="1" unique_id=2133644431]
|
||||
surface_material_override/0 = ExtResource("3_xcce4")
|
||||
surface_material_override/1 = ExtResource("4_w66q1")
|
||||
|
||||
[node name="Flower_003" parent="." index="2" unique_id=588414494]
|
||||
[node name="Flower_003" parent="." index="2" unique_id=895385463]
|
||||
visible = false
|
||||
|
||||
[node name="FlowerG" parent="." index="3" unique_id=1148144861]
|
||||
[node name="FlowerG" parent="." index="3" unique_id=271983880]
|
||||
visible = false
|
||||
|
||||
[node name="Grass_004" parent="." index="4" unique_id=1413022109]
|
||||
[node name="Grass_004" parent="." index="4" unique_id=433080384]
|
||||
surface_material_override/0 = ExtResource("5_rqsxa")
|
||||
|
||||
[node name="House_M_4|Cube_357|Dupli|" parent="House_M_4" parent_id_path=PackedInt32Array(846909534) index="0" unique_id=1022330799]
|
||||
[node name="House_M_4" parent="." index="5" unique_id=1042574904 groups=["weather_node"]]
|
||||
|
||||
[node name="House_M_4|Cube_357|Dupli|" parent="House_M_4" index="0" unique_id=374531053]
|
||||
surface_material_override/0 = ExtResource("6_333a0")
|
||||
surface_material_override/1 = ExtResource("4_w66q1")
|
||||
|
||||
[node name="House_M_4_001|Cube_357|Dupli|" parent="House_M_4_001" parent_id_path=PackedInt32Array(2014179807) index="0" unique_id=1963982809]
|
||||
[node name="House_M_4_001" parent="." index="6" unique_id=1658008130 groups=["weather_node"]]
|
||||
|
||||
[node name="House_M_4_001|Cube_357|Dupli|" parent="House_M_4_001" index="0" unique_id=2144242896]
|
||||
surface_material_override/0 = ExtResource("6_333a0")
|
||||
surface_material_override/1 = ExtResource("4_w66q1")
|
||||
|
||||
[node name="Lanterne_001" parent="." index="7" unique_id=877080306]
|
||||
[node name="Lanterne_001" parent="." index="7" unique_id=267697647]
|
||||
surface_material_override/0 = ExtResource("4_w66q1")
|
||||
surface_material_override/1 = ExtResource("6_333a0")
|
||||
|
||||
[node name="MSH_Staccioanta_1_001" parent="." index="8" unique_id=2137478487]
|
||||
[node name="MSH_Staccioanta_1_001" parent="." index="8" unique_id=1657352292]
|
||||
surface_material_override/0 = ExtResource("7_333a0")
|
||||
|
||||
[node name="Palo_001" parent="." index="9" unique_id=1395117968]
|
||||
[node name="Palo_001" parent="." index="9" unique_id=910139738]
|
||||
visible = false
|
||||
surface_material_override/0 = ExtResource("8_cbpyt")
|
||||
surface_material_override/1 = ExtResource("8_tnnlv")
|
||||
|
||||
[node name="Panchine_001" parent="." index="10" unique_id=1252724017]
|
||||
[node name="Panchine_001" parent="." index="10" unique_id=1603364499 groups=["weather_node"]]
|
||||
surface_material_override/0 = ExtResource("7_333a0")
|
||||
|
||||
[node name="Rocks" parent="." index="11" unique_id=395080391]
|
||||
[node name="Rocks" parent="." index="11" unique_id=533371511 groups=["weather_node"]]
|
||||
surface_material_override/0 = ExtResource("8_cbpyt")
|
||||
surface_material_override/1 = ExtResource("3_xcce4")
|
||||
surface_material_override/2 = ExtResource("3_xcce4")
|
||||
|
||||
[node name="Santuario" parent="." index="12" unique_id=1075151573]
|
||||
[node name="Santuario" parent="." index="12" unique_id=1486207544 groups=["weather_node"]]
|
||||
surface_material_override/0 = ExtResource("8_tnnlv")
|
||||
surface_material_override/1 = ExtResource("3_xcce4")
|
||||
|
||||
[node name="Strada" parent="." index="13" unique_id=1300376742]
|
||||
[node name="Strada" parent="." index="13" unique_id=452244546 groups=["weather_node"]]
|
||||
surface_material_override/0 = ExtResource("11_5yfr5")
|
||||
|
||||
[node name="Terreno_002" parent="." index="14" unique_id=1672498777]
|
||||
[node name="Terreno_002" parent="." index="14" unique_id=1020879859 groups=["weather_node"]]
|
||||
surface_material_override/0 = ExtResource("11_5yfr5")
|
||||
|
||||
[node name="tree_PH" parent="." index="15" unique_id=850970876]
|
||||
[node name="tree_PH" parent="." index="15" unique_id=1550954564 groups=["weather_node", "wind_node"]]
|
||||
visible = false
|
||||
|
||||
[node name="grass" type="Node3D" parent="." index="16" unique_id=607638887]
|
||||
[node name="grass" type="Node3D" parent="." index="16" unique_id=607638887 groups=["weather_vegetables_node", "wind_node"]]
|
||||
|
||||
[node name="grass_plane" type="MeshInstance3D" parent="grass" index="0" unique_id=1706761739]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0)
|
||||
@@ -160,7 +177,7 @@ material_override = ExtResource("10_ejpey")
|
||||
cast_shadow = 0
|
||||
multimesh = SubResource("MultiMesh_s7klq")
|
||||
|
||||
[node name="flower" type="Node3D" parent="." index="17" unique_id=1207699654]
|
||||
[node name="flower" type="Node3D" parent="." index="17" unique_id=1207699654 groups=["weather_vegetables_node", "wind_node"]]
|
||||
|
||||
[node name="flower_plane" type="MeshInstance3D" parent="flower" index="0" unique_id=1189559649]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0)
|
||||
@@ -182,21 +199,313 @@ multimesh = SubResource("MultiMesh_mkuur")
|
||||
[node name="TreeTest3" parent="." index="18" unique_id=1532527216 instance=ExtResource("18_fqrww")]
|
||||
transform = Transform3D(-0.13587202, 0, -0.8694474, 0, 0.88, 0, 0.8694474, 0, -0.13587202, 5.7668495, -0.16967964, -8.851597)
|
||||
|
||||
[node name="MultiMeshInstance3D" parent="TreeTest3/Leaf" parent_id_path=PackedInt32Array(1532527216, 2028330452) index="0" unique_id=153924119]
|
||||
[node name="MultiMeshInstance3D" parent="TreeTest3/Leaf" parent_id_path=PackedInt32Array(1532527216, 2098078578) index="0" unique_id=153924119]
|
||||
material_override = SubResource("ShaderMaterial_mkuur")
|
||||
|
||||
[node name="TreeTest4" parent="." index="19" unique_id=523194273 instance=ExtResource("18_fqrww")]
|
||||
transform = Transform3D(0.5726346, 0, 0.6681987, 0, 0.8800001, 0, -0.6681987, 0, 0.5726346, 8.081164, -0.16967964, -5.0532355)
|
||||
|
||||
[node name="MultiMeshInstance3D" parent="TreeTest4/Leaf" parent_id_path=PackedInt32Array(523194273, 2028330452) index="0" unique_id=153924119]
|
||||
[node name="MultiMeshInstance3D" parent="TreeTest4/Leaf" parent_id_path=PackedInt32Array(523194273, 2098078578) index="0" unique_id=153924119]
|
||||
material_override = SubResource("ShaderMaterial_mkuur")
|
||||
|
||||
[node name="TreeTest5" parent="." index="20" unique_id=1732926892 instance=ExtResource("18_fqrww")]
|
||||
transform = Transform3D(0.65072113, 0, 0.7593168, 0, 1, 0, -0.7593168, 0, 0.65072113, -6.0227623, -0.16967964, 5.4480567)
|
||||
|
||||
[node name="MultiMeshInstance3D" parent="TreeTest5/Leaf" parent_id_path=PackedInt32Array(1732926892, 2028330452) index="0" unique_id=153924119]
|
||||
[node name="MultiMeshInstance3D" parent="TreeTest5/Leaf" parent_id_path=PackedInt32Array(1732926892, 2098078578) index="0" unique_id=153924119]
|
||||
material_override = SubResource("ShaderMaterial_mkuur")
|
||||
|
||||
[node name="shadow" type="Node3D" parent="." index="21" unique_id=889585033]
|
||||
|
||||
[node name="Decal" type="Decal" parent="shadow" index="0" unique_id=1397107284]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.330791, 0.118, 4.2886734)
|
||||
size = Vector3(6.375206, 0.5, 10.401308)
|
||||
texture_albedo = SubResource("GradientTexture2D_fqrww")
|
||||
|
||||
[node name="Decal2" type="Decal" parent="shadow" index="1" unique_id=1402560073]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -4.3971567, 0.118, -6.4218)
|
||||
size = Vector3(6.375206, 0.5, 10.401308)
|
||||
texture_albedo = SubResource("GradientTexture2D_fqrww")
|
||||
|
||||
[node name="light" type="Node3D" parent="." index="22" unique_id=2139897359]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.189697, 0, 26.182838)
|
||||
|
||||
[node name="OmniLight3D24" type="OmniLight3D" parent="light" index="0" unique_id=394427892]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 17.771463, 1.6665113, -30.424273)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D27" type="OmniLight3D" parent="light" index="1" unique_id=533010245]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 19.76046, 1.6665113, -30.424273)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D28" type="OmniLight3D" parent="light" index="2" unique_id=352589915]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 21.742308, 1.6665113, -30.424273)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D29" type="OmniLight3D" parent="light" index="3" unique_id=537871599]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 17.790565, 1.6665113, -34.74778)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D30" type="OmniLight3D" parent="light" index="4" unique_id=58886502]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 19.779562, 1.6665113, -34.74778)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D31" type="OmniLight3D" parent="light" index="5" unique_id=1729443245]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 21.76141, 1.6665113, -34.74778)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D25" type="OmniLight3D" parent="light" index="6" unique_id=1404898221]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 15.58135, 1.6665113, -32.59843)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D32" type="OmniLight3D" parent="light" index="7" unique_id=1722040258]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 24.014132, 1.6665113, -32.626106)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D37" type="OmniLight3D" parent="light" index="8" unique_id=725743884]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 28.33574, 1.6665113, -23.86904)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D38" type="OmniLight3D" parent="light" index="9" unique_id=1106424157]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 28.33574, 1.6665113, -21.880045)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D39" type="OmniLight3D" parent="light" index="10" unique_id=944788080]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 28.33574, 1.6665113, -19.898195)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D40" type="OmniLight3D" parent="light" index="11" unique_id=1308343844]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 32.65925, 1.6665113, -23.84994)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D41" type="OmniLight3D" parent="light" index="12" unique_id=1079966604]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 32.65925, 1.6665113, -21.86094)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D42" type="OmniLight3D" parent="light" index="13" unique_id=1988284193]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 32.65925, 1.6665113, -19.879095)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D43" type="OmniLight3D" parent="light" index="14" unique_id=1412545630]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 30.5099, 1.6665113, -26.059153)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D44" type="OmniLight3D" parent="light" index="15" unique_id=165754334]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 30.537575, 1.6665113, -17.626371)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D26" type="OmniLight3D" parent="light" index="16" unique_id=1767599228]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 25.238956, 1.5113132, -34.584232)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D36" type="OmniLight3D" parent="light" index="17" unique_id=1750047436]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 25.238956, 1.5113132, -30.585411)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D33" type="OmniLight3D" parent="light" index="18" unique_id=1648463917]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 24.95372, 3.3977997, -31.297941)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D34" type="OmniLight3D" parent="light" index="19" unique_id=896020992]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 29.219215, 3.3977997, -26.916061)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D35" type="OmniLight3D" parent="light" index="20" unique_id=918128049]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 27.051067, 3.3234632, -29.109875)
|
||||
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
|
||||
|
||||
[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)
|
||||
|
||||
[editable path="TreeTest3"]
|
||||
[editable path="TreeTest4"]
|
||||
[editable path="TreeTest5"]
|
||||
[editable path="PaloLuce"]
|
||||
|
||||
@@ -10,6 +10,8 @@
|
||||
[ext_resource type="Material" uid="uid://jygb1hcokks5" path="res://tgcc/chunk/prop/grass/grass_bank.tres" id="7_fspb5"]
|
||||
[ext_resource type="Material" uid="uid://bjrb33qwp1p43" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds.tres" id="8_uik3j"]
|
||||
[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"]
|
||||
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_piek1"]
|
||||
size = Vector2(0.5, 0.5)
|
||||
@@ -47,30 +49,30 @@ size = Vector2(1, 1)
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_x3b0m"]
|
||||
size = Vector2(1, 1)
|
||||
|
||||
[node name="chunk_country_cross3_01" unique_id=319840865 groups=["weather_vegetables_node", "wind_node"] instance=ExtResource("1_d5ypx")]
|
||||
[node name="chunk_country_cross3_01" unique_id=319840865 instance=ExtResource("1_d5ypx")]
|
||||
script = ExtResource("2_wjrum")
|
||||
north = true
|
||||
est = true
|
||||
south = true
|
||||
|
||||
[node name="Argini_006" parent="." index="0" unique_id=185713343]
|
||||
[node name="Argini_006" parent="." index="0" unique_id=503381779]
|
||||
surface_material_override/0 = ExtResource("2_6ig2p")
|
||||
surface_material_override/1 = ExtResource("2_6ig2p")
|
||||
|
||||
[node name="Grass_009" parent="." index="1" unique_id=629886419]
|
||||
[node name="Grass_009" parent="." index="1" unique_id=845457056]
|
||||
surface_material_override/0 = ExtResource("2_6ig2p")
|
||||
|
||||
[node name="MSH_Staccioanta_1_009" parent="." index="2" unique_id=802806256]
|
||||
[node name="MSH_Staccioanta_1_009" parent="." index="2" unique_id=2079323499]
|
||||
surface_material_override/0 = ExtResource("3_wjrum")
|
||||
|
||||
[node name="Strada_007" parent="." index="3" unique_id=1200357449]
|
||||
[node name="Strada_007" parent="." index="3" unique_id=1254411007 groups=["weather_node"]]
|
||||
surface_material_override/0 = ExtResource("4_s0twx")
|
||||
|
||||
[node name="Water_007" parent="." index="4" unique_id=787518082]
|
||||
[node name="Water_007" parent="." index="4" unique_id=403462512]
|
||||
surface_material_override/0 = ExtResource("5_on7te")
|
||||
surface_material_override/1 = ExtResource("5_on7te")
|
||||
|
||||
[node name="grass" type="Node3D" parent="." index="5" unique_id=973979211]
|
||||
[node name="grass" type="Node3D" parent="." index="5" unique_id=973979211 groups=["weather_vegetables_node", "wind_node"]]
|
||||
|
||||
[node name="grass_plane" type="MeshInstance3D" parent="grass" index="0" unique_id=146863909]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0)
|
||||
@@ -101,7 +103,7 @@ material_override = ExtResource("9_52lxu")
|
||||
cast_shadow = 0
|
||||
multimesh = SubResource("MultiMesh_on7te")
|
||||
|
||||
[node name="rice" type="Node3D" parent="." index="6" unique_id=1355130919]
|
||||
[node name="rice" type="Node3D" parent="." index="6" unique_id=1355130919 groups=["weather_vegetables_node", "wind_node"]]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -65.14392, 0, 0)
|
||||
|
||||
[node name="rice_plane61" type="MeshInstance3D" parent="rice" index="0" unique_id=1212069363]
|
||||
@@ -703,3 +705,198 @@ transform = Transform3D(-4.371139e-08, -1, 4.371139e-08, 0, -4.371139e-08, -1, 1
|
||||
cast_shadow = 0
|
||||
mesh = SubResource("PlaneMesh_x3b0m")
|
||||
surface_material_override/0 = ExtResource("8_uik3j")
|
||||
|
||||
[node name="Bambu" type="Node3D" parent="." index="7" unique_id=1999704083]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7030029, 0, 0)
|
||||
|
||||
[node name="Bambù15" parent="Bambu" index="0" unique_id=514636059 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -3.1835556, 0, 7.4614506)
|
||||
|
||||
[node name="Bambù16" parent="Bambu" index="1" unique_id=1954346093 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -3.1835556, -0.2565055, 8.330488)
|
||||
|
||||
[node name="Bambù21" parent="Bambu" index="2" unique_id=42929277 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -3.1835556, 0, 9.173452)
|
||||
|
||||
[node name="Bambù22" parent="Bambu" index="3" unique_id=361021749 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -3.1835556, -0.3562231, 5.6442933)
|
||||
|
||||
[node name="Bambù23" parent="Bambu" index="4" unique_id=1847823683 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -3.1835556, 0, 6.4872584)
|
||||
|
||||
[node name="Bambù24" parent="Bambu" index="5" unique_id=1958123839 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -2.8626137, 4.7683716e-07, 5.8091397)
|
||||
|
||||
[node name="Bambù25" parent="Bambu" index="6" unique_id=1901573942 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -2.8626137, 4.7683716e-07, 6.6781764)
|
||||
|
||||
[node name="Bambù41" parent="Bambu" index="7" unique_id=47805921 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -2.8626137, -0.2763033, 7.521142)
|
||||
|
||||
[node name="Bambù42" parent="Bambu" index="8" unique_id=2054757941 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -2.8626137, 4.7683716e-07, 6.8091397)
|
||||
|
||||
[node name="Bambù43" parent="Bambu" index="9" unique_id=453190292 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -2.8626137, 0.26429868, 7.678176)
|
||||
|
||||
[node name="Bambù44" parent="Bambu" index="10" unique_id=1458581214 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -2.8626137, 4.7683716e-07, 8.521141)
|
||||
|
||||
[node name="Bambù18" parent="Bambu" index="11" unique_id=1056403055 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -3.2905903, 0, -7.497928)
|
||||
|
||||
[node name="Bambù19" parent="Bambu" index="12" unique_id=296595434 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -3.2905903, -0.2565055, -6.6288905)
|
||||
|
||||
[node name="Bambù26" parent="Bambu" index="13" unique_id=1108181054 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -3.2905903, 0, -5.7859263)
|
||||
|
||||
[node name="Bambù27" parent="Bambu" index="14" unique_id=1562603620 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -3.2905903, -0.3562231, -9.315086)
|
||||
|
||||
[node name="Bambù28" parent="Bambu" index="15" unique_id=559053846 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -3.2905903, 0, -8.47212)
|
||||
|
||||
[node name="Bambù29" parent="Bambu" index="16" unique_id=233163335 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -2.9696484, 4.7683716e-07, -9.15024)
|
||||
|
||||
[node name="Bambù30" parent="Bambu" index="17" unique_id=1342879225 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -2.9696484, 4.7683716e-07, -8.281202)
|
||||
|
||||
[node name="Bambù45" parent="Bambu" index="18" unique_id=703015624 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -2.9696484, -0.2763033, -7.4382367)
|
||||
|
||||
[node name="Bambù46" parent="Bambu" index="19" unique_id=83558709 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -2.9696484, 4.7683716e-07, -8.150239)
|
||||
|
||||
[node name="Bambù47" parent="Bambu" index="20" unique_id=891851311 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -2.9696484, 0.26429868, -7.281203)
|
||||
|
||||
[node name="Bambù48" parent="Bambu" index="21" unique_id=1492062909 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -2.9696484, 4.7683716e-07, -6.4382377)
|
||||
|
||||
[node name="Bambù20" parent="Bambu" index="22" unique_id=683004573 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, 8.239307, 0, -7.497928)
|
||||
|
||||
[node name="Bambù31" parent="Bambu" index="23" unique_id=1166075867 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 8.239307, -0.2565055, -6.6288905)
|
||||
|
||||
[node name="Bambù32" parent="Bambu" index="24" unique_id=1550621383 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -2.917448, -0.22205257, -4.929665)
|
||||
|
||||
[node name="Bambù33" parent="Bambu" index="25" unique_id=1674656626 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 8.239307, -0.3562231, -9.315086)
|
||||
|
||||
[node name="Bambù34" parent="Bambu" index="26" unique_id=1669538331 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, 8.239307, 0, -8.47212)
|
||||
|
||||
[node name="Bambù35" parent="Bambu" index="27" unique_id=237385787 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, 8.560249, 4.7683716e-07, -9.15024)
|
||||
|
||||
[node name="Bambù36" parent="Bambu" index="28" unique_id=1170872764 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 8.560249, 4.7683716e-07, -8.281202)
|
||||
|
||||
[node name="Bambù49" parent="Bambu" index="29" unique_id=1849867240 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, 8.560249, -0.2763033, -7.4382367)
|
||||
|
||||
[node name="Bambù50" parent="Bambu" index="30" unique_id=1199584830 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, 8.560249, 4.7683716e-07, -8.150239)
|
||||
|
||||
[node name="Bambù51" parent="Bambu" index="31" unique_id=317685493 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 8.560249, 0.26429868, -7.281203)
|
||||
|
||||
[node name="Bambù52" parent="Bambu" index="32" unique_id=1345147511 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, 8.560249, 4.7683716e-07, -6.4382377)
|
||||
|
||||
[node name="Bambù37" parent="Bambu" index="33" unique_id=1071137497 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, 8.239307, 0, 8.218842)
|
||||
|
||||
[node name="Bambù38" parent="Bambu" index="34" unique_id=121212224 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 8.239307, -0.2565055, 9.087879)
|
||||
|
||||
[node name="Bambù39" parent="Bambu" index="35" unique_id=944682133 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 8.239307, -0.3562231, 6.401683)
|
||||
|
||||
[node name="Bambù40" parent="Bambu" index="36" unique_id=203551499 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, 8.239307, 0, 7.244649)
|
||||
|
||||
[node name="Bambù53" parent="Bambu" index="37" unique_id=2113808379 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, 8.560249, 4.7683716e-07, 6.5665293)
|
||||
|
||||
[node name="Bambù54" parent="Bambu" index="38" unique_id=293731974 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 8.560249, 4.7683716e-07, 7.435567)
|
||||
|
||||
[node name="Bambù55" parent="Bambu" index="39" unique_id=1241354453 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, 8.560249, -0.2763033, 8.278532)
|
||||
|
||||
[node name="Bambù56" parent="Bambu" index="40" unique_id=2015969748 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, 8.560249, 4.7683716e-07, 7.56653)
|
||||
|
||||
[node name="Bambù57" parent="Bambu" index="41" unique_id=2032587135 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 8.560249, 0.26429868, 8.435566)
|
||||
|
||||
[node name="Bambù58" parent="Bambu" index="42" unique_id=338271013 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, 8.560249, 4.7683716e-07, 9.278532)
|
||||
|
||||
[node name="Bambù59" parent="Bambu" index="43" unique_id=2135267736 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(-0.0020355375, 0.044078063, -0.999026, -0.046085197, 0.9979625, 0.044125043, 0.99893546, 0.046130124, -4.3997797e-08, 5.7660995, 0, 8.747564)
|
||||
|
||||
[node name="Bambù60" parent="Bambu" index="44" unique_id=1996178166 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(-4.354479e-08, -3.812739e-09, -1.0000001, -0.0872253, 0.9961887, 0, 0.9961886, 0.087225296, -4.371139e-08, 4.8970613, -0.2565055, 8.747564)
|
||||
|
||||
[node name="Bambù61" parent="Bambu" index="45" unique_id=1142314968 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(-4.354479e-08, -3.812739e-09, -1.0000001, -0.0872253, 0.9961887, 0, 0.9961886, 0.087225296, -4.371139e-08, 7.5832577, -0.3562231, 8.747564)
|
||||
|
||||
[node name="Bambù62" parent="Bambu" index="46" unique_id=692230420 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(-4.371139e-08, 0.013473534, -0.9999092, 0, 0.9999092, 0.013473534, 1, 5.889469e-10, -4.370742e-08, 6.740291, 0, 8.747564)
|
||||
|
||||
[node name="Bambù63" parent="Bambu" index="47" unique_id=1412502637 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(-0.0020355375, 0.044078063, -0.999026, -0.046085197, 0.9979625, 0.044125043, 0.99893546, 0.046130124, -4.3997797e-08, 7.4184113, 4.7683716e-07, 9.068506)
|
||||
|
||||
[node name="Bambù64" parent="Bambu" index="48" unique_id=1439020299 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(-4.354479e-08, -3.812739e-09, -1.0000001, -0.0872253, 0.9961887, 0, 0.9961886, 0.087225296, -4.371139e-08, 6.549373, 4.7683716e-07, 9.068506)
|
||||
|
||||
[node name="Bambù65" parent="Bambu" index="49" unique_id=1296643572 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(-4.371139e-08, 0.013473534, -0.9999092, 0, 0.9999092, 0.013473534, 1, 5.889469e-10, -4.370742e-08, 5.706409, -0.2763033, 9.068506)
|
||||
|
||||
[node name="Bambù66" parent="Bambu" index="50" unique_id=1269906984 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(-0.0020355375, 0.044078063, -0.999026, -0.046085197, 0.9979625, 0.044125043, 0.99893546, 0.046130124, -4.3997797e-08, 6.418411, 4.7683716e-07, 9.068506)
|
||||
|
||||
[node name="Bambù67" parent="Bambu" index="51" unique_id=1964373557 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(-4.354479e-08, -3.812739e-09, -1.0000001, -0.0872253, 0.9961887, 0, 0.9961886, 0.087225296, -4.371139e-08, 5.549375, 0.26429868, 9.068506)
|
||||
|
||||
[node name="Bambù68" parent="Bambu" index="52" unique_id=2054959863 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(-4.371139e-08, 0.013473534, -0.9999092, 0, 0.9999092, 0.013473534, 1, 5.889469e-10, -4.370742e-08, 4.7064085, 4.7683716e-07, 9.068506)
|
||||
|
||||
[node name="Bambù69" parent="Bambu" index="53" unique_id=41413912 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(-0.0020355375, 0.044078063, -0.999026, -0.046085197, 0.9979625, 0.044125043, 0.99893546, 0.046130124, -4.3997797e-08, 5.7660995, 0, -9.709568)
|
||||
|
||||
[node name="Bambù70" parent="Bambu" index="54" unique_id=1098859020 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(-4.354479e-08, -3.812739e-09, -1.0000001, -0.0872253, 0.9961887, 0, 0.9961886, 0.087225296, -4.371139e-08, 4.8970613, -0.2565055, -9.709568)
|
||||
|
||||
[node name="Bambù71" parent="Bambu" index="55" unique_id=1253907857 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(-4.354479e-08, -3.812739e-09, -1.0000001, -0.0872253, 0.9961887, 0, 0.9961886, 0.087225296, -4.371139e-08, 7.5832577, -0.3562231, -9.709568)
|
||||
|
||||
[node name="Bambù72" parent="Bambu" index="56" unique_id=914925610 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(-4.371139e-08, 0.013473534, -0.9999092, 0, 0.9999092, 0.013473534, 1, 5.889469e-10, -4.370742e-08, 6.740291, 0, -9.709568)
|
||||
|
||||
[node name="Bambù73" parent="Bambu" index="57" unique_id=61163812 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(-0.0020355375, 0.044078063, -0.999026, -0.046085197, 0.9979625, 0.044125043, 0.99893546, 0.046130124, -4.3997797e-08, 7.4184113, 4.7683716e-07, -9.388626)
|
||||
|
||||
[node name="Bambù74" parent="Bambu" index="58" unique_id=1746505929 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(-4.354479e-08, -3.812739e-09, -1.0000001, -0.0872253, 0.9961887, 0, 0.9961886, 0.087225296, -4.371139e-08, 6.549373, 4.7683716e-07, -9.388626)
|
||||
|
||||
[node name="Bambù75" parent="Bambu" index="59" unique_id=880897283 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(-4.371139e-08, 0.013473534, -0.9999092, 0, 0.9999092, 0.013473534, 1, 5.889469e-10, -4.370742e-08, 5.706409, -0.2763033, -9.388626)
|
||||
|
||||
[node name="Bambù76" parent="Bambu" index="60" unique_id=2038811179 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(-0.0020355375, 0.044078063, -0.999026, -0.046085197, 0.9979625, 0.044125043, 0.99893546, 0.046130124, -4.3997797e-08, 6.418411, 4.7683716e-07, -9.388626)
|
||||
|
||||
[node name="Bambù77" parent="Bambu" index="61" unique_id=1694847279 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(-4.354479e-08, -3.812739e-09, -1.0000001, -0.0872253, 0.9961887, 0, 0.9961886, 0.087225296, -4.371139e-08, 5.549375, 0.26429868, -9.388626)
|
||||
|
||||
[node name="Bambù78" parent="Bambu" index="62" unique_id=1492632391 instance=ExtResource("11_s0twx")]
|
||||
transform = Transform3D(-4.371139e-08, 0.013473534, -0.9999092, 0, 0.9999092, 0.013473534, 1, 5.889469e-10, -4.370742e-08, 4.7064085, 4.7683716e-07, -9.388626)
|
||||
|
||||
[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)
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
[ext_resource type="Material" uid="uid://ce0bdk3mx2xao" path="res://tgcc/chunk/material/water_chunk.tres" id="9_gqoia"]
|
||||
[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"]
|
||||
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_kiycf"]
|
||||
size = Vector2(0.5, 0.5)
|
||||
@@ -62,54 +63,67 @@ buffer = PackedFloat32Array(-0.8020725, 0.5500147, -0.23699094, 3.4572377, -0.28
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_1bb53"]
|
||||
size = Vector2(1, 1)
|
||||
|
||||
[node name="chunk_country_cross3_02" unique_id=1492245999 groups=["weather_node", "wind_node"] instance=ExtResource("1_2emma")]
|
||||
[sub_resource type="Gradient" id="Gradient_aoxux"]
|
||||
offsets = PackedFloat32Array(1, 1)
|
||||
colors = PackedColorArray(0, 0, 0, 0.5882353, 0, 0, 0, 0)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_rr5ye"]
|
||||
gradient = SubResource("Gradient_aoxux")
|
||||
fill = 2
|
||||
fill_from = Vector2(0.5, 0.5)
|
||||
|
||||
[node name="chunk_country_cross3_02" unique_id=1492245999 instance=ExtResource("1_2emma")]
|
||||
script = ExtResource("2_aoxux")
|
||||
north = true
|
||||
est = true
|
||||
south = true
|
||||
|
||||
[node name="Argini_008" parent="." index="0" unique_id=1970392493]
|
||||
[node name="Argini_008" parent="." index="0" unique_id=506700048]
|
||||
surface_material_override/0 = ExtResource("2_jaet5")
|
||||
|
||||
[node name="Cavi_004" parent="." index="1" unique_id=1226786589]
|
||||
[node name="Cavi_004" parent="." index="1" unique_id=253539518]
|
||||
surface_material_override/0 = ExtResource("3_k52wx")
|
||||
surface_material_override/1 = ExtResource("3_k52wx")
|
||||
|
||||
[node name="Flower_008" parent="." index="2" unique_id=8446212]
|
||||
[node name="Flower_008" parent="." index="2" unique_id=992129707]
|
||||
visible = false
|
||||
|
||||
[node name="FlowerG_005" parent="." index="3" unique_id=2045663830]
|
||||
[node name="FlowerG_005" parent="." index="3" unique_id=1721720069]
|
||||
visible = false
|
||||
|
||||
[node name="Grass_010" parent="." index="4" unique_id=1977147069]
|
||||
[node name="Grass_010" parent="." index="4" unique_id=2049316115]
|
||||
surface_material_override/0 = ExtResource("2_jaet5")
|
||||
|
||||
[node name="House_C_1_002|Cube_330|Dupli|" parent="House_C_1_002" parent_id_path=PackedInt32Array(628395080) index="0" unique_id=1454139767]
|
||||
[node name="House_C_1_002" parent="." index="5" unique_id=1344987535 groups=["weather_node"]]
|
||||
|
||||
[node name="House_C_1_002|Cube_330|Dupli|" parent="House_C_1_002" index="0" unique_id=141290732]
|
||||
surface_material_override/0 = ExtResource("4_yg4ko")
|
||||
surface_material_override/1 = ExtResource("5_yk001")
|
||||
|
||||
[node name="House_C_1_003|Cube_330|Dupli|" parent="House_C_1_003" parent_id_path=PackedInt32Array(224251697) index="0" unique_id=682134143]
|
||||
[node name="House_C_1_003" parent="." index="6" unique_id=5893163 groups=["weather_node"]]
|
||||
|
||||
[node name="House_C_1_003|Cube_330|Dupli|" parent="House_C_1_003" index="0" unique_id=1916361483]
|
||||
surface_material_override/0 = ExtResource("4_yg4ko")
|
||||
surface_material_override/1 = ExtResource("5_yk001")
|
||||
|
||||
[node name="Lanterne_002" parent="." index="7" unique_id=584972425]
|
||||
[node name="Lanterne_002" parent="." index="7" unique_id=174576336]
|
||||
surface_material_override/0 = ExtResource("5_yk001")
|
||||
surface_material_override/1 = ExtResource("4_yg4ko")
|
||||
|
||||
[node name="MSH_Staccioanta_1_007" parent="." index="8" unique_id=166305032]
|
||||
[node name="MSH_Staccioanta_1_007" parent="." index="8" unique_id=914751003]
|
||||
surface_material_override/0 = ExtResource("6_k52wx")
|
||||
|
||||
[node name="PaliLuci_003" parent="." index="9" unique_id=718749193]
|
||||
[node name="PaliLuci_003" parent="." index="9" unique_id=860093688 groups=["weather_node"]]
|
||||
surface_material_override/0 = ExtResource("7_yg4ko")
|
||||
surface_material_override/1 = ExtResource("7_yg4ko")
|
||||
|
||||
[node name="Strada_008" parent="." index="10" unique_id=1129336513]
|
||||
[node name="Strada_008" parent="." index="10" unique_id=1328236486 groups=["weather_node"]]
|
||||
surface_material_override/0 = ExtResource("8_yk001")
|
||||
|
||||
[node name="Water_009" parent="." index="11" unique_id=764825976]
|
||||
[node name="Water_009" parent="." index="11" unique_id=803608688]
|
||||
surface_material_override/0 = ExtResource("9_gqoia")
|
||||
|
||||
[node name="grass" type="Node3D" parent="." index="12" unique_id=902068161]
|
||||
[node name="grass" type="Node3D" parent="." index="12" unique_id=902068161 groups=["weather_vegetables_node", "wind_node"]]
|
||||
|
||||
[node name="grass_plane" type="MeshInstance3D" parent="grass" index="0" unique_id=1918482206]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0)
|
||||
@@ -140,7 +154,7 @@ material_override = ExtResource("9_18gw6")
|
||||
cast_shadow = 0
|
||||
multimesh = SubResource("MultiMesh_18gw6")
|
||||
|
||||
[node name="flower" type="Node3D" parent="." index="13" unique_id=1748399781]
|
||||
[node name="flower" type="Node3D" parent="." index="13" unique_id=1748399781 groups=["weather_vegetables_node", "wind_node"]]
|
||||
|
||||
[node name="flower_plane" type="MeshInstance3D" parent="flower" index="0" unique_id=530008207]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0)
|
||||
@@ -159,7 +173,7 @@ material_override = ExtResource("11_w75rp")
|
||||
cast_shadow = 0
|
||||
multimesh = SubResource("MultiMesh_w75rp")
|
||||
|
||||
[node name="rice" type="Node3D" parent="." index="14" unique_id=1573887230]
|
||||
[node name="rice" type="Node3D" parent="." index="14" unique_id=1573887230 groups=["weather_vegetables_node", "wind_node"]]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -64.08334, 0, 0)
|
||||
|
||||
[node name="rice_plane61" type="MeshInstance3D" parent="rice" index="0" unique_id=526289283]
|
||||
@@ -521,3 +535,242 @@ transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 59.7
|
||||
cast_shadow = 0
|
||||
mesh = SubResource("PlaneMesh_1bb53")
|
||||
surface_material_override/0 = ExtResource("8_rr5ye")
|
||||
|
||||
[node name="shadow" type="Node3D" parent="." index="15" unique_id=670702032]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.361658, 0, 0)
|
||||
|
||||
[node name="Decal2" type="Decal" parent="shadow" index="0" unique_id=922189540]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.7440257, 0.118, -6.3402376)
|
||||
size = Vector3(6.375206, 0.5, 6.4011083)
|
||||
texture_albedo = SubResource("GradientTexture2D_rr5ye")
|
||||
|
||||
[node name="Decal3" type="Decal" parent="shadow" index="1" unique_id=638863692]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.7588773, 0.118, 6.374588)
|
||||
size = Vector3(6.375206, 0.5, 6.4011083)
|
||||
texture_albedo = SubResource("GradientTexture2D_rr5ye")
|
||||
|
||||
[node name="light" type="Node3D" parent="." index="16" unique_id=855839615]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22.554989, 0, 26.182838)
|
||||
|
||||
[node name="OmniLight3D23" type="OmniLight3D" parent="light" index="0" unique_id=1012201040]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 29.203798, 1.6665113, -34.696262)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D24" type="OmniLight3D" parent="light" index="1" unique_id=1909029879]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 29.203798, 1.6665113, -30.344786)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D25" type="OmniLight3D" parent="light" index="2" unique_id=1402698870]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 27.006886, 1.6665113, -32.461475)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D26" type="OmniLight3D" parent="light" index="3" unique_id=193646632]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 31.41166, 1.6665113, -32.461475)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D34" type="OmniLight3D" parent="light" index="4" unique_id=353951548]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 29.203798, 1.6665113, -21.9785)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D35" type="OmniLight3D" parent="light" index="5" unique_id=801665921]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 29.203798, 1.6665113, -17.627022)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D36" type="OmniLight3D" parent="light" index="6" unique_id=51976869]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 27.006886, 1.6665113, -19.743713)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D37" type="OmniLight3D" parent="light" index="7" unique_id=1086881090]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 31.41166, 1.6665113, -19.743713)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D33" type="OmniLight3D" parent="light" index="8" unique_id=149597706]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 24.405659, 3.161872, -26.186796)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D38" type="OmniLight3D" parent="light" index="9" unique_id=1165412202]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 32.378895, 3.161872, -26.186796)
|
||||
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
|
||||
|
||||
[node name="Bambu" type="Node3D" parent="." index="17" unique_id=448001558]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.1752586, 0, 0)
|
||||
|
||||
[node name="Bambù15" parent="Bambu" index="0" unique_id=514636059 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, 4.710951, 0, 7.851448)
|
||||
|
||||
[node name="Bambù16" parent="Bambu" index="1" unique_id=1113199509 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 4.710951, -0.2565055, 8.720485)
|
||||
|
||||
[node name="Bambù21" parent="Bambu" index="2" unique_id=323411216 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, 4.710951, 0, 9.56345)
|
||||
|
||||
[node name="Bambù22" parent="Bambu" index="3" unique_id=223818623 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 4.710951, -0.3562231, 6.0342903)
|
||||
|
||||
[node name="Bambù23" parent="Bambu" index="4" unique_id=1662355034 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, 4.710951, 0, 6.8772554)
|
||||
|
||||
[node name="Bambù24" parent="Bambu" index="5" unique_id=818989877 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, 5.031893, 4.7683716e-07, 6.1991367)
|
||||
|
||||
[node name="Bambù25" parent="Bambu" index="6" unique_id=1715691457 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 5.031893, 4.7683716e-07, 7.0681734)
|
||||
|
||||
[node name="Bambù41" parent="Bambu" index="7" unique_id=285888953 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, 5.031893, -0.2763033, 7.9111385)
|
||||
|
||||
[node name="Bambù42" parent="Bambu" index="8" unique_id=1243079673 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, 5.031893, 4.7683716e-07, 7.1991367)
|
||||
|
||||
[node name="Bambù43" parent="Bambu" index="9" unique_id=174399751 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 5.031893, 0.26429868, 8.068173)
|
||||
|
||||
[node name="Bambù44" parent="Bambu" index="10" unique_id=1664765048 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, 5.031893, 4.7683716e-07, 8.911139)
|
||||
|
||||
[node name="Bambù18" parent="Bambu" index="11" unique_id=1559539851 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, 4.710951, 0, -4.343957)
|
||||
|
||||
[node name="Bambù19" parent="Bambu" index="12" unique_id=642406394 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 4.710951, -0.2565055, -3.4749203)
|
||||
|
||||
[node name="Bambù26" parent="Bambu" index="13" unique_id=706839361 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, 4.710951, 0, -2.6319551)
|
||||
|
||||
[node name="Bambù27" parent="Bambu" index="14" unique_id=1638985970 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 4.710951, -0.3562231, -6.1611147)
|
||||
|
||||
[node name="Bambù28" parent="Bambu" index="15" unique_id=978144063 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, 4.710951, 0, -5.3181496)
|
||||
|
||||
[node name="Bambù29" parent="Bambu" index="16" unique_id=2141305470 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, 5.031893, 4.7683716e-07, -5.9962683)
|
||||
|
||||
[node name="Bambù30" parent="Bambu" index="17" unique_id=888892362 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 5.031893, 4.7683716e-07, -5.1272316)
|
||||
|
||||
[node name="Bambù51" parent="Bambu" index="18" unique_id=140566295 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, 5.031893, -0.2763033, -4.2842665)
|
||||
|
||||
[node name="Bambù52" parent="Bambu" index="19" unique_id=1699837022 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, 5.031893, 4.7683716e-07, -4.9962683)
|
||||
|
||||
[node name="Bambù53" parent="Bambu" index="20" unique_id=798441618 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 5.031893, 0.26429868, -4.1272316)
|
||||
|
||||
[node name="Bambù54" parent="Bambu" index="21" unique_id=966882354 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, 5.031893, 4.7683716e-07, -3.2842665)
|
||||
|
||||
[node name="Bambù33" parent="Bambu" index="22" unique_id=1874865938 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 4.8432164, -0.3562231, -8.338741)
|
||||
|
||||
[node name="Bambù34" parent="Bambu" index="23" unique_id=1925300029 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, 4.8432164, 0, -7.4957776)
|
||||
|
||||
[node name="Bambù35" parent="Bambu" index="24" unique_id=739573115 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, 5.1641583, 4.7683716e-07, -8.173897)
|
||||
|
||||
[node name="Bambù56" parent="Bambu" index="25" unique_id=1231729508 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, 5.1641583, 4.7683716e-07, -7.1738963)
|
||||
|
||||
[node name="Bambù37" parent="Bambu" index="26" unique_id=536233487 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 4.8120065, -0.3562231, 3.8334446)
|
||||
|
||||
[node name="Bambù38" parent="Bambu" index="27" unique_id=87092145 instance=ExtResource("17_rr5ye")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, 4.8120065, 0, 4.6764083)
|
||||
|
||||
[node name="Bambù39" parent="Bambu" index="28" unique_id=1707806049 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, 3.998289)
|
||||
|
||||
[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)
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -45,20 +45,20 @@ size = Vector2(1, 1)
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_hqb6i"]
|
||||
size = Vector2(1, 1)
|
||||
|
||||
[node name="chunk_country_empty_01" unique_id=385761952 groups=["weather_vegetables_node", "wind_node"] instance=ExtResource("1_xc6vo")]
|
||||
[node name="chunk_country_empty_01" unique_id=385761952 instance=ExtResource("1_xc6vo")]
|
||||
script = ExtResource("2_mfq5p")
|
||||
|
||||
[node name="Argini_002" parent="." index="0" unique_id=1558358546]
|
||||
[node name="Argini_002" parent="." index="0" unique_id=365771085]
|
||||
surface_material_override/0 = ExtResource("2_w0lad")
|
||||
|
||||
[node name="Chunk_026" parent="." index="1" unique_id=896079676]
|
||||
[node name="Chunk_026" parent="." index="1" unique_id=911079965]
|
||||
surface_material_override/0 = ExtResource("2_w0lad")
|
||||
|
||||
[node name="Water_001" parent="." index="2" unique_id=372952317]
|
||||
[node name="Water_001" parent="." index="2" unique_id=517615273]
|
||||
surface_material_override/0 = ExtResource("3_mfq5p")
|
||||
surface_material_override/1 = ExtResource("3_mfq5p")
|
||||
|
||||
[node name="grass" type="Node3D" parent="." index="3" unique_id=146158338]
|
||||
[node name="grass" type="Node3D" parent="." index="3" unique_id=146158338 groups=["weather_vegetables_node", "wind_node"]]
|
||||
|
||||
[node name="grass_plane" type="MeshInstance3D" parent="grass" index="0" unique_id=1720701245]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0)
|
||||
@@ -89,7 +89,7 @@ material_override = ExtResource("7_3q5r1")
|
||||
cast_shadow = 0
|
||||
multimesh = SubResource("MultiMesh_1yov0")
|
||||
|
||||
[node name="rice" type="Node3D" parent="." index="4" unique_id=1018338927]
|
||||
[node name="rice" type="Node3D" parent="." index="4" unique_id=1018338927 groups=["weather_vegetables_node", "wind_node"]]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -43.691254, 0, 0)
|
||||
|
||||
[node name="rice_plane61" type="MeshInstance3D" parent="rice" index="0" unique_id=1975724187]
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
[ext_resource type="Material" uid="uid://0x17mj2v807r" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds2.tres" id="14_j41gr"]
|
||||
[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"]
|
||||
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_7tu84"]
|
||||
size = Vector2(0.5, 0.5)
|
||||
@@ -66,64 +67,75 @@ buffer = PackedFloat32Array(-0.57898194, -0.039031368, -0.81563324, 0.4136602, -
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_2qvfo"]
|
||||
size = Vector2(1, 1)
|
||||
|
||||
[node name="chunk_country_end_01" unique_id=913263516 groups=["weather_node", "wind_node"] instance=ExtResource("1_hoyg3")]
|
||||
[sub_resource type="Gradient" id="Gradient_qbybq"]
|
||||
offsets = PackedFloat32Array(1, 1)
|
||||
colors = PackedColorArray(0, 0, 0, 0.5882353, 0, 0, 0, 0)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_mekjb"]
|
||||
gradient = SubResource("Gradient_qbybq")
|
||||
fill = 2
|
||||
fill_from = Vector2(0.5, 0.5)
|
||||
|
||||
[node name="chunk_country_end_01" unique_id=913263516 instance=ExtResource("1_hoyg3")]
|
||||
script = ExtResource("2_mekjb")
|
||||
west = true
|
||||
|
||||
[node name="Argini_004" parent="." index="0" unique_id=1858205185]
|
||||
[node name="Argini_004" parent="." index="0" unique_id=2092471339]
|
||||
surface_material_override/0 = ExtResource("2_cltnj")
|
||||
|
||||
[node name="Cart_001" parent="." index="1" unique_id=1835353896]
|
||||
[node name="Cart_001" parent="." index="1" unique_id=1302373818]
|
||||
surface_material_override/0 = ExtResource("3_aj7xj")
|
||||
surface_material_override/1 = ExtResource("4_nugyy")
|
||||
surface_material_override/2 = ExtResource("5_ygc8c")
|
||||
|
||||
[node name="Cavi_007" parent="." index="2" unique_id=994450170]
|
||||
[node name="Cavi_007" parent="." index="2" unique_id=891974148]
|
||||
surface_material_override/0 = ExtResource("4_nugyy")
|
||||
surface_material_override/1 = ExtResource("4_nugyy")
|
||||
|
||||
[node name="Cortile_002" parent="." index="3" unique_id=267016892]
|
||||
[node name="Cortile_002" parent="." index="3" unique_id=1440977285 groups=["weather_node"]]
|
||||
surface_material_override/0 = ExtResource("5_ygc8c")
|
||||
|
||||
[node name="Flower_005" parent="." index="4" unique_id=1549966189]
|
||||
[node name="Flower_005" parent="." index="4" unique_id=1151898243 groups=["weather_node", "wind_node"]]
|
||||
visible = false
|
||||
|
||||
[node name="FlowerG_003" parent="." index="5" unique_id=65871813]
|
||||
[node name="FlowerG_003" parent="." index="5" unique_id=1421252949 groups=["weather_node", "wind_node"]]
|
||||
visible = false
|
||||
|
||||
[node name="Grass_008" parent="." index="6" unique_id=1853173495]
|
||||
[node name="Grass_008" parent="." index="6" unique_id=565930716]
|
||||
surface_material_override/0 = ExtResource("2_cltnj")
|
||||
|
||||
[node name="House_M_3|Cube_212|Dupli|" parent="House_M_3" parent_id_path=PackedInt32Array(155596536) index="0" unique_id=1321014561]
|
||||
[node name="House_M_3" parent="." index="7" unique_id=1248182939 groups=["weather_node"]]
|
||||
|
||||
[node name="House_M_3|Cube_212|Dupli|" parent="House_M_3" index="0" unique_id=1251663089]
|
||||
surface_material_override/0 = ExtResource("6_pjysl")
|
||||
surface_material_override/1 = ExtResource("7_0r8cm")
|
||||
|
||||
[node name="Lanterne_003" parent="." index="8" unique_id=595596056]
|
||||
[node name="Lanterne_003" parent="." index="8" unique_id=913131637]
|
||||
surface_material_override/0 = ExtResource("7_0r8cm")
|
||||
surface_material_override/1 = ExtResource("6_pjysl")
|
||||
|
||||
[node name="MSH_Staccioanta_1_005" parent="." index="9" unique_id=1042751383]
|
||||
[node name="MSH_Staccioanta_1_005" parent="." index="9" unique_id=615838630]
|
||||
surface_material_override/0 = ExtResource("8_hmdr4")
|
||||
|
||||
[node name="PaliLuci_002" parent="." index="10" unique_id=1504995410]
|
||||
[node name="PaliLuci_002" parent="." index="10" unique_id=1928143564]
|
||||
surface_material_override/0 = ExtResource("3_aj7xj")
|
||||
surface_material_override/1 = ExtResource("3_aj7xj")
|
||||
|
||||
[node name="Panchina_002" parent="." index="11" unique_id=876085859]
|
||||
[node name="Panchina_002" parent="." index="11" unique_id=1561611835 groups=["weather_node"]]
|
||||
surface_material_override/0 = ExtResource("8_hmdr4")
|
||||
|
||||
[node name="Strada_006" parent="." index="12" unique_id=76888486]
|
||||
[node name="Strada_006" parent="." index="12" unique_id=1433458432 groups=["weather_node"]]
|
||||
surface_material_override/0 = ExtResource("5_ygc8c")
|
||||
|
||||
[node name="Water_005" parent="." index="13" unique_id=425747200]
|
||||
[node name="Water_005" parent="." index="13" unique_id=689760906]
|
||||
surface_material_override/0 = ExtResource("9_mekjb")
|
||||
|
||||
[node name="WoodPile_003" parent="." index="14" unique_id=1314797412]
|
||||
[node name="WoodPile_003" parent="." index="14" unique_id=363736169 groups=["weather_node"]]
|
||||
surface_material_override/0 = ExtResource("3_aj7xj")
|
||||
surface_material_override/1 = ExtResource("10_0ehik")
|
||||
surface_material_override/2 = ExtResource("4_nugyy")
|
||||
|
||||
[node name="grass" type="Node3D" parent="." index="15" unique_id=1300999061]
|
||||
[node name="grass" type="Node3D" parent="." index="15" unique_id=1300999061 groups=["weather_vegetables_node", "wind_node"]]
|
||||
|
||||
[node name="grass_plane" type="MeshInstance3D" parent="grass" index="0" unique_id=1396676607]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0)
|
||||
@@ -154,7 +166,7 @@ material_override = ExtResource("14_j41gr")
|
||||
cast_shadow = 0
|
||||
multimesh = SubResource("MultiMesh_j41gr")
|
||||
|
||||
[node name="flower" type="Node3D" parent="." index="16" unique_id=1920026518]
|
||||
[node name="flower" type="Node3D" parent="." index="16" unique_id=1920026518 groups=["weather_vegetables_node", "wind_node"]]
|
||||
|
||||
[node name="flower_plane" type="MeshInstance3D" parent="flower" index="0" unique_id=1851791775]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0)
|
||||
@@ -173,7 +185,7 @@ material_override = ExtResource("16_ubhkt")
|
||||
cast_shadow = 0
|
||||
multimesh = SubResource("MultiMesh_ubhkt")
|
||||
|
||||
[node name="rice" type="Node3D" parent="." index="17" unique_id=1607516177]
|
||||
[node name="rice" type="Node3D" parent="." index="17" unique_id=1607516177 groups=["weather_vegetables_node", "wind_node"]]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -43.663548, 0, 0)
|
||||
|
||||
[node name="rice_plane61" type="MeshInstance3D" parent="rice" index="0" unique_id=318301579]
|
||||
@@ -535,3 +547,204 @@ transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 51.4
|
||||
cast_shadow = 0
|
||||
mesh = SubResource("PlaneMesh_2qvfo")
|
||||
surface_material_override/0 = ExtResource("13_0ehik")
|
||||
|
||||
[node name="shadow" type="Node3D" parent="." index="18" unique_id=928263077]
|
||||
|
||||
[node name="Decal3" type="Decal" parent="shadow" index="0" unique_id=1295361737]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.73047, 0.118, 5.7403393)
|
||||
size = Vector3(8.417166, 0.5, 8.460018)
|
||||
texture_albedo = SubResource("GradientTexture2D_mekjb")
|
||||
|
||||
[node name="light" type="Node3D" parent="." index="19" unique_id=1126111386]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -17.076332, 0, 0)
|
||||
|
||||
[node name="OmniLight3D16" type="OmniLight3D" parent="light" index="0" unique_id=1500547968]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.468554, 3.054298, -1.8575647)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D18" type="OmniLight3D" parent="light" index="1" unique_id=1160050588]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13.137161, 3.054298, -1.8575647)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D24" type="OmniLight3D" parent="light" index="2" unique_id=2034038958]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.468554, 3.054298, -9.629128)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D25" type="OmniLight3D" parent="light" index="3" unique_id=1194713704]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13.137161, 3.054298, -9.629128)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D27" type="OmniLight3D" parent="light" index="4" unique_id=2097725369]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.758806, 3.054298, -7.491688)
|
||||
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
|
||||
|
||||
[node name="OmniLight3D17" type="OmniLight3D" parent="light" index="5" unique_id=1485814233]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.340023, 1.5362331, 8.849056)
|
||||
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_attenuation = 2.0
|
||||
|
||||
[node name="OmniLight3D19" type="OmniLight3D" parent="light" index="6" unique_id=1840060013]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.33099, 1.5362331, 8.849056)
|
||||
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_attenuation = 2.0
|
||||
|
||||
[node name="OmniLight3D20" type="OmniLight3D" parent="light" index="7" unique_id=600999676]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.283699, 1.5362331, 2.532782)
|
||||
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_attenuation = 2.0
|
||||
|
||||
[node name="OmniLight3D22" type="OmniLight3D" parent="light" index="8" unique_id=97153208]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.165903, 1.6695246, 6.7571626)
|
||||
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_attenuation = 2.0
|
||||
|
||||
[node name="OmniLight3D23" type="OmniLight3D" parent="light" index="9" unique_id=751447703]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.528693, 1.6695246, 6.7571626)
|
||||
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_attenuation = 2.0
|
||||
|
||||
[node name="OmniLight3D21" type="OmniLight3D" parent="light" index="10" unique_id=2130298413]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.274666, 1.5362331, 2.532782)
|
||||
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_attenuation = 2.0
|
||||
|
||||
[node name="Bambu" type="Node3D" parent="." index="20" unique_id=1267803823]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 40.689186, 0, 3.7492359)
|
||||
|
||||
[node name="Bambù15" parent="Bambu" index="0" unique_id=534355155 instance=ExtResource("18_0ehik")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -41.930557, 0, 4.164069)
|
||||
|
||||
[node name="Bambù16" parent="Bambu" index="1" unique_id=1402891721 instance=ExtResource("18_0ehik")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -41.930557, -0.2565055, 5.033106)
|
||||
|
||||
[node name="Bambù21" parent="Bambu" index="2" unique_id=1399559108 instance=ExtResource("18_0ehik")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -41.930557, 0, 5.876071)
|
||||
|
||||
[node name="Bambù22" parent="Bambu" index="3" unique_id=367054278 instance=ExtResource("18_0ehik")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -41.930557, -0.3562231, 2.3469117)
|
||||
|
||||
[node name="Bambù23" parent="Bambu" index="4" unique_id=1748533049 instance=ExtResource("18_0ehik")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -41.930557, 0, 3.1898768)
|
||||
|
||||
[node name="Bambù24" parent="Bambu" index="5" unique_id=432872406 instance=ExtResource("18_0ehik")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -41.609615, 4.7683716e-07, 2.511758)
|
||||
|
||||
[node name="Bambù25" parent="Bambu" index="6" unique_id=1999493993 instance=ExtResource("18_0ehik")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -41.609615, 4.7683716e-07, 3.3807948)
|
||||
|
||||
[node name="Bambù41" parent="Bambu" index="7" unique_id=791666402 instance=ExtResource("18_0ehik")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -41.609615, -0.2763033, 4.2237597)
|
||||
|
||||
[node name="Bambù42" parent="Bambu" index="8" unique_id=331110478 instance=ExtResource("18_0ehik")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -41.609615, 4.7683716e-07, 3.511758)
|
||||
|
||||
[node name="Bambù43" parent="Bambu" index="9" unique_id=634436332 instance=ExtResource("18_0ehik")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -41.609615, 0.26429868, 4.3807936)
|
||||
|
||||
[node name="Bambù44" parent="Bambu" index="10" unique_id=999189637 instance=ExtResource("18_0ehik")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -41.609615, 4.7683716e-07, 5.2237597)
|
||||
|
||||
[node name="Bambù45" parent="Bambu" index="11" unique_id=1115334506 instance=ExtResource("18_0ehik")]
|
||||
transform = Transform3D(-0.6353606, 0.043886177, -0.77096754, 0.10135725, 0.99448574, -0.026919715, 0.76553476, -0.09524688, -0.6363053, -40.778637, -0.42294633, 6.1322727)
|
||||
|
||||
[node name="Bambù46" parent="Bambu" index="12" unique_id=1777367086 instance=ExtResource("18_0ehik")]
|
||||
transform = Transform3D(-0.20654383, -0.019007795, -0.9782527, -0.09164066, 0.99579215, 0, 0.97413635, 0.089647725, -0.20741661, -39.501293, 0, 5.687169)
|
||||
|
||||
[node name="Bambù47" parent="Bambu" index="13" unique_id=2088614993 instance=ExtResource("18_0ehik")]
|
||||
transform = Transform3D(-0.20615207, -0.022868663, -0.9782527, -0.110254735, 0.99390334, 0, 0.9722886, 0.107857, -0.20741661, -40.35143, 0.32301903, 5.506916)
|
||||
|
||||
[node name="Bambù48" parent="Bambu" index="14" unique_id=70287242 instance=ExtResource("18_0ehik")]
|
||||
transform = Transform3D(0.88067085, -0.10227825, -0.46255592, 0.10135726, 0.9944858, -0.026919719, 0.46275857, -0.023175985, 0.88618135, -37.92891, -0.42294633, 6.0497293)
|
||||
|
||||
[node name="Bambù49" parent="Bambu" index="15" unique_id=194277700 instance=ExtResource("18_0ehik")]
|
||||
transform = Transform3D(0.99579215, 0.09164066, 0, -0.09164066, 0.99579215, 0, 0, 0, 1, -38.629272, 0, 4.8924837)
|
||||
|
||||
[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)
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
[ext_resource type="Material" uid="uid://0x17mj2v807r" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds2.tres" id="9_15guu"]
|
||||
[ext_resource type="Material" uid="uid://baot4vy3fqrdw" path="res://tgcc/chunk/prop/flower/bush.tres" id="10_qv1gu"]
|
||||
[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"]
|
||||
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_xdgj3"]
|
||||
size = Vector2(0.5, 0.5)
|
||||
@@ -58,34 +60,37 @@ size = Vector2(1, 1)
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_dmw3x"]
|
||||
size = Vector2(1, 1)
|
||||
|
||||
[node name="chunk_country_end_02" unique_id=1712924087 groups=["weather_vegetables_node", "wind_node"] instance=ExtResource("1_k5c0x")]
|
||||
[node name="chunk_country_end_02" unique_id=1712924087 node_paths=PackedStringArray("connection_left", "connection_right") instance=ExtResource("1_k5c0x")]
|
||||
script = ExtResource("2_dmw3x")
|
||||
west = true
|
||||
have_lamppost = true
|
||||
connection_left = [NodePath("PaloLuce/sx")]
|
||||
connection_right = [NodePath("PaloLuce/dx")]
|
||||
|
||||
[node name="Argini_007" parent="." index="0" unique_id=942724962]
|
||||
[node name="Argini_007" parent="." index="0" unique_id=177965672]
|
||||
surface_material_override/0 = ExtResource("2_25r6y")
|
||||
surface_material_override/1 = ExtResource("2_25r6y")
|
||||
|
||||
[node name="Chunk_012" parent="." index="1" unique_id=1078763244]
|
||||
[node name="Chunk_012" parent="." index="1" unique_id=1129018249]
|
||||
surface_material_override/0 = ExtResource("2_25r6y")
|
||||
|
||||
[node name="Chunk_041" parent="." index="2" unique_id=632981721]
|
||||
[node name="Chunk_041" parent="." index="2" unique_id=801339042 groups=["weather_node"]]
|
||||
surface_material_override/0 = ExtResource("3_gelvl")
|
||||
|
||||
[node name="Flower_006" parent="." index="3" unique_id=909770430]
|
||||
[node name="Flower_006" parent="." index="3" unique_id=1662862427 groups=["weather_node", "wind_node"]]
|
||||
visible = false
|
||||
|
||||
[node name="FlowerG_004" parent="." index="4" unique_id=381594965]
|
||||
[node name="FlowerG_004" parent="." index="4" unique_id=346905577 groups=["weather_node", "wind_node"]]
|
||||
visible = false
|
||||
|
||||
[node name="MSH_Staccioanta_1_006" parent="." index="5" unique_id=337379290]
|
||||
[node name="MSH_Staccioanta_1_006" parent="." index="5" unique_id=2035111258]
|
||||
surface_material_override/0 = ExtResource("4_t26nr")
|
||||
|
||||
[node name="Water_008" parent="." index="6" unique_id=2127881508]
|
||||
[node name="Water_008" parent="." index="6" unique_id=189541301]
|
||||
surface_material_override/0 = ExtResource("5_5xj2s")
|
||||
surface_material_override/1 = ExtResource("5_5xj2s")
|
||||
|
||||
[node name="grass" type="Node3D" parent="." index="7" unique_id=2026701592]
|
||||
[node name="grass" type="Node3D" parent="." index="7" unique_id=2026701592 groups=["weather_vegetables_node", "wind_node"]]
|
||||
|
||||
[node name="grass_plane" type="MeshInstance3D" parent="grass" index="0" unique_id=1366309139]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0)
|
||||
@@ -116,7 +121,7 @@ material_override = ExtResource("9_15guu")
|
||||
cast_shadow = 0
|
||||
multimesh = SubResource("MultiMesh_i5qpy")
|
||||
|
||||
[node name="flower" type="Node3D" parent="." index="8" unique_id=1929046466]
|
||||
[node name="flower" type="Node3D" parent="." index="8" unique_id=1929046466 groups=["weather_vegetables_node", "wind_node"]]
|
||||
|
||||
[node name="flower_plane" type="MeshInstance3D" parent="flower" index="0" unique_id=2041831035]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0)
|
||||
@@ -135,7 +140,7 @@ material_override = ExtResource("11_7l6eg")
|
||||
cast_shadow = 0
|
||||
multimesh = SubResource("MultiMesh_qv1gu")
|
||||
|
||||
[node name="rice" type="Node3D" parent="." index="9" unique_id=1332831028]
|
||||
[node name="rice" type="Node3D" parent="." index="9" unique_id=1332831028 groups=["weather_vegetables_node", "wind_node"]]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.24793, 0, 0)
|
||||
|
||||
[node name="rice_plane61" type="MeshInstance3D" parent="rice" index="0" unique_id=1243973490]
|
||||
@@ -689,3 +694,95 @@ transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 16.8
|
||||
cast_shadow = 0
|
||||
mesh = SubResource("PlaneMesh_dmw3x")
|
||||
surface_material_override/0 = ExtResource("8_i5qpy")
|
||||
|
||||
[node name="Bambu" type="Node3D" parent="." index="10" unique_id=1288418220]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 25.91278, 0, 0)
|
||||
|
||||
[node name="Bambù" parent="Bambu" index="0" unique_id=514636059 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -24.729073, 0, -3.7419598)
|
||||
|
||||
[node name="Bambù2" parent="Bambu" index="1" unique_id=471574480 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -24.729073, -0.2565055, -2.8729231)
|
||||
|
||||
[node name="Bambù3" parent="Bambu" index="2" unique_id=692280954 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -24.729073, 0, -2.0299575)
|
||||
|
||||
[node name="Bambù6" parent="Bambu" index="3" unique_id=871887186 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -24.729073, -0.3562231, -5.5591173)
|
||||
|
||||
[node name="Bambù7" parent="Bambu" index="4" unique_id=768813669 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -24.729073, 0, -4.716152)
|
||||
|
||||
[node name="Bambù8" parent="Bambu" index="5" unique_id=587831506 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -24.40813, 4.7683716e-07, -5.394271)
|
||||
|
||||
[node name="Bambù9" parent="Bambu" index="6" unique_id=403469656 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -24.40813, 4.7683716e-07, -4.525234)
|
||||
|
||||
[node name="Bambù10" parent="Bambu" index="7" unique_id=408565559 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -24.40813, -0.2763033, -3.6822689)
|
||||
|
||||
[node name="Bambù11" parent="Bambu" index="8" unique_id=1315065088 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -24.40813, 4.7683716e-07, -4.394271)
|
||||
|
||||
[node name="Bambù12" parent="Bambu" index="9" unique_id=1431647885 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -24.40813, 0.26429868, -3.5252345)
|
||||
|
||||
[node name="Bambù17" parent="Bambu" index="10" unique_id=1783933868 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -24.40813, 4.7683716e-07, -2.6822689)
|
||||
|
||||
[node name="Bambù15" parent="Bambu" index="11" unique_id=890309980 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -24.729073, 0, 3.538574)
|
||||
|
||||
[node name="Bambù16" parent="Bambu" index="12" unique_id=614098157 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -24.729073, -0.2565055, 4.407611)
|
||||
|
||||
[node name="Bambù21" parent="Bambu" index="13" unique_id=153704709 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -24.729073, 0, 5.250576)
|
||||
|
||||
[node name="Bambù22" parent="Bambu" index="14" unique_id=746959550 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -24.729073, -0.3562231, 1.7214165)
|
||||
|
||||
[node name="Bambù23" parent="Bambu" index="15" unique_id=1511191311 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -24.729073, 0, 2.5643816)
|
||||
|
||||
[node name="Bambù24" parent="Bambu" index="16" unique_id=973076067 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -24.40813, 4.7683716e-07, 1.8862629)
|
||||
|
||||
[node name="Bambù25" parent="Bambu" index="17" unique_id=551326409 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -24.40813, 4.7683716e-07, 2.7552996)
|
||||
|
||||
[node name="Bambù41" parent="Bambu" index="18" unique_id=288183091 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -24.40813, -0.2763033, 3.598265)
|
||||
|
||||
[node name="Bambù42" parent="Bambu" index="19" unique_id=666165992 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, -24.40813, 4.7683716e-07, 2.886263)
|
||||
|
||||
[node name="Bambù43" parent="Bambu" index="20" unique_id=889454067 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, -24.40813, 0.26429868, 3.7552993)
|
||||
|
||||
[node name="Bambù44" parent="Bambu" index="21" unique_id=647105334 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, -24.40813, 4.7683716e-07, 4.5982647)
|
||||
|
||||
[node name="Bambù45" parent="Bambu" index="22" unique_id=2111107795 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(0.88067085, -0.10227825, -0.46255592, 0.10135726, 0.9944858, -0.026919719, 0.46275857, -0.023175985, 0.88618135, -16.286797, -0.42294633, 9.557026)
|
||||
|
||||
[node name="Bambù46" parent="Bambu" index="23" unique_id=901101839 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(0.99579215, 0.09164066, 0, -0.09164066, 0.99579215, 0, 0, 0, 1, -16.987162, 0, 8.39978)
|
||||
|
||||
[node name="Bambù47" parent="Bambu" index="24" unique_id=488480749 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(0.99390334, 0.110254735, 0, -0.110254735, 0.99390334, 0, 0, 0, 1, -16.987162, 0.32301903, 9.268816)
|
||||
|
||||
[node name="Bambù48" parent="Bambu" index="25" unique_id=334979797 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(0.88067085, -0.10227825, -0.46255592, 0.10135726, 0.9944858, -0.026919719, 0.46275857, -0.023175985, 0.88618135, -23.286797, -0.42294633, 9.557026)
|
||||
|
||||
[node name="Bambù49" parent="Bambu" index="26" unique_id=225142251 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(0.99579215, 0.09164066, 0, -0.09164066, 0.99579215, 0, 0, 0, 1, -23.987162, 0, 8.39978)
|
||||
|
||||
[node name="Bambù50" parent="Bambu" index="27" unique_id=1233888059 instance=ExtResource("13_i5qpy")]
|
||||
transform = Transform3D(0.99390334, 0.110254735, 0, -0.110254735, 0.99390334, 0, 0, 0, 1, -23.987162, 0.32301903, 9.268816)
|
||||
|
||||
[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)
|
||||
|
||||
[editable path="PaloLuce"]
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -10,6 +10,7 @@
|
||||
[ext_resource type="Material" uid="uid://fnjxocmx16b7" path="res://tgcc/chunk/prop/grass/grass_chunk.tres" id="7_fmbov"]
|
||||
[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"]
|
||||
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_uf7g8"]
|
||||
size = Vector2(1, 1)
|
||||
@@ -41,27 +42,27 @@ instance_count = 32
|
||||
mesh = SubResource("PlaneMesh_qbybq")
|
||||
buffer = PackedFloat32Array(4.37551e-08, -1.001, 0, 1.4436365, -1.001, -4.37551e-08, -1.193285e-07, 5.90925e-07, 1.193285e-07, 5.2160145e-15, -1.001, 4.957038, 4.37551e-08, -1.001, 0, 2.3548617, -1.001, -4.37551e-08, -1.193285e-07, -1.0941294e-06, 1.193285e-07, 5.2160145e-15, -1.001, -9.178222, -4.37551e-08, 1.001, 0, -2.1539469, -1.001, -4.37551e-08, 1.193285e-07, 6.764908e-07, 1.193285e-07, 5.2160145e-15, 1.001, 5.6748157, 0, 0, 1.001, -3.522233, -1.001, -1.6308341e-07, 0, 1.1598428e-06, 1.6308341e-07, -1.001, 0, 9.7294655, 4.37551e-08, -1.001, 0, -2.3750048, -1.001, -4.37551e-08, -1.193285e-07, -8.002526e-07, 1.193285e-07, 5.2160145e-15, -1.001, -6.713005, 4.37551e-08, -1.001, 0, 2.2656145, -1.001, -4.37551e-08, -1.193285e-07, -8.30627e-07, 1.193285e-07, 5.2160145e-15, -1.001, -6.967804, 4.37551e-08, -1.001, 0, 9.983301, -1.001, -4.37551e-08, -1.193285e-07, -1.0638838e-06, 1.193285e-07, 5.2160145e-15, -1.001, -8.924504, 4.37551e-08, -1.001, 0, 9.870501, -1.001, -4.37551e-08, -1.193285e-07, -7.065843e-07, 1.193285e-07, 5.2160145e-15, -1.001, -5.927258, 4.37551e-08, -1.001, 0, 9.777409, -1.001, -4.37551e-08, -1.1932852e-07, -2.2159094e-07, 1.1932852e-07, 5.216015e-15, -1.001, -1.858839, 0, 0, -1.001, -7.2809563, -1.001, 7.557322e-08, 0, 1.1515594e-06, 7.557322e-08, 1.001, 0, 9.659981, 4.37551e-08, -1.001, 0, 1.5753043, -1.001, -4.37551e-08, -1.193285e-07, -7.415571e-07, 1.193285e-07, 5.2160145e-15, -1.001, -6.2206306, -4.37551e-08, 1.001, 0, -1.6459117, -1.001, -4.37551e-08, 1.1932852e-07, 2.0994337e-07, 1.1932852e-07, 5.216015e-15, 1.001, 1.7611322, -4.37551e-08, 1.001, 0, -1.6573532, -1.001, -4.37551e-08, 1.193285e-07, 5.4281963e-07, 1.193285e-07, 5.2160145e-15, 1.001, 4.553501, 4.37551e-08, -1.001, 0, -9.666366, -1.001, -4.37551e-08, -1.193285e-07, -6.3433015e-07, 1.193285e-07, 5.2160145e-15, -1.001, -5.321146, 4.37551e-08, -1.001, 0, 1.7112222, -1.001, -4.37551e-08, -1.1932852e-07, -4.0534985e-08, 1.1932852e-07, 5.216015e-15, -1.001, -0.3400321, 0, 0, -1.001, -6.320602, -1.001, 7.557317e-08, 0, -1.1410427e-06, 7.557317e-08, 1.001, 0, -9.57176, 4.37551e-08, -1.001, 0, -9.633287, -1.001, -4.37551e-08, -1.193285e-07, -6.835893e-07, 1.193285e-07, 5.2160145e-15, -1.001, -5.734362, 4.37551e-08, -1.001, 0, 9.493034, -1.001, -4.37551e-08, -1.193285e-07, -5.125066e-07, 1.193285e-07, 5.2160145e-15, -1.001, -4.2992167, 4.37551e-08, -1.001, 0, -2.1895092, -1.001, -4.37551e-08, -1.1932852e-07, -1.44122225e-08, 1.1932852e-07, 5.216015e-15, -1.001, -0.120898485, 4.37551e-08, -1.001, 0, 1.496448, -1.001, -4.37551e-08, -1.193285e-07, -8.960085e-07, 1.193285e-07, 5.2160145e-15, -1.001, -7.516263, 4.37551e-08, -1.001, 0, 9.70562, -1.001, -4.37551e-08, -1.1932852e-07, 8.5078625e-08, 1.1932852e-07, 5.216015e-15, -1.001, 0.71369076, 4.37551e-08, -1.001, 0, -2.4011462, -1.001, -4.37551e-08, -1.193285e-07, -5.77504e-07, 1.193285e-07, 5.2160145e-15, -1.001, -4.8444543, -4.37551e-08, 1.001, 0, 1.6878386, -1.001, -4.37551e-08, 1.193285e-07, 9.986915e-07, 1.193285e-07, 5.2160145e-15, 1.001, 8.37763, 4.37551e-08, -1.001, 0, -2.3136365, -1.001, -4.37551e-08, -1.193285e-07, -6.1744095e-07, 1.193285e-07, 5.2160145e-15, -1.001, -5.1794696, 4.37551e-08, -1.001, 0, 1.636618, -1.001, -4.37551e-08, -1.193285e-07, -9.449608e-07, 1.193285e-07, 5.2160145e-15, -1.001, -7.9269047, 4.37551e-08, -1.001, 0, -2.0947156, -1.001, -4.37551e-08, -1.1932852e-07, -1.478395e-07, 1.1932852e-07, 5.216015e-15, -1.001, -1.2401676, -4.37551e-08, 1.001, 0, 2.3230088, -1.001, -4.37551e-08, 1.1932852e-07, 7.131021e-09, 1.1932852e-07, 5.216015e-15, 1.001, 0.05981946, 4.37551e-08, -1.001, 0, -9.901721, -1.001, -4.37551e-08, -1.1932848e-07, 4.759366e-07, 1.1932848e-07, 5.2160132e-15, -1.001, 3.9924448, 4.37551e-08, -1.001, 0, 1.684428, -1.001, -4.37551e-08, -1.1932853e-07, 1.2612915e-07, 1.1932853e-07, 5.2160158e-15, -1.001, 1.0580478, 0, 0, -1.001, -8.30739, -1.001, 7.557322e-08, 0, 1.1448899e-06, 7.557322e-08, 1.001, 0, 9.604031, -4.37551e-08, 1.001, 0, -1.9201362, -1.001, -4.37551e-08, 1.1932852e-07, 1.6153854e-07, 1.1932852e-07, 5.216015e-15, 1.001, 1.3550835, -4.37551e-08, 1.001, 0, 2.1781456, -1.001, -4.37551e-08, 1.193285e-07, 6.70996e-07, 1.193285e-07, 5.2160145e-15, 1.001, 5.628721)
|
||||
|
||||
[node name="chunk_country_straight_03" unique_id=626808879 groups=["weather_vegetables_node", "wind_node"] instance=ExtResource("1_3g8xx")]
|
||||
[node name="chunk_country_straight_03" unique_id=626808879 instance=ExtResource("1_3g8xx")]
|
||||
script = ExtResource("2_e417f")
|
||||
north = true
|
||||
south = true
|
||||
|
||||
[node name="Argini_003" parent="." index="0" unique_id=509439881]
|
||||
[node name="Argini_003" parent="." index="0" unique_id=1178813592]
|
||||
surface_material_override/0 = ExtResource("2_8tada")
|
||||
|
||||
[node name="Grass_005" parent="." index="1" unique_id=188609017]
|
||||
[node name="Grass_005" parent="." index="1" unique_id=1427965126 groups=["weather_vegetables_node", "wind_node"]]
|
||||
surface_material_override/0 = ExtResource("2_8tada")
|
||||
|
||||
[node name="MSH_Staccioanta_1_002" parent="." index="2" unique_id=746941179]
|
||||
[node name="MSH_Staccioanta_1_002" parent="." index="2" unique_id=562234307]
|
||||
surface_material_override/0 = ExtResource("2_vjhke")
|
||||
|
||||
[node name="Strada_004" parent="." index="3" unique_id=604168900]
|
||||
[node name="Strada_004" parent="." index="3" unique_id=387203009 groups=["weather_node"]]
|
||||
surface_material_override/0 = ExtResource("3_bdsn7")
|
||||
|
||||
[node name="Water_004" parent="." index="4" unique_id=244513747]
|
||||
[node name="Water_004" parent="." index="4" unique_id=1258756459]
|
||||
surface_material_override/0 = ExtResource("5_uf7g8")
|
||||
|
||||
[node name="grass" type="Node3D" parent="." index="5" unique_id=1540226859]
|
||||
[node name="grass" type="Node3D" parent="." index="5" unique_id=1540226859 groups=["weather_vegetables_node", "wind_node"]]
|
||||
|
||||
[node name="grass_plane" type="MeshInstance3D" parent="grass" index="0" unique_id=1909807516]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0)
|
||||
@@ -92,7 +93,7 @@ material_override = ExtResource("9_5s0jh")
|
||||
cast_shadow = 0
|
||||
multimesh = SubResource("MultiMesh_e417f")
|
||||
|
||||
[node name="rice" type="Node3D" parent="." index="6" unique_id=1524870522]
|
||||
[node name="rice" type="Node3D" parent="." index="6" unique_id=1524870522 groups=["weather_vegetables_node", "wind_node"]]
|
||||
|
||||
[node name="rice_plane" type="MeshInstance3D" parent="rice" index="0" unique_id=629743434]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, -7.7446303, 0.1751585, 7.767477)
|
||||
@@ -813,3 +814,51 @@ transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 7.76
|
||||
cast_shadow = 0
|
||||
mesh = SubResource("PlaneMesh_uf7g8")
|
||||
surface_material_override/0 = ExtResource("8_mds5d")
|
||||
|
||||
[node name="Bambù" parent="rice" index="120" unique_id=514636059 instance=ExtResource("11_7lasv")]
|
||||
transform = Transform3D(0.99893546, 0.04613013, 0, -0.046085197, 0.9979625, 0.044125047, 0.002035494, -0.044078074, 0.999026, 1.5613108, 0, 3.5322976)
|
||||
|
||||
[node name="Bambù2" parent="rice" index="121" unique_id=752543604 instance=ExtResource("11_7lasv")]
|
||||
transform = Transform3D(0.9961886, 0.087225296, 0, -0.087225296, 0.9961886, 0, 0, 0, 1, 1.5613108, 0, 4.4013343)
|
||||
|
||||
[node name="Bambù3" parent="rice" index="122" unique_id=626876814 instance=ExtResource("11_7lasv")]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9999092, 0.013473534, 0, -0.013473534, 0.9999092, 1.5613108, 0, 5.2443)
|
||||
|
||||
[node name="Bambù4" parent="rice" index="123" unique_id=353360060 instance=ExtResource("11_7lasv")]
|
||||
transform = Transform3D(0.88067085, -0.10227825, -0.46255592, 0.10135726, 0.9944858, -0.026919719, 0.46275857, -0.023175985, 0.88618135, 1.5613108, 0, 6.0426917)
|
||||
|
||||
[node name="Bambù13" parent="rice" index="124" unique_id=1071426490 instance=ExtResource("11_7lasv")]
|
||||
transform = Transform3D(0.99579215, 0.09164066, 0, -0.09164066, 0.99579215, 0, 0, 0, 1, 1.5613108, 0, 6.7598033)
|
||||
|
||||
[node name="Bambù14" parent="rice" index="125" unique_id=60891063 instance=ExtResource("11_7lasv")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5613108, 0, 7.62884)
|
||||
|
||||
[node name="Bambù15" parent="rice" index="126" unique_id=211282112 instance=ExtResource("11_7lasv")]
|
||||
transform = Transform3D(0.99940896, -0.034376215, 0, 0.034376215, 0.99940896, 0, 0, 0, 1, 1.5613108, 0, 8.471806)
|
||||
|
||||
[node name="Bambù16" parent="rice" index="127" unique_id=1415490291 instance=ExtResource("11_7lasv")]
|
||||
transform = Transform3D(0.9034512, -0.065055236, -0.4237263, 0.0879059, 0.99552834, 0.034584507, 0.4195816, -0.06849342, 0.9051301, 1.5613108, 0, 9.270198)
|
||||
|
||||
[node name="Bambù5" parent="rice" index="128" unique_id=180186958 instance=ExtResource("11_7lasv")]
|
||||
transform = Transform3D(-0.9968909, -0.0431198, -0.06594836, -0.046085197, 0.9979625, 0.044125043, 0.06391133, 0.04702709, -0.9968469, -1.3111565, 0, 9.299224)
|
||||
|
||||
[node name="Bambù6" parent="rice" index="129" unique_id=556311280 instance=ExtResource("11_7lasv")]
|
||||
transform = Transform3D(-0.99401575, -0.087035045, -0.066012666, -0.0872253, 0.9961887, 0, 0.06576106, 0.0057579735, -0.99781877, -1.368524, 0, 8.432083)
|
||||
|
||||
[node name="Bambù7" parent="rice" index="130" unique_id=1735396649 instance=ExtResource("11_7lasv")]
|
||||
transform = Transform3D(-0.99781877, 0.00088942377, -0.06600667, 0, 0.9999092, 0.013473534, 0.06601266, 0.013444145, -0.99772817, -1.4241704, 0, 7.590956)
|
||||
|
||||
[node name="Bambù8" parent="rice" index="131" unique_id=2119839667 instance=ExtResource("11_7lasv")]
|
||||
transform = Transform3D(-0.9092978, 0.103585064, 0.4030478, 0.10135725, 0.99448574, -0.026919715, -0.40361372, 0.016373772, -0.9147829, -1.4768744, 0, 6.794306)
|
||||
|
||||
[node name="Bambù17" parent="rice" index="132" unique_id=129263408 instance=ExtResource("11_7lasv")]
|
||||
transform = Transform3D(-0.9936201, -0.09144077, -0.06601266, -0.09164066, 0.99579215, 0, 0.065734886, 0.0060494435, -0.99781877, -1.5242128, 0, 6.0787582)
|
||||
|
||||
[node name="Bambù18" parent="rice" index="133" unique_id=323700108 instance=ExtResource("11_7lasv")]
|
||||
transform = Transform3D(-0.99781877, 0, -0.06601266, 0, 1, 0, 0.06601266, 0, -0.99781877, -1.5815802, 0, 5.2116175)
|
||||
|
||||
[node name="Bambù19" parent="rice" index="134" unique_id=75456771 instance=ExtResource("11_7lasv")]
|
||||
transform = Transform3D(-0.99722904, 0.034301233, -0.06601266, 0.034376215, 0.99940896, 0, 0.06597364, -0.0022692652, -0.99781877, -1.6372266, 0, 4.37049)
|
||||
|
||||
[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)
|
||||
|
||||
712
tgcc/chunk/countryside/scene/chunk_test_river_02.tscn
Normal file
712
tgcc/chunk/countryside/scene/chunk_test_river_02.tscn
Normal file
File diff suppressed because one or more lines are too long
24
tgcc/chunk/material/railway_chunk.tres
Normal file
24
tgcc/chunk/material/railway_chunk.tres
Normal file
@@ -0,0 +1,24 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://b4luvp3fi0p43"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="1_r420k"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_r420k")
|
||||
shader_parameter/albedo_color = Color(0.29857817, 0.19353586, 0.0940836, 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
|
||||
24
tgcc/chunk/material/sign.tres
Normal file
24
tgcc/chunk/material/sign.tres
Normal file
@@ -0,0 +1,24 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://xrxl0d5h6f6s"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="1_rl1n5"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_rl1n5")
|
||||
shader_parameter/albedo_color = Color(0.74859685, 0.72101974, 0.57504904, 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
|
||||
24
tgcc/chunk/material/trainalert.tres
Normal file
24
tgcc/chunk/material/trainalert.tres
Normal file
@@ -0,0 +1,24 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://chppialx3cyph"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="1_vresk"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_vresk")
|
||||
shader_parameter/albedo_color = Color(0.48413807, 0.37183177, 0.06357419, 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
|
||||
24
tgcc/chunk/material/vase.tres
Normal file
24
tgcc/chunk/material/vase.tres
Normal file
@@ -0,0 +1,24 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://c8fkccysike5l"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="1_ndadq"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_ndadq")
|
||||
shader_parameter/albedo_color = Color(0.49797475, 0.22462493, 0.1484783, 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
|
||||
BIN
tgcc/chunk/prop/Tori/Tori.fbx
Normal file
BIN
tgcc/chunk/prop/Tori/Tori.fbx
Normal file
Binary file not shown.
@@ -3,13 +3,13 @@
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://ch7aa7s6dk0bl"
|
||||
path="res://.godot/imported/Blockout_Stazione.fbx-29b82f4e4e38d5b32258c0185d53d2a1.scn"
|
||||
uid="uid://b0yye0log7sa6"
|
||||
path="res://.godot/imported/Tori.fbx-b2854ae7863560e339ba357fadcbc430.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://tgcc/chunk/railway/Blockout_Stazione.fbx"
|
||||
dest_files=["res://.godot/imported/Blockout_Stazione.fbx-29b82f4e4e38d5b32258c0185d53d2a1.scn"]
|
||||
source_file="res://tgcc/chunk/prop/Tori/Tori.fbx"
|
||||
dest_files=["res://.godot/imported/Tori.fbx-b2854ae7863560e339ba357fadcbc430.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
26
tgcc/chunk/prop/Tori/Tori.tres
Normal file
26
tgcc/chunk/prop/Tori/Tori.tres
Normal file
@@ -0,0 +1,26 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://deblipaox1q6w"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="1_i6l7w"]
|
||||
[ext_resource type="Texture2D" uid="uid://cpxauttht6wns" path="res://tgcc/chunk/prop/tree/bambù/Palette_train.png" id="2_28b1w"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_i6l7w")
|
||||
shader_parameter/albedo_color = Color(1, 1, 1, 1)
|
||||
shader_parameter/albedo_texture = ExtResource("2_28b1w")
|
||||
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 = 5.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
|
||||
9
tgcc/chunk/prop/Tori/tori.tscn
Normal file
9
tgcc/chunk/prop/Tori/tori.tscn
Normal file
@@ -0,0 +1,9 @@
|
||||
[gd_scene format=3 uid="uid://dluogg3j2kcgs"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://b0yye0log7sa6" path="res://tgcc/chunk/prop/Tori/Tori.fbx" id="1_ywln1"]
|
||||
[ext_resource type="Material" uid="uid://deblipaox1q6w" path="res://tgcc/chunk/prop/Tori/Tori.tres" id="2_61bcj"]
|
||||
|
||||
[node name="Tori" unique_id=426190097 instance=ExtResource("1_ywln1")]
|
||||
|
||||
[node name="Sphere_009" parent="." index="0" unique_id=1941895727]
|
||||
surface_material_override/0 = ExtResource("2_61bcj")
|
||||
BIN
tgcc/chunk/prop/flower/Flower.fbx
Normal file
BIN
tgcc/chunk/prop/flower/Flower.fbx
Normal file
Binary file not shown.
@@ -3,13 +3,13 @@
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://bms3v177vjwnf"
|
||||
path="res://.godot/imported/Blockout_Stazione2.fbx-8d26d71b74d019adbedc07c6f496a325.scn"
|
||||
uid="uid://b63ps8fweidbi"
|
||||
path="res://.godot/imported/Flower.fbx-d3bae34346f99d8286dd00c38ed1b300.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://tgcc/chunk/railway/Blockout_Stazione2.fbx"
|
||||
dest_files=["res://.godot/imported/Blockout_Stazione2.fbx-8d26d71b74d019adbedc07c6f496a325.scn"]
|
||||
source_file="res://tgcc/chunk/prop/flower/Flower.fbx"
|
||||
dest_files=["res://.godot/imported/Flower.fbx-d3bae34346f99d8286dd00c38ed1b300.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
[ext_resource type="Shader" uid="uid://8l8glwvvs7fb" path="res://core/daynight/grass_leaves.gdshader" id="1_yw70r"]
|
||||
[ext_resource type="Texture2D" uid="uid://bm0roy74xo3ce" path="res://tgcc/chunk/prop/flower/bush_alpha.png" id="2_rv6bf"]
|
||||
[ext_resource type="Texture2D" path="res://tgcc/chunk/prop/flower/bush_colornoise.tres" id="3_t3pfi"]
|
||||
[ext_resource type="Texture2D" uid="uid://bkuv31yvqmqr2" path="res://tgcc/chunk/prop/flower/bush_colornoise.tres" id="3_t3pfi"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_yw70r")
|
||||
shader_parameter/billboard_enabled = true
|
||||
shader_parameter/wind_enabled = false
|
||||
shader_parameter/wind_enabled = true
|
||||
shader_parameter/base_color = Color(0.2509804, 0.44705883, 0.20392157, 1)
|
||||
shader_parameter/alpha_texture = ExtResource("2_rv6bf")
|
||||
shader_parameter/leaves_scale = 0.65
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_28e45")
|
||||
shader_parameter/billboard_enabled = true
|
||||
shader_parameter/wind_enabled = false
|
||||
shader_parameter/wind_enabled = true
|
||||
shader_parameter/base_color = Color(0, 0.42745098, 0.9843137, 1)
|
||||
shader_parameter/alpha_texture = ExtResource("2_4kf4f")
|
||||
shader_parameter/leaves_scale = 0.365
|
||||
|
||||
87
tgcc/chunk/prop/flower/flower.tscn
Normal file
87
tgcc/chunk/prop/flower/flower.tscn
Normal file
File diff suppressed because one or more lines are too long
@@ -16,7 +16,7 @@ seamless = true
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_a5yde")
|
||||
shader_parameter/billboard_enabled = true
|
||||
shader_parameter/wind_enabled = false
|
||||
shader_parameter/wind_enabled = true
|
||||
shader_parameter/base_color = Color(0.3882353, 0.52156866, 0.20784314, 1)
|
||||
shader_parameter/alpha_texture = ExtResource("2_4hc02")
|
||||
shader_parameter/leaves_scale = 0.65
|
||||
@@ -24,13 +24,13 @@ shader_parameter/rotation_degrees = 180.0
|
||||
shader_parameter/texture_offset = Vector2(0, 0)
|
||||
shader_parameter/opacity = 1.0
|
||||
shader_parameter/color_variance_noise = SubResource("NoiseTexture2D_4hc02")
|
||||
shader_parameter/variance_scale = 0.15
|
||||
shader_parameter/variance_scale = 0.06
|
||||
shader_parameter/variance_color = Color(0.3, 0.5, 0.2, 1)
|
||||
shader_parameter/variance_intensity = 0.750000035625
|
||||
shader_parameter/variance_intensity = 0.350000016625
|
||||
shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1)
|
||||
shader_parameter/height_min = 0.0
|
||||
shader_parameter/height_max = 5.0
|
||||
shader_parameter/shadow_intensity = 0.70000003325
|
||||
shader_parameter/shadow_intensity = 0.6000000285
|
||||
shader_parameter/highlight_intensity = 0.10000000475
|
||||
shader_parameter/light_steps = 8.600000361
|
||||
shader_parameter/random_mix = 0.0150000007125
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_0cuwq")
|
||||
shader_parameter/billboard_enabled = true
|
||||
shader_parameter/wind_enabled = false
|
||||
shader_parameter/wind_enabled = true
|
||||
shader_parameter/base_color = Color(0.103467666, 0.34917185, 0.14285779, 1)
|
||||
shader_parameter/alpha_texture = ExtResource("2_ldsj3")
|
||||
shader_parameter/leaves_scale = 0.92
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_vpd27")
|
||||
shader_parameter/billboard_enabled = true
|
||||
shader_parameter/wind_enabled = false
|
||||
shader_parameter/wind_enabled = true
|
||||
shader_parameter/base_color = Color(0.14700681, 0.45590013, 0.22758594, 1)
|
||||
shader_parameter/alpha_texture = ExtResource("2_wl0p2")
|
||||
shader_parameter/leaves_scale = 0.46
|
||||
@@ -21,3 +21,4 @@ shader_parameter/highlight_intensity = 0.0
|
||||
shader_parameter/light_steps = 10.0
|
||||
shader_parameter/random_mix = 0.010000000475
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/wetness_darkening = 0.25
|
||||
|
||||
Binary file not shown.
@@ -1,17 +1,35 @@
|
||||
[gd_scene format=3 uid="uid://bgb4pfflokl5s"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://c87qfar8b0ak0" path="res://tgcc/chunk/prop/pylon/pylon.fbx" id="1_lbnkk"]
|
||||
[ext_resource type="Shader" uid="uid://btf3qpe7kwqig" path="res://core/snow.gdshader" id="2_fle1d"]
|
||||
[ext_resource type="Material" uid="uid://buxlrrpn7rdgs" path="res://tgcc/chunk/material/wood.tres" id="2_8ym60"]
|
||||
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="3_88p0r"]
|
||||
[ext_resource type="Material" uid="uid://cn20mp8ep3yxu" path="res://tgcc/chunk/material/wires.tres" id="4_t1abq"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ffi7j"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_fle1d")
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_wpudh"]
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_21pk4"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("3_88p0r")
|
||||
shader_parameter/albedo_color = Color(0.35906908, 0.35906908, 0.35906908, 1)
|
||||
shader_parameter/albedo_color = Color(0.2864734, 0.29280058, 0.2625562, 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_equlh"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("3_88p0r")
|
||||
shader_parameter/albedo_color = Color(0.45348388, 0.45351064, 0.42169568, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
@@ -29,32 +47,17 @@ 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_q1sqc"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("3_88p0r")
|
||||
shader_parameter/albedo_color = Color(0.35056442, 0.17908111, 0.051149555, 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="PaloLuce" unique_id=830472879 instance=ExtResource("1_lbnkk")]
|
||||
|
||||
[node name="PaloLuce" unique_id=1607500596 instance=ExtResource("1_lbnkk")]
|
||||
[node name="Pylon" parent="." index="0" unique_id=938151162]
|
||||
transform = Transform3D(9.360515e-06, -3.932214e-07, -100, -86.173874, 50.735218, -8.265819e-06, 50.735218, 86.173874, 4.410226e-06, -0.61381716, 6.4698167, 0.52650124)
|
||||
surface_material_override/0 = ExtResource("2_8ym60")
|
||||
surface_material_override/1 = SubResource("ShaderMaterial_21pk4")
|
||||
surface_material_override/2 = ExtResource("4_t1abq")
|
||||
surface_material_override/3 = SubResource("ShaderMaterial_equlh")
|
||||
|
||||
[node name="Cube" parent="." index="0" unique_id=1142687027]
|
||||
material_overlay = SubResource("ShaderMaterial_ffi7j")
|
||||
surface_material_override/0 = SubResource("ShaderMaterial_wpudh")
|
||||
surface_material_override/1 = SubResource("ShaderMaterial_q1sqc")
|
||||
[node name="dx" type="Marker3D" parent="." index="1" unique_id=817453817]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 0.6448493, 7.234124, -0.002785494)
|
||||
|
||||
[node name="Marker3D" type="Marker3D" parent="." index="1" unique_id=817453817]
|
||||
[node name="sx" type="Marker3D" parent="." index="2" unique_id=1025556497]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -0.61281574, 7.234124, -0.002785553)
|
||||
|
||||
BIN
tgcc/chunk/prop/tree/bambù/Bambù.fbx
Normal file
BIN
tgcc/chunk/prop/tree/bambù/Bambù.fbx
Normal file
Binary file not shown.
44
tgcc/chunk/prop/tree/bambù/Bambù.fbx.import
Normal file
44
tgcc/chunk/prop/tree/bambù/Bambù.fbx.import
Normal file
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://cbdgxbaa5prt3"
|
||||
path="res://.godot/imported/Bambù.fbx-185461b004716dcd06053cac2ce96f9e.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://tgcc/chunk/prop/tree/bambù/Bambù.fbx"
|
||||
dest_files=["res://.godot/imported/Bambù.fbx-185461b004716dcd06053cac2ce96f9e.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
|
||||
26
tgcc/chunk/prop/tree/bambù/Bambù.tres
Normal file
26
tgcc/chunk/prop/tree/bambù/Bambù.tres
Normal file
@@ -0,0 +1,26 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://b2tlen8e88l70"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="1_5dp25"]
|
||||
[ext_resource type="Texture2D" uid="uid://cpxauttht6wns" path="res://tgcc/chunk/prop/tree/bambù/Palette_train.png" id="2_b02h2"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_5dp25")
|
||||
shader_parameter/albedo_color = Color(0.64151007, 0.59077054, 0.38230544, 1)
|
||||
shader_parameter/albedo_texture = ExtResource("2_b02h2")
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 0.61)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 5.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
|
||||
BIN
tgcc/chunk/prop/tree/bambù/Palette_train.png
Normal file
BIN
tgcc/chunk/prop/tree/bambù/Palette_train.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
41
tgcc/chunk/prop/tree/bambù/Palette_train.png.import
Normal file
41
tgcc/chunk/prop/tree/bambù/Palette_train.png.import
Normal file
@@ -0,0 +1,41 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cpxauttht6wns"
|
||||
path.s3tc="res://.godot/imported/Palette_train.png-dc8200e49f65ae7ef328a26e779b17c6.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://tgcc/chunk/prop/tree/bambù/Palette_train.png"
|
||||
dest_files=["res://.godot/imported/Palette_train.png-dc8200e49f65ae7ef328a26e779b17c6.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
BIN
tgcc/chunk/prop/tree/bambù/bambù.material
Normal file
BIN
tgcc/chunk/prop/tree/bambù/bambù.material
Normal file
Binary file not shown.
14
tgcc/chunk/prop/tree/bambù/bambù.tscn
Normal file
14
tgcc/chunk/prop/tree/bambù/bambù.tscn
Normal file
@@ -0,0 +1,14 @@
|
||||
[gd_scene format=3 uid="uid://c7hdw2g6sbygr"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://cbdgxbaa5prt3" path="res://tgcc/chunk/prop/tree/bambù/Bambù.fbx" id="1_rrnp2"]
|
||||
[ext_resource type="Material" uid="uid://b2tlen8e88l70" path="res://tgcc/chunk/prop/tree/bambù/Bambù.tres" id="2_r5ebk"]
|
||||
[ext_resource type="Material" uid="uid://1bbbnb0w665f" path="res://tgcc/chunk/prop/tree/bambù/bambù.material" id="2_ul8mj"]
|
||||
|
||||
[node name="Bambù" unique_id=514636059 instance=ExtResource("1_rrnp2")]
|
||||
|
||||
[node name="Foglie_001" parent="." index="0" unique_id=598949619]
|
||||
cast_shadow = 0
|
||||
surface_material_override/0 = ExtResource("2_ul8mj")
|
||||
|
||||
[node name="bambù" parent="." index="1" unique_id=951122094]
|
||||
surface_material_override/0 = ExtResource("2_r5ebk")
|
||||
@@ -8,7 +8,7 @@ render_priority = 0
|
||||
shader = ExtResource("1_2uy3m")
|
||||
shader_parameter/billboard_enabled = true
|
||||
shader_parameter/wind_enabled = true
|
||||
shader_parameter/base_color = Color(0.9549616, 0.54784274, 0.71385026, 1)
|
||||
shader_parameter/base_color = Color(0.30912602, 0.8134186, 0.4227931, 1)
|
||||
shader_parameter/alpha_texture = ExtResource("2_2uy3m")
|
||||
shader_parameter/leaves_scale = 1.375
|
||||
shader_parameter/rotation_degrees = 180.0
|
||||
|
||||
24
tgcc/chunk/prop/tree/leaves_tree_small.tres
Normal file
24
tgcc/chunk/prop/tree/leaves_tree_small.tres
Normal file
@@ -0,0 +1,24 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://bamlo2a2cen7j"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://cs0xl7pc6e26h" path="res://core/daynight/tree_leaves.gdshader" id="1_1pbmj"]
|
||||
[ext_resource type="Texture2D" uid="uid://c3grftlmap4q5" path="res://tgcc/chunk/prop/tree/leaf1_alpha.png" id="2_iw3ik"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_1pbmj")
|
||||
shader_parameter/billboard_enabled = true
|
||||
shader_parameter/wind_enabled = true
|
||||
shader_parameter/base_color = Color(0.9549616, 0.54784274, 0.71385026, 1)
|
||||
shader_parameter/alpha_texture = ExtResource("2_iw3ik")
|
||||
shader_parameter/leaves_scale = 0.5
|
||||
shader_parameter/rotation_degrees = 180.0
|
||||
shader_parameter/texture_offset = Vector2(0, 0)
|
||||
shader_parameter/opacity = 1.0
|
||||
shader_parameter/height_min = 3.1
|
||||
shader_parameter/height_max = 5.43
|
||||
shader_parameter/shadow_intensity = 0.800000038
|
||||
shader_parameter/highlight_intensity = 0.0
|
||||
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
|
||||
@@ -4,12 +4,12 @@ importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://pe0vusvl82ng"
|
||||
path="res://.godot/imported/Chunk_Curva_1.fbx-6461531d4e68b048c45dce9848d39592.scn"
|
||||
path="res://.godot/imported/chunk_railway_curve.fbx-41fa8a99c6aff0d3d554ada5a807267a.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://tgcc/chunk/railway/Chunk_Curva_1.fbx"
|
||||
dest_files=["res://.godot/imported/Chunk_Curva_1.fbx-6461531d4e68b048c45dce9848d39592.scn"]
|
||||
source_file="res://tgcc/chunk/railway/mesh/chunk_railway_curve.fbx"
|
||||
dest_files=["res://.godot/imported/chunk_railway_curve.fbx-41fa8a99c6aff0d3d554ada5a807267a.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://bms3v177vjwnf"
|
||||
path="res://.godot/imported/chunk_railway_station_doubleside.fbx-fc6bf87bd0e0b7d9b9f3b06fdece3f79.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://tgcc/chunk/railway/mesh/chunk_railway_station_doubleside.fbx"
|
||||
dest_files=["res://.godot/imported/chunk_railway_station_doubleside.fbx-fc6bf87bd0e0b7d9b9f3b06fdece3f79.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
|
||||
@@ -4,12 +4,12 @@ importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://cjm1u2isypr0r"
|
||||
path="res://.godot/imported/Blockout_Stazione3Hero.fbx-77a58b666f28036f132c261a9a2510a6.scn"
|
||||
path="res://.godot/imported/chunk_railway_station_hero.fbx-92bc37a43eb2606f167f5873e7be9e2c.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://tgcc/chunk/railway/Blockout_Stazione3Hero.fbx"
|
||||
dest_files=["res://.godot/imported/Blockout_Stazione3Hero.fbx-77a58b666f28036f132c261a9a2510a6.scn"]
|
||||
source_file="res://tgcc/chunk/railway/mesh/chunk_railway_station_hero.fbx"
|
||||
dest_files=["res://.godot/imported/chunk_railway_station_hero.fbx-92bc37a43eb2606f167f5873e7be9e2c.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://ch7aa7s6dk0bl"
|
||||
path="res://.godot/imported/chunk_railway_station_oneside.fbx-9b4f7f8f8796cf8650832ab13f48d898.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://tgcc/chunk/railway/mesh/chunk_railway_station_oneside.fbx"
|
||||
dest_files=["res://.godot/imported/chunk_railway_station_oneside.fbx-9b4f7f8f8796cf8650832ab13f48d898.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
|
||||
@@ -4,12 +4,12 @@ importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://bwqkhdmo808bd"
|
||||
path="res://.godot/imported/Chunk_Rettilineo_1.fbx-2c3b2219729ae5b696b5d3cd9b955140.scn"
|
||||
path="res://.godot/imported/chunk_railway_straight.fbx-3d9dae465597c158eaed37f2a9c7eb71.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://tgcc/chunk/railway/Chunk_Rettilineo_1.fbx"
|
||||
dest_files=["res://.godot/imported/Chunk_Rettilineo_1.fbx-2c3b2219729ae5b696b5d3cd9b955140.scn"]
|
||||
source_file="res://tgcc/chunk/railway/mesh/chunk_railway_straight.fbx"
|
||||
dest_files=["res://.godot/imported/chunk_railway_straight.fbx-3d9dae465597c158eaed37f2a9c7eb71.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
@@ -4,12 +4,12 @@ importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://cryp23hm8t5df"
|
||||
path="res://.godot/imported/Chunk_Rettilineo_F.fbx-5118fb90018b318955a874195de3fba6.scn"
|
||||
path="res://.godot/imported/chunk_railway_straight_2.fbx-d20d3670d40ca57b885f79f338035017.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://tgcc/chunk/railway/Chunk_Rettilineo_F.fbx"
|
||||
dest_files=["res://.godot/imported/Chunk_Rettilineo_F.fbx-5118fb90018b318955a874195de3fba6.scn"]
|
||||
source_file="res://tgcc/chunk/railway/mesh/chunk_railway_straight_2.fbx"
|
||||
dest_files=["res://.godot/imported/chunk_railway_straight_2.fbx-d20d3670d40ca57b885f79f338035017.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
@@ -4,12 +4,12 @@ importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://c8fvg4ncjgsp3"
|
||||
path="res://.godot/imported/Chunk_Rettilineo_Ponte.fbx-0de979a755ed0080eba82443c01e67a9.scn"
|
||||
path="res://.godot/imported/chunk_railway_straight_bridge.fbx-9ebfeedd2ae5a1efd305d2cb84077550.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://tgcc/chunk/railway/Chunk_Rettilineo_Ponte.fbx"
|
||||
dest_files=["res://.godot/imported/Chunk_Rettilineo_Ponte.fbx-0de979a755ed0080eba82443c01e67a9.scn"]
|
||||
source_file="res://tgcc/chunk/railway/mesh/chunk_railway_straight_bridge.fbx"
|
||||
dest_files=["res://.godot/imported/chunk_railway_straight_bridge.fbx-9ebfeedd2ae5a1efd305d2cb84077550.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
415
tgcc/chunk/railway/scene/chunk_railway_curve.tscn
Normal file
415
tgcc/chunk/railway/scene/chunk_railway_curve.tscn
Normal file
File diff suppressed because one or more lines are too long
555
tgcc/chunk/railway/scene/chunk_railway_curve_2.tscn
Normal file
555
tgcc/chunk/railway/scene/chunk_railway_curve_2.tscn
Normal file
File diff suppressed because one or more lines are too long
216
tgcc/chunk/railway/scene/chunk_railway_station_doubleside.tscn
Normal file
216
tgcc/chunk/railway/scene/chunk_railway_station_doubleside.tscn
Normal file
File diff suppressed because one or more lines are too long
812
tgcc/chunk/railway/scene/chunk_railway_station_hero.tscn
Normal file
812
tgcc/chunk/railway/scene/chunk_railway_station_hero.tscn
Normal file
File diff suppressed because one or more lines are too long
192
tgcc/chunk/railway/scene/chunk_railway_station_oneside.tscn
Normal file
192
tgcc/chunk/railway/scene/chunk_railway_station_oneside.tscn
Normal file
File diff suppressed because one or more lines are too long
93
tgcc/chunk/railway/scene/chunk_railway_straight.tscn
Normal file
93
tgcc/chunk/railway/scene/chunk_railway_straight.tscn
Normal file
File diff suppressed because one or more lines are too long
86
tgcc/chunk/railway/scene/chunk_railway_straight_2.tscn
Normal file
86
tgcc/chunk/railway/scene/chunk_railway_straight_2.tscn
Normal file
File diff suppressed because one or more lines are too long
130
tgcc/chunk/railway/scene/chunk_railway_straight_bridge.tscn
Normal file
130
tgcc/chunk/railway/scene/chunk_railway_straight_bridge.tscn
Normal file
File diff suppressed because one or more lines are too long
BIN
tgcc/chunk/river/mesh/Chunk_R_L_1.fbx
Normal file
BIN
tgcc/chunk/river/mesh/Chunk_R_L_1.fbx
Normal file
Binary file not shown.
44
tgcc/chunk/river/mesh/Chunk_R_L_1.fbx.import
Normal file
44
tgcc/chunk/river/mesh/Chunk_R_L_1.fbx.import
Normal file
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://d0rca3oo1k30n"
|
||||
path="res://.godot/imported/Chunk_R_L_1.fbx-f315be000da513deddf8c1537ffe1a0f.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://tgcc/chunk/river/mesh/Chunk_R_L_1.fbx"
|
||||
dest_files=["res://.godot/imported/Chunk_R_L_1.fbx-f315be000da513deddf8c1537ffe1a0f.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
|
||||
BIN
tgcc/chunk/river/mesh/Chunk_R_R_1.fbx
Normal file
BIN
tgcc/chunk/river/mesh/Chunk_R_R_1.fbx
Normal file
Binary file not shown.
44
tgcc/chunk/river/mesh/Chunk_R_R_1.fbx.import
Normal file
44
tgcc/chunk/river/mesh/Chunk_R_R_1.fbx.import
Normal file
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://bryeoru3tfbcq"
|
||||
path="res://.godot/imported/Chunk_R_R_1.fbx-3c3c617da890fc412ffcc0f1d56c3abe.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://tgcc/chunk/river/mesh/Chunk_R_R_1.fbx"
|
||||
dest_files=["res://.godot/imported/Chunk_R_R_1.fbx-3c3c617da890fc412ffcc0f1d56c3abe.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
|
||||
730
tgcc/chunk/river/scene/chunk_r_l_1.tscn
Normal file
730
tgcc/chunk/river/scene/chunk_r_l_1.tscn
Normal file
File diff suppressed because one or more lines are too long
829
tgcc/chunk/river/scene/chunk_r_r_1.tscn
Normal file
829
tgcc/chunk/river/scene/chunk_r_r_1.tscn
Normal file
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user