biome generator
This commit is contained in:
5
core/biome_generator/biome.gd
Normal file
5
core/biome_generator/biome.gd
Normal file
@@ -0,0 +1,5 @@
|
||||
extends Resource
|
||||
class_name Biome
|
||||
|
||||
@export var name: String = "New Biome"
|
||||
@export var available_chunks: Array[PackedScene]
|
||||
1
core/biome_generator/biome.gd.uid
Normal file
1
core/biome_generator/biome.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://wv6kcqkibium
|
||||
302
core/biome_generator/biome_generator.gd
Normal file
302
core/biome_generator/biome_generator.gd
Normal file
@@ -0,0 +1,302 @@
|
||||
extends Node3D
|
||||
|
||||
@export_group("Rails")
|
||||
@export var rail_path: Path3D
|
||||
|
||||
@export_group("Biomes")
|
||||
@export var biome_list: Array[Biome]
|
||||
|
||||
@export_group("Grid and Area")
|
||||
@export var chunk_size: float = 20.0
|
||||
@export var eye_line: int = 3
|
||||
@export var district_scale: float = 0.05
|
||||
|
||||
var board: Dictionary = {}
|
||||
var last_pos_train: Vector2i = Vector2i(999999, 999999)
|
||||
var noise_generator: FastNoiseLite
|
||||
var altitude_generator: FastNoiseLite
|
||||
|
||||
var manual_biome: Biome = null
|
||||
|
||||
func _ready() -> void:
|
||||
if biome_list.is_empty() or rail_path == null: return
|
||||
|
||||
noise_generator = FastNoiseLite.new()
|
||||
noise_generator.noise_type = FastNoiseLite.TYPE_PERLIN
|
||||
noise_generator.seed = randi()
|
||||
noise_generator.frequency = district_scale
|
||||
|
||||
altitude_generator = FastNoiseLite.new()
|
||||
altitude_generator.noise_type = FastNoiseLite.TYPE_PERLIN
|
||||
altitude_generator.seed = randi()
|
||||
altitude_generator.frequency = district_scale * 0.5
|
||||
|
||||
_update_set_pieces()
|
||||
|
||||
func _update_set_pieces() -> void:
|
||||
var set_pieces = get_tree().get_nodes_in_group("set_pieces")
|
||||
|
||||
print("🔍 Found ", set_pieces.size(), " in 'set_pieces' group.")
|
||||
|
||||
for sp in set_pieces:
|
||||
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
|
||||
else:
|
||||
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()
|
||||
sp.process_mode = Node.PROCESS_MODE_INHERIT
|
||||
print(" ✅ Temple is visible.")
|
||||
else:
|
||||
sp.hide()
|
||||
sp.process_mode = Node.PROCESS_MODE_DISABLED
|
||||
print(" ❌ Temple is a invisible ghost.")
|
||||
|
||||
func _destroy_and_regenrate_world() -> void:
|
||||
#1. Turn off old temples
|
||||
_update_set_pieces()
|
||||
|
||||
#2. 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()
|
||||
|
||||
#3. Clean board
|
||||
board.clear()
|
||||
|
||||
#4. Create train
|
||||
last_pos_train = Vector2i(999999, 999999)
|
||||
_train_radar()
|
||||
last_pos_train = Vector2i(999999, 999999)
|
||||
_train_radar()
|
||||
|
||||
func _physics_process(_delta: float) -> void:
|
||||
if rail_path == null or rail_path.train_instance == 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_pos = Vector2i(grid_x, grid_z)
|
||||
|
||||
if current_pos != last_pos_train:
|
||||
last_pos_train = current_pos
|
||||
_generate_pieces_around_train(current_pos)
|
||||
_clean_far_chunks(current_pos)
|
||||
_train_radar()
|
||||
|
||||
func _generate_pieces_around_train(centro: Vector2i) -> void:
|
||||
for x in range(-eye_line, eye_line + 1):
|
||||
for z in range(-eye_line, eye_line + 1):
|
||||
var grid_pos = centro + Vector2i(x, z)
|
||||
|
||||
if not board.has(grid_pos):
|
||||
var ce_obstacle = _register_cell_with_laser(grid_pos)
|
||||
if not ce_obstacle:
|
||||
_add_compatible_biome(grid_pos)
|
||||
|
||||
func _choose_catalogue_by_cell(grid_pos: Vector2i) -> Array[PackedScene]:
|
||||
if manual_biome != null:
|
||||
return manual_biome.available_chunks
|
||||
|
||||
var value = noise_generator.get_noise_2d(grid_pos.x, grid_pos.y)
|
||||
var normalized_value = (value + 1.0) / 2.0
|
||||
var indice = clamp(int(normalized_value * biome_list.size()), 0, biome_list.size() - 1)
|
||||
return biome_list[indice].available_chunks
|
||||
|
||||
func _get_procedural_biome_name(value: float) -> String:
|
||||
if manual_biome != null:
|
||||
return manual_biome.name
|
||||
|
||||
var normalized_value = (value + 1.0) / 2.0
|
||||
var index = clamp(int(normalized_value * biome_list.size()), 0, biome_list.size() - 1)
|
||||
return biome_list[index].name
|
||||
|
||||
func _register_cell_with_laser(grid_pos: Vector2i) -> bool:
|
||||
if board.has(grid_pos): return true
|
||||
|
||||
var world_pos = Vector3(grid_pos.x * chunk_size, 0, grid_pos.y * chunk_size)
|
||||
var space_state = get_world_3d().direct_space_state
|
||||
var ray_origin = Vector3(world_pos.x, 50.0, world_pos.z)
|
||||
var ray_end = Vector3(world_pos.x, -10.0, world_pos.z)
|
||||
|
||||
var query = PhysicsRayQueryParameters3D.create(ray_origin, ray_end)
|
||||
var result = space_state.intersect_ray(query)
|
||||
|
||||
if result.size() > 0:
|
||||
var collider = result["collider"]
|
||||
var current_node = collider
|
||||
var exit_found = {"north": false, "est": false, "south": false, "west": false}
|
||||
var height_found = {"north": 0, "est": 0, "south": 0, "west": 0}
|
||||
|
||||
while current_node != null and current_node != get_tree().root:
|
||||
if current_node.has_method("get_rotated_data"):
|
||||
var rotation_steps = roundi(rad_to_deg(current_node.global_rotation.y) / -90.0)
|
||||
var data = current_node.get_rotated_data(rotation_steps)
|
||||
exit_found = data["connections"]
|
||||
height_found = data["heights"]
|
||||
break
|
||||
current_node = current_node.get_parent()
|
||||
|
||||
board[grid_pos] = {"type": "obstacle", "exit": exit_found, "heights": height_found}
|
||||
return true
|
||||
return false
|
||||
|
||||
func _add_compatible_biome(grid_pos: Vector2i) -> void:
|
||||
var req_conn_north = _needed_connections(grid_pos + Vector2i(0, -1), "south")
|
||||
var req_conn_est = _needed_connections(grid_pos + Vector2i(1, 0), "west")
|
||||
var req_conn_south = _needed_connections(grid_pos + Vector2i(0, 1), "north")
|
||||
var req_conn_west = _needed_connections(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")
|
||||
var req_height_south = _needed_heights(grid_pos + Vector2i(0, 1), "north")
|
||||
var req_height_west = _needed_heights(grid_pos + Vector2i(-1, 0), "est")
|
||||
|
||||
var height_noise = altitude_generator.get_noise_2d(grid_pos.x, grid_pos.y)
|
||||
var height_target = clamp(roundi((height_noise + 1.0) / 2.0), 0, 1)
|
||||
|
||||
var zone_catalogue = _choose_catalogue_by_cell(grid_pos)
|
||||
var valid_candidates = []
|
||||
|
||||
for scene in zone_catalogue:
|
||||
var test_chunk = scene.instantiate()
|
||||
|
||||
if test_chunk.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"]
|
||||
|
||||
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()
|
||||
|
||||
if valid_candidates.size() > 0:
|
||||
var max_score = -1
|
||||
for c in valid_candidates:
|
||||
if c.score > max_score: max_score = c.score
|
||||
|
||||
var best_candidate = []
|
||||
for c in valid_candidates:
|
||||
if c.score == max_score: best_candidate.append(c)
|
||||
|
||||
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)
|
||||
|
||||
board[grid_pos] = {"type": "biome", "exit": choise.data["connections"], "heights": choise.data["heights"], "nodo": new_chunk}
|
||||
else:
|
||||
push_warning("⚠️ One piece miss for position " + str(grid_pos) + "!")
|
||||
|
||||
var fmt_alt = func(req): return str(req) if req != -1 else "Free"
|
||||
#var fmt_conn = func(req): return "Yes" if req == 1 else ("No" if req == 0 else "Free")
|
||||
|
||||
print("We need missed piece -> North: ", fmt_alt.call(req_height_north), " | Est: ", fmt_alt.call(req_height_est), " | South: ", fmt_alt.call(req_height_south), " | West: ", fmt_alt.call(req_height_west))
|
||||
|
||||
var backup = zone_catalogue[0].instantiate()
|
||||
add_child(backup)
|
||||
backup.position = Vector3(grid_pos.x * chunk_size, 0, grid_pos.y * chunk_size)
|
||||
|
||||
var safe_heights = {
|
||||
"north": req_height_north if req_height_north != -1 else height_target,
|
||||
"est": req_height_est if req_height_est != -1 else height_target,
|
||||
"south": req_height_south if req_height_south != -1 else height_target,
|
||||
"west": req_height_west if req_height_west != -1 else height_target
|
||||
}
|
||||
board[grid_pos] = {"type": "biome", "exit": {"north":false, "est":false, "south":false, "west":false}, "heights": safe_heights, "node": backup}
|
||||
|
||||
func _needed_connections(near_pos: Vector2i, side_needed: String) -> int:
|
||||
if not board.has(near_pos):
|
||||
_register_cell_with_laser(near_pos)
|
||||
if board.has(near_pos) and board[near_pos].has("exit"):
|
||||
return 1 if board[near_pos]["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()
|
||||
|
||||
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 next_biome = _get_procedural_biome_name(noise_generator.get_noise_2d(f_x, f_z))
|
||||
|
||||
if next_biome != current_biome:
|
||||
#distanza_cambio = step * chunk_size
|
||||
#prossimo_bioma = next_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)
|
||||
1
core/biome_generator/biome_generator.gd.uid
Normal file
1
core/biome_generator/biome_generator.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://ct2k25kslaxe5
|
||||
6
core/biome_generator/biome_generator.tscn
Normal file
6
core/biome_generator/biome_generator.tscn
Normal file
@@ -0,0 +1,6 @@
|
||||
[gd_scene format=3 uid="uid://ujv2f1l4d2ps"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://ct2k25kslaxe5" path="res://core/biome_generator/biome_generator.gd" id="1_c7ilo"]
|
||||
|
||||
[node name="biome_generator" type="Node3D" unique_id=1861369341]
|
||||
script = ExtResource("1_c7ilo")
|
||||
46
core/biome_generator/chunk_info.gd
Normal file
46
core/biome_generator/chunk_info.gd
Normal file
@@ -0,0 +1,46 @@
|
||||
extends Node3D
|
||||
class_name ChunkInfo
|
||||
|
||||
@export_enum("Biome", "straight_track", "curved_track") var chunk_type: int = 0
|
||||
|
||||
@export_group("Set Piece Rules (Unique pieces)")
|
||||
@export var exclusive_biome: String = "" # Es: "Forest"
|
||||
|
||||
@export_group("Base exit (no roation)")
|
||||
@export var north: bool = false
|
||||
@export var est: bool = false
|
||||
@export var south: bool = false
|
||||
@export var west: bool = false
|
||||
|
||||
@export_group("Maring heights (level 0, 1, 2)")
|
||||
@export var height_north: int = 0
|
||||
@export var height_est: int = 0
|
||||
@export var height_south: int = 0
|
||||
@export var height_west: int = 0
|
||||
|
||||
func _ready() -> void:
|
||||
if exclusive_biome != "":
|
||||
add_to_group("set_pieces")
|
||||
|
||||
func get_rotated_data(steps_90: int) -> Dictionary:
|
||||
var original_exit = [north, est, south, west]
|
||||
var original_height = [height_north, height_est, height_south, height_west]
|
||||
|
||||
var calculated_exit = []
|
||||
var calculated_height = []
|
||||
|
||||
for i in range(4):
|
||||
var index = (i - steps_90 + 4) % 4
|
||||
calculated_exit.append(original_exit[index])
|
||||
calculated_height.append(original_height[index])
|
||||
|
||||
return {
|
||||
"connections": {
|
||||
"north": calculated_exit[0], "est": calculated_exit[1],
|
||||
"south": calculated_exit[2], "west": calculated_exit[3]
|
||||
},
|
||||
"heights": {
|
||||
"north": calculated_height[0], "est": calculated_height[1],
|
||||
"south": calculated_height[2], "west": calculated_height[3]
|
||||
}
|
||||
}
|
||||
1
core/biome_generator/chunk_info.gd.uid
Normal file
1
core/biome_generator/chunk_info.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://dg2h4kbqe8j3m
|
||||
43
core/camera.tscn
Normal file
43
core/camera.tscn
Normal file
@@ -0,0 +1,43 @@
|
||||
[gd_scene format=3 uid="uid://cv5xmnow451kl"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b3nmswr1iaexw" path="res://core/camera_move.gd" id="1_6doux"]
|
||||
|
||||
[node name="camera" type="Node3D" unique_id=310254818]
|
||||
|
||||
[node name="camera_front" type="Camera3D" parent="." unique_id=849013180]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 2.55, 7.1)
|
||||
fov = 86.0
|
||||
near = 0.001
|
||||
far = 5000.0
|
||||
|
||||
[node name="camera_top" type="Camera3D" parent="." unique_id=454024645]
|
||||
transform = Transform3D(-0.9998601, 0.0062594875, -0.015508555, -0.0015509288, 0.88861585, 0.45864955, 0.016652059, 0.45860943, -0.8884819, 0, 7.4, 0.53)
|
||||
fov = 82.7
|
||||
near = 0.001
|
||||
far = 5000.0
|
||||
|
||||
[node name="camera_side1" type="Camera3D" parent="." unique_id=1328559378]
|
||||
transform = Transform3D(-0.18395132, 0, 0.98293537, 0, 1, 0, -0.98293537, 0, -0.18395132, -0.57, 2.257, 2.776)
|
||||
fov = 60.0
|
||||
|
||||
[node name="camera_side2" type="Camera3D" parent="." unique_id=888646238]
|
||||
transform = Transform3D(-4.371139e-08, 0.005235964, -0.9999863, 0, 0.9999863, 0.005235964, 1, 2.2887126e-10, -4.3710788e-08, 0.89, 2.207, 2.814)
|
||||
fov = 96.6
|
||||
far = 5000.0
|
||||
|
||||
[node name="camera_iso" type="Camera3D" parent="." unique_id=308091984]
|
||||
transform = Transform3D(0.5778576, -0.5770964, 0.5770964, 0, 0.70710677, 0.70710677, -0.8161376, -0.40860704, 0.40860704, 225, 290, 173.7)
|
||||
projection = 1
|
||||
fov = 96.6
|
||||
size = 35.0
|
||||
near = 0.001
|
||||
far = 500.0
|
||||
|
||||
[node name="pivot" type="Node3D" parent="." unique_id=1852377804 node_paths=PackedStringArray("camera_iso", "pivot", "camera_front", "camera_side1", "camera_side2", "camera_top")]
|
||||
script = ExtResource("1_6doux")
|
||||
camera_iso = NodePath("../camera_iso")
|
||||
pivot = NodePath(".")
|
||||
camera_front = NodePath("../camera_front")
|
||||
camera_side1 = NodePath("../camera_side1")
|
||||
camera_side2 = NodePath("../camera_side2")
|
||||
camera_top = NodePath("../camera_top")
|
||||
150
core/camera_move.gd
Normal file
150
core/camera_move.gd
Normal file
@@ -0,0 +1,150 @@
|
||||
extends Node3D
|
||||
|
||||
@export_group("Camera")
|
||||
@export var camera_iso : Camera3D
|
||||
@export var pivot : Node3D
|
||||
@export var camera_front : Camera3D
|
||||
@export var camera_side1 : Camera3D
|
||||
@export var camera_side2 : Camera3D
|
||||
@export var camera_top : Camera3D
|
||||
|
||||
@export_group("Camera Movememnt")
|
||||
@export var move_speed : float = 20.0
|
||||
@export var rotation_speed : float = 0.2
|
||||
|
||||
@export_group("Cinematic Mode")
|
||||
@export var change_camera_time : float = 10.0
|
||||
|
||||
@export_group("Isometric Zoom")
|
||||
@export var normal_size : float = 35.0
|
||||
@export var zoom_size : float = 60.0
|
||||
@export var zoom_time : float = 1.2
|
||||
var is_zoomed : bool = false
|
||||
var zoom_tween : Tween
|
||||
|
||||
var is_moving_enabled : bool = true
|
||||
|
||||
var is_cinematic_mode : bool = false
|
||||
var cinematic_timer : float = 0.0
|
||||
var cinematic_index : int = 0
|
||||
var array_camera : Array[Camera3D] = []
|
||||
|
||||
var initial_pivot_transformation : Transform3D
|
||||
|
||||
func _ready():
|
||||
if pivot:
|
||||
initial_pivot_transformation = pivot.transform
|
||||
|
||||
if camera_iso: array_camera.append(camera_iso)
|
||||
if camera_front: array_camera.append(camera_front)
|
||||
if camera_side1: array_camera.append(camera_side1)
|
||||
if camera_side2: array_camera.append(camera_side2)
|
||||
if camera_top: array_camera.append(camera_top)
|
||||
|
||||
if camera_iso:
|
||||
camera_iso.make_current()
|
||||
|
||||
func _input(event):
|
||||
if event is InputEventKey and event.pressed and not event.echo:
|
||||
|
||||
#R-> Reset isometric camera
|
||||
if event.keycode == KEY_R and is_moving_enabled and pivot:
|
||||
pivot.transform = initial_pivot_transformation
|
||||
print("Isometric camera resetted!")
|
||||
return
|
||||
|
||||
#C-> Toggle cinematic mode
|
||||
if event.keycode == KEY_C:
|
||||
is_cinematic_mode = !is_cinematic_mode
|
||||
if is_cinematic_mode:
|
||||
cinematic_timer = 0.0
|
||||
for i in range(array_camera.size()):
|
||||
if array_camera[i].current:
|
||||
cinematic_index = i
|
||||
break
|
||||
print("Cinematic Mode: enabled")
|
||||
else:
|
||||
print("Cinematic Mode: disabled")
|
||||
return
|
||||
|
||||
#Z-> soft zoom
|
||||
if event.keycode == KEY_Z and camera_iso:
|
||||
is_zoomed = !is_zoomed
|
||||
var target_size = zoom_size if is_zoomed else normal_size
|
||||
|
||||
if zoom_tween and zoom_tween.is_valid():
|
||||
zoom_tween.kill()
|
||||
|
||||
zoom_tween = create_tween()
|
||||
zoom_tween.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_IN_OUT)
|
||||
zoom_tween.tween_property(camera_iso, "size", target_size, zoom_time)
|
||||
return
|
||||
|
||||
#manual controls (1-5)
|
||||
var manual_action = false
|
||||
|
||||
if event.keycode == KEY_1 and camera_iso:
|
||||
camera_iso.make_current()
|
||||
is_moving_enabled = true
|
||||
manual_action = true
|
||||
|
||||
elif event.keycode == KEY_2 and camera_front:
|
||||
camera_front.make_current()
|
||||
is_moving_enabled = false
|
||||
manual_action = true
|
||||
|
||||
elif event.keycode == KEY_3 and camera_side1:
|
||||
camera_side1.make_current()
|
||||
is_moving_enabled = false
|
||||
manual_action = true
|
||||
|
||||
elif event.keycode == KEY_4 and camera_side2:
|
||||
camera_side2.make_current()
|
||||
is_moving_enabled = false
|
||||
manual_action = true
|
||||
|
||||
elif event.keycode == KEY_5 and camera_top:
|
||||
camera_top.make_current()
|
||||
is_moving_enabled = false
|
||||
manual_action = true
|
||||
|
||||
if manual_action and is_cinematic_mode:
|
||||
is_cinematic_mode = false
|
||||
print("Cinematic Mode: Disabled")
|
||||
|
||||
if is_moving_enabled and pivot:
|
||||
if event is InputEventMouseMotion and Input.is_mouse_button_pressed(MOUSE_BUTTON_RIGHT):
|
||||
pivot.rotate_y(deg_to_rad(-event.relative.x * rotation_speed))
|
||||
|
||||
func _process(delta):
|
||||
if is_cinematic_mode and array_camera.size() > 0:
|
||||
cinematic_timer += delta
|
||||
if cinematic_timer >= change_camera_time:
|
||||
cinematic_timer = 0.0
|
||||
cinematic_index = (cinematic_index + 1) % array_camera.size()
|
||||
var next_cam = array_camera[cinematic_index]
|
||||
next_cam.make_current()
|
||||
is_moving_enabled = (next_cam == camera_iso)
|
||||
|
||||
if not is_moving_enabled or pivot == null:
|
||||
return
|
||||
|
||||
var input_dir = Vector3.ZERO
|
||||
if Input.is_key_pressed(KEY_W): input_dir.z -= 1
|
||||
if Input.is_key_pressed(KEY_S): input_dir.z += 1
|
||||
if Input.is_key_pressed(KEY_A): input_dir.x -= 1
|
||||
if Input.is_key_pressed(KEY_D): input_dir.x += 1
|
||||
|
||||
if input_dir != Vector3.ZERO:
|
||||
input_dir = input_dir.normalized()
|
||||
|
||||
var forward = pivot.transform.basis.z
|
||||
var right = pivot.transform.basis.x
|
||||
forward.y = 0
|
||||
right.y = 0
|
||||
|
||||
forward = forward.normalized()
|
||||
right = right.normalized()
|
||||
|
||||
var motion = (forward * input_dir.z + right * input_dir.x)
|
||||
pivot.position += motion * move_speed * delta
|
||||
1
core/camera_move.gd.uid
Normal file
1
core/camera_move.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://b3nmswr1iaexw
|
||||
Binary file not shown.
@@ -76,6 +76,9 @@ func _init(wind: GPUParticles3D, snow: GPUParticles3D,
|
||||
|
||||
create_sound_players()
|
||||
|
||||
toggle_dust(environment_config.enable_dust)
|
||||
toggle_blur(environment_config.enable_blur)
|
||||
|
||||
func _ready() -> void:
|
||||
|
||||
#connect events
|
||||
|
||||
@@ -80,8 +80,8 @@ extends Resource
|
||||
|
||||
#Post-process effect toggles (initial values)
|
||||
@export_group("Post Process")
|
||||
@export var enable_dust: bool = true #Floating dust particles overlay
|
||||
@export var enable_blur: bool = true #Screen blur effect
|
||||
@export var enable_dust: bool = false #Floating dust particles overlay
|
||||
@export var enable_blur: bool = false #Screen blur effect
|
||||
@export var enable_environment_shadows: bool = true #Cloud shadow projection on terrain
|
||||
@export var blur_amount: float = 0.6
|
||||
|
||||
|
||||
27
core/fireworks.gd
Normal file
27
core/fireworks.gd
Normal file
@@ -0,0 +1,27 @@
|
||||
extends Node3D
|
||||
@onready var rocket = $"1_StartRocket"
|
||||
@onready var explosion = $"2_MainExplosion"
|
||||
@onready var trails = $"3_FallingTrails"
|
||||
|
||||
func set_color(target_color: Color) -> void:
|
||||
#set colors
|
||||
set_particles_node_color(rocket, Color(1.5, 1.5, 1.5))
|
||||
set_particles_node_color(explosion, Color(1.2, 1.2, 1.2))
|
||||
set_particles_node_color(trails, target_color)
|
||||
|
||||
func set_particles_node_color(node: GPUParticles3D, new_color: Color) -> void:
|
||||
if node and node.draw_pass_1:
|
||||
var mesh = node.draw_pass_1 as QuadMesh
|
||||
if mesh and mesh.material:
|
||||
var unique_mat = mesh.material.duplicate() as StandardMaterial3D
|
||||
unique_mat.albedo_color = new_color
|
||||
unique_mat.blend_mode = BaseMaterial3D.BLEND_MODE_ADD #Light effect (glow)
|
||||
unique_mat.shading_mode = BaseMaterial3D.SHADING_MODE_UNSHADED
|
||||
mesh.material = unique_mat
|
||||
|
||||
func turnon() -> void:
|
||||
if rocket:
|
||||
rocket.emitting = true
|
||||
|
||||
await get_tree().create_timer(6.0).timeout
|
||||
queue_free()
|
||||
1
core/fireworks.gd.uid
Normal file
1
core/fireworks.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://crxch6o5ottg7
|
||||
104
core/fireworks.tscn
Normal file
104
core/fireworks.tscn
Normal file
@@ -0,0 +1,104 @@
|
||||
[gd_scene format=3 uid="uid://dn1btv0e0ses7"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://crxch6o5ottg7" path="res://core/fireworks.gd" id="1_cjxyo"]
|
||||
|
||||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_dp1bx"]
|
||||
direction = Vector3(0, 1, 0)
|
||||
spread = 0.0
|
||||
initial_velocity_min = 13.0
|
||||
initial_velocity_max = 14.0
|
||||
gravity = Vector3(0, 0, 0)
|
||||
sub_emitter_mode = 2
|
||||
sub_emitter_amount_at_end = 1
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_8o1ow"]
|
||||
blend_mode = 1
|
||||
shading_mode = 0
|
||||
albedo_color = Color(1, 0.8901961, 0.24313726, 1)
|
||||
billboard_mode = 3
|
||||
particles_anim_h_frames = 1
|
||||
particles_anim_v_frames = 1
|
||||
particles_anim_loop = false
|
||||
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_p8l00"]
|
||||
material = SubResource("StandardMaterial3D_8o1ow")
|
||||
size = Vector2(0.2, 0.2)
|
||||
|
||||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_kbf61"]
|
||||
direction = Vector3(0, 1, 0)
|
||||
spread = 180.0
|
||||
initial_velocity_min = 10.0
|
||||
initial_velocity_max = 10.0
|
||||
gravity = Vector3(0, 0, 0)
|
||||
damping_min = 6.0000005
|
||||
damping_max = 6.0000005
|
||||
sub_emitter_mode = 1
|
||||
sub_emitter_frequency = 30.0
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_is2bb"]
|
||||
blend_mode = 1
|
||||
shading_mode = 0
|
||||
billboard_mode = 3
|
||||
particles_anim_h_frames = 1
|
||||
particles_anim_v_frames = 1
|
||||
particles_anim_loop = false
|
||||
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_f60hc"]
|
||||
material = SubResource("StandardMaterial3D_is2bb")
|
||||
size = Vector2(0.2, 0.2)
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_cjxyo"]
|
||||
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_dp1bx"]
|
||||
gradient = SubResource("Gradient_cjxyo")
|
||||
|
||||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_tt4r5"]
|
||||
gravity = Vector3(0, -2, 0)
|
||||
scale_min = 0.5
|
||||
scale_max = 0.5
|
||||
color_ramp = SubResource("GradientTexture1D_dp1bx")
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xt2tl"]
|
||||
blend_mode = 1
|
||||
shading_mode = 0
|
||||
albedo_color = Color(0.99999994, 0.89069206, 0.2446233, 1)
|
||||
billboard_mode = 3
|
||||
particles_anim_h_frames = 1
|
||||
particles_anim_v_frames = 1
|
||||
particles_anim_loop = false
|
||||
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_0p1ln"]
|
||||
material = SubResource("StandardMaterial3D_xt2tl")
|
||||
size = Vector2(0.05, 0.05)
|
||||
|
||||
[node name="FuocoD\'artificioRoot" type="Node3D" unique_id=669752765]
|
||||
script = ExtResource("1_cjxyo")
|
||||
|
||||
[node name="1_StartRocket" type="GPUParticles3D" parent="." unique_id=1569398174]
|
||||
emitting = false
|
||||
amount = 15
|
||||
sub_emitter = NodePath("../2_MainExplosion")
|
||||
lifetime = 0.5
|
||||
one_shot = true
|
||||
explosiveness = 1.0
|
||||
trail_enabled = true
|
||||
process_material = SubResource("ParticleProcessMaterial_dp1bx")
|
||||
draw_pass_1 = SubResource("QuadMesh_p8l00")
|
||||
|
||||
[node name="2_MainExplosion" type="GPUParticles3D" parent="." unique_id=863445356]
|
||||
emitting = false
|
||||
amount = 150
|
||||
sub_emitter = NodePath("../3_FallingTrails")
|
||||
lifetime = 1.5
|
||||
one_shot = true
|
||||
explosiveness = 1.0
|
||||
process_material = SubResource("ParticleProcessMaterial_kbf61")
|
||||
draw_pass_1 = SubResource("QuadMesh_f60hc")
|
||||
|
||||
[node name="3_FallingTrails" type="GPUParticles3D" parent="." unique_id=1969872503]
|
||||
emitting = false
|
||||
amount = 500
|
||||
lifetime = 0.5
|
||||
process_material = SubResource("ParticleProcessMaterial_tt4r5")
|
||||
draw_pass_1 = SubResource("QuadMesh_0p1ln")
|
||||
BIN
docs/museums/biome_generator/main_train.fbx
Normal file
BIN
docs/museums/biome_generator/main_train.fbx
Normal file
Binary file not shown.
44
docs/museums/biome_generator/main_train.fbx.import
Normal file
44
docs/museums/biome_generator/main_train.fbx.import
Normal file
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://bowkbyxbq2jg2"
|
||||
path="res://.godot/imported/main_train.fbx-3c77896af69edc972695e761c4bf8e47.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/museums/biome_generator/main_train.fbx"
|
||||
dest_files=["res://.godot/imported/main_train.fbx-3c77896af69edc972695e761c4bf8e47.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
|
||||
153
docs/museums/biome_generator/main_train.tscn
Normal file
153
docs/museums/biome_generator/main_train.tscn
Normal file
@@ -0,0 +1,153 @@
|
||||
[gd_scene format=3 uid="uid://dvk3bytqn3m5s"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bowkbyxbq2jg2" path="res://docs/museums/biome_generator/main_train.fbx" id="1_8k78i"]
|
||||
[ext_resource type="Material" path="res://docs/museums/biome_generator/train1.tres" id="2_crne2"]
|
||||
[ext_resource type="Material" path="res://docs/museums/biome_generator/train2.tres" id="3_tf27f"]
|
||||
[ext_resource type="Material" path="res://docs/museums/biome_generator/train3.tres" id="4_e08y7"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_tvivt"]
|
||||
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_8k78i"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_crne2"]
|
||||
emission_enabled = true
|
||||
emission = Color(0.59849787, 0.2744873, 0.018916829, 1)
|
||||
emission_energy_multiplier = 14.84
|
||||
|
||||
[node name="Train2" unique_id=206892833 groups=["weather_node", "wind_node"] instance=ExtResource("1_8k78i")]
|
||||
transform = Transform3D(-0.85, 0, -1.2834644e-07, 0, 0.85, 0, 1.2834644e-07, 0, -0.85, 0, 0, 0)
|
||||
|
||||
[node name="polySurface3708_002" parent="." index="0" unique_id=1080693866]
|
||||
transform = Transform3D(99.99998, 0, 0, 0, -4.3711375e-06, 99.99999, 0, -99.99997, -4.3711384e-06, 0, 1.5, 0)
|
||||
material_overlay = SubResource("ShaderMaterial_tvivt")
|
||||
surface_material_override/0 = ExtResource("2_crne2")
|
||||
surface_material_override/1 = ExtResource("3_tf27f")
|
||||
surface_material_override/2 = ExtResource("2_crne2")
|
||||
surface_material_override/3 = ExtResource("4_e08y7")
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="." index="1" unique_id=1403632389]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.668482, 1.6818931, 2.5172625, 1.2770853)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="." index="2" unique_id=1336101020]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.668482, 1.6125782, 2.5172625, 2.9643514)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D28" type="MeshInstance3D" parent="." index="3" unique_id=311730556]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.668482, 1.640722, 2.5172625, -4.04725)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D29" type="MeshInstance3D" parent="." index="4" unique_id=1304381077]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.668482, 1.640722, 2.5172625, -2.4448335)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D3" type="MeshInstance3D" parent="." index="5" unique_id=663441243]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.47599128, 1.640722, 2.5172625, 6.115757)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D37" type="MeshInstance3D" parent="." index="6" unique_id=332999290]
|
||||
transform = Transform3D(1.5214157e-15, -4.371139e-08, -1.4922415, -0.796267, -4.371139e-08, 0, -3.4805936e-08, 1, -6.522796e-08, 0.00024104083, 2.668277, 8.483847)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D30" type="MeshInstance3D" parent="." index="7" unique_id=1998746087]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.47599128, 1.640722, 2.5172625, -7.2599697)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D4" type="MeshInstance3D" parent="." index="8" unique_id=1980372157]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, 5.212925)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D5" type="MeshInstance3D" parent="." index="9" unique_id=122016874]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, 4.909999)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D6" type="MeshInstance3D" parent="." index="10" unique_id=962812717]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, 4.59173)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D7" type="MeshInstance3D" parent="." index="11" unique_id=1668544912]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, 4.283636)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D8" type="MeshInstance3D" parent="." index="12" unique_id=1387960824]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, -0.085068464)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D9" type="MeshInstance3D" parent="." index="13" unique_id=1969224680]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, -0.387995)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D10" type="MeshInstance3D" parent="." index="14" unique_id=3545667]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, -0.7062633)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D11" type="MeshInstance3D" parent="." index="15" unique_id=719869989]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, -1.0143578)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D12" type="MeshInstance3D" parent="." index="16" unique_id=424215252]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, -5.405431)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D13" type="MeshInstance3D" parent="." index="17" unique_id=593531465]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, -5.708358)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D14" type="MeshInstance3D" parent="." index="18" unique_id=1495729886]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, -6.0266256)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D15" type="MeshInstance3D" parent="." index="19" unique_id=1576847092]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, -6.3347206)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="OmniLight3D" type="OmniLight3D" parent="." index="20" unique_id=1693942993]
|
||||
transform = Transform3D(1, 0, 0, 0, -1.1920932e-07, -1, 0, 1, -1.1920932e-07, -0.9650913, 1.3310676, 8.449412)
|
||||
light_color = Color(0.9818843, 0.6206694, 0.26694176, 1)
|
||||
omni_range = 0.437
|
||||
omni_attenuation = 0.367
|
||||
|
||||
[node name="OmniLight3D2" type="OmniLight3D" parent="." index="21" unique_id=1965838060]
|
||||
transform = Transform3D(1, 0, 0, 0, -1.1920932e-07, -1, 0, 1, -1.1920932e-07, 0.9597263, 1.3310676, 8.449412)
|
||||
light_color = Color(0.9818843, 0.6206694, 0.26694176, 1)
|
||||
omni_range = 0.437
|
||||
omni_attenuation = 0.367
|
||||
|
||||
[node name="SpotLight3D2" type="SpotLight3D" parent="OmniLight3D2" index="0" unique_id=1940430623]
|
||||
transform = Transform3D(-0.9991066, -0.0071844957, -0.041647904, 0.039682645, 0.1795881, -0.9829413, 0.014541405, -0.98371583, -0.17914255, -2.2325838, -0.021801949, -0.18683863)
|
||||
light_color = Color(0.8039216, 0.6784314, 0.3254902, 1)
|
||||
light_energy = 4.0
|
||||
light_cull_mask = 4294967293
|
||||
spot_range = 18.0
|
||||
spot_attenuation = 1.2
|
||||
spot_angle = 35.0
|
||||
spot_angle_attenuation = 8.876516
|
||||
|
||||
[node name="SpotLight3D3" type="SpotLight3D" parent="OmniLight3D2" index="1" unique_id=1754775574]
|
||||
transform = Transform3D(-0.9991066, -0.0071844957, -0.041647904, 0.039682645, 0.1795881, -0.9829413, 0.014541405, -0.98371583, -0.17914255, 0.31696087, -0.020600319, -0.18641448)
|
||||
light_color = Color(0.8574047, 0.65361816, 0.27671134, 1)
|
||||
light_energy = 4.0
|
||||
light_cull_mask = 4294967293
|
||||
spot_range = 18.0
|
||||
spot_attenuation = 1.2
|
||||
spot_angle = 35.0
|
||||
spot_angle_attenuation = 8.876516
|
||||
156
docs/museums/biome_generator/museum_biome_generator.tscn
Normal file
156
docs/museums/biome_generator/museum_biome_generator.tscn
Normal file
@@ -0,0 +1,156 @@
|
||||
[gd_scene format=3 uid="uid://cae0mnf353dy3"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://bneoex8xpmcm8" path="res://core/daynight/sky.gdshader" id="1_p4ojb"]
|
||||
[ext_resource type="Texture2D" uid="uid://dest0qa7vaid0" path="res://core/daynight/stars_albedo.png" id="2_yrmqs"]
|
||||
[ext_resource type="Script" uid="uid://brcimd12tx3dm" path="res://core/daynight/edge_detection_compositor.gd" id="3_8tojn"]
|
||||
[ext_resource type="PackedScene" uid="uid://ujv2f1l4d2ps" path="res://core/biome_generator/biome_generator.tscn" id="4_yrmqs"]
|
||||
[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://botm0dqtr5whb" path="res://docs/museums/daynight/scenes/chunk_c_e_1/chunk_c_e_1.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="PackedScene" uid="uid://dvk3bytqn3m5s" path="res://docs/museums/biome_generator/main_train.tscn" id="6_wjpfq"]
|
||||
[ext_resource type="PackedScene" uid="uid://givg3dyrxsk5" path="res://docs/museums/daynight/scenes/chunk_c_f_1/chunk_c_f_1.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://bi12g5nj421jv" path="res://docs/museums/daynight/scenes/chunk_f_e_1/chunk_f_e_1.tscn" id="8_qe84w"]
|
||||
[ext_resource type="PackedScene" uid="uid://dn1btv0e0ses7" path="res://core/fireworks.tscn" id="8_xtogr"]
|
||||
[ext_resource type="PackedScene" uid="uid://cpebna545ihfh" path="res://docs/museums/daynight/scenes/chunk_f_l_2/chunk_f_l_2.tscn" id="9_3qrd0"]
|
||||
|
||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_wjpfq"]
|
||||
fractal_lacunarity = 1.915
|
||||
fractal_gain = 0.53
|
||||
fractal_weighted_strength = 0.35
|
||||
|
||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_abyor"]
|
||||
noise = SubResource("FastNoiseLite_wjpfq")
|
||||
seamless = true
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_pypsn"]
|
||||
shader = ExtResource("1_p4ojb")
|
||||
shader_parameter/sky_top_color = Color(0.36438444, 0.6417803, 0.8712311, 1)
|
||||
shader_parameter/sky_horizon_color = Color(0.75821966, 0.8417803, 0.92534095, 1)
|
||||
shader_parameter/night_intensity = 0.0
|
||||
shader_parameter/cloud_noise = SubResource("NoiseTexture2D_abyor")
|
||||
shader_parameter/sun_color = Color(1, 0.88767046, 0.775341, 1)
|
||||
shader_parameter/cloud_center_color = Color(1, 1, 1, 1)
|
||||
shader_parameter/cloud_edge_color = Color(0.8, 0.85, 0.9, 1)
|
||||
shader_parameter/cloud_direction = Vector2(0.5, 0.2)
|
||||
shader_parameter/cloud_speed = 0.1
|
||||
shader_parameter/cloud_scale = 0.5
|
||||
shader_parameter/cloud_threshold = 0.5
|
||||
shader_parameter/cloud_edge_thickness = 0.406000019285
|
||||
shader_parameter/cloud_edge_softness = 0.0
|
||||
shader_parameter/star_density = 1500.0
|
||||
shader_parameter/star_rarity = 2500.0
|
||||
shader_parameter/star_scale_variation = 0.5
|
||||
shader_parameter/shooting_star_texture = ExtResource("2_yrmqs")
|
||||
shader_parameter/shooting_star_color = Color(0.38431373, 0.61960787, 0.23137255, 1)
|
||||
shader_parameter/shooting_star_density = 1.0
|
||||
shader_parameter/shooting_star_speed = 1.0
|
||||
shader_parameter/shooting_star_scale = 5.0
|
||||
shader_parameter/shooting_star_lifetime = 0.5
|
||||
shader_parameter/shooting_star_travel_dist = 15.0
|
||||
|
||||
[sub_resource type="Sky" id="Sky_50i22"]
|
||||
sky_material = SubResource("ShaderMaterial_pypsn")
|
||||
|
||||
[sub_resource type="Environment" id="Environment_xtogr"]
|
||||
background_mode = 2
|
||||
sky = SubResource("Sky_50i22")
|
||||
ambient_light_color = Color(1, 0.88767046, 0.775341, 1)
|
||||
tonemap_exposure = 0.9979451
|
||||
ssao_enabled = true
|
||||
ssao_radius = 0.5
|
||||
ssao_intensity = 14.0
|
||||
ssao_detail = 0.0
|
||||
ssil_enabled = true
|
||||
glow_enabled = true
|
||||
glow_levels/4 = 1.0
|
||||
glow_intensity = 1.1835606
|
||||
glow_strength = 0.65
|
||||
glow_bloom = 1.0
|
||||
fog_enabled = true
|
||||
fog_mode = 1
|
||||
fog_light_color = Color(0.75821966, 0.8417803, 0.92534095, 1)
|
||||
fog_density = 0.004876705
|
||||
fog_sky_affect = 0.0
|
||||
|
||||
[sub_resource type="CompositorEffect" id="CompositorEffect_q52t1"]
|
||||
resource_local_to_scene = false
|
||||
resource_name = ""
|
||||
enabled = true
|
||||
effect_callback_type = 1
|
||||
access_resolved_color = false
|
||||
access_resolved_depth = false
|
||||
needs_motion_vectors = false
|
||||
needs_normal_roughness = false
|
||||
script = ExtResource("3_8tojn")
|
||||
metadata/_custom_type_script = "uid://brcimd12tx3dm"
|
||||
|
||||
[sub_resource type="Compositor" id="Compositor_mb5yv"]
|
||||
compositor_effects = Array[CompositorEffect]([SubResource("CompositorEffect_q52t1")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_3qrd0"]
|
||||
script = ExtResource("5_2wjys")
|
||||
name = "countryside"
|
||||
available_chunks = Array[PackedScene]([ExtResource("6_21usy"), ExtResource("7_qe84w")])
|
||||
metadata/_custom_type_script = "uid://wv6kcqkibium"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_2qks6"]
|
||||
script = ExtResource("5_2wjys")
|
||||
name = "Forest"
|
||||
available_chunks = Array[PackedScene]([ExtResource("8_qe84w"), ExtResource("9_3qrd0")])
|
||||
metadata/_custom_type_script = "uid://wv6kcqkibium"
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pypsn"]
|
||||
albedo_color = Color(0.135, 0.45, 0.18224995, 1)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_xtogr"]
|
||||
size = Vector3(200, 0.08, 200)
|
||||
|
||||
[sub_resource type="Curve3D" id="Curve3D_xtogr"]
|
||||
_data = {
|
||||
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, -74.84181, 0, -74.77032, 0, 0, 0, 0, 0, 0, -11.457085, 0, -86.17957, 0, 0, 0, 0, 0, 0, 55.006348, 0, -78.211205, 0, 0, 0, 0, 0, 0, 73.47847, 0, -30.582096, 0, 0, 0, 0, 0, 0, 78.73035, 0, 30.810556, 0, 0, 0, 0, 0, 0, 50.841064, 0, 77.896355, 0, 0, 0, 0, 0, 0, -53.834305, 0, 74.817665, 0, 0, 0, 0, 0, 0, -84.621185, 0, 37.149036, 0, 0, 0, 0, 0, 0, -77.19612, 0, -10.117877, 0, 0, 0, 0, 0, 0, 4.8418427, 0, 26.10198, 0, 0, 0, 0, 0, 0, 42.32939, 0, -18.267347, 0, 0, 0, 0, 0, 0, -19.96875, 0, -47.24322),
|
||||
"tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
}
|
||||
point_count = 12
|
||||
|
||||
[node name="museum" type="Node3D" unique_id=2135293927]
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1936550760]
|
||||
environment = SubResource("Environment_xtogr")
|
||||
compositor = SubResource("Compositor_mb5yv")
|
||||
|
||||
[node name="biome_generator" parent="." unique_id=1861369341 node_paths=PackedStringArray("rail_path") instance=ExtResource("4_yrmqs")]
|
||||
rail_path = NodePath("../rails")
|
||||
biome_list = Array[ExtResource("5_2wjys")]([SubResource("Resource_3qrd0"), SubResource("Resource_2qks6")])
|
||||
|
||||
[node name="Terrain" type="MeshInstance3D" parent="." unique_id=219178561]
|
||||
material_override = SubResource("StandardMaterial3D_pypsn")
|
||||
mesh = SubResource("BoxMesh_xtogr")
|
||||
|
||||
[node name="cameras" parent="." unique_id=310254818 instance=ExtResource("5_8tojn")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 28.635147, 0)
|
||||
|
||||
[node name="rails" type="Path3D" parent="." unique_id=1302444918 node_paths=PackedStringArray("cameras")]
|
||||
curve = SubResource("Curve3D_xtogr")
|
||||
script = ExtResource("6_pypsn")
|
||||
train_model = ExtResource("6_wjpfq")
|
||||
cameras = NodePath("../cameras")
|
||||
sleepers_model = ExtResource("8_mb5yv")
|
||||
fireworks_scene = ExtResource("8_xtogr")
|
||||
|
||||
[node name="Control" type="Control" parent="." unique_id=865533651]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
|
||||
[node name="guide" type="Label" parent="Control" unique_id=2121474959]
|
||||
layout_mode = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 23.0
|
||||
text = "R-> Reset isometric camera
|
||||
C-> Toggle cinematic mode
|
||||
Z-> soft zoom
|
||||
Manual controls (1-5)
|
||||
"
|
||||
319
docs/museums/biome_generator/rails.gd
Normal file
319
docs/museums/biome_generator/rails.gd
Normal file
@@ -0,0 +1,319 @@
|
||||
extends Path3D
|
||||
|
||||
@export_group("Train")
|
||||
@export var train_speed: float = 6.0
|
||||
@export var is_inmotion: bool = true
|
||||
@export var train_model: PackedScene
|
||||
@export var axes_distance: float = 3.0
|
||||
@export var rail_distance: float = 1.2
|
||||
@export var cameras: Node3D
|
||||
@export_range(0.0, 1.0) var basic_swing: float = 0.5
|
||||
|
||||
@export_group("Rails Bulding")
|
||||
@export var sleepers_distance: float = 1.0
|
||||
@export var sleepers_model: PackedScene
|
||||
|
||||
@export_group("Manual Controls")
|
||||
@export var speed_max: float = 15.0
|
||||
@export var speed_min: float = -5.0
|
||||
@export var manual_acceleration: float = 5.0
|
||||
|
||||
@export_group("Train Stops")
|
||||
@export var enable_stops: bool = true
|
||||
@export var stop_time: float = 4.0
|
||||
@export var brake_distance: float = 15.0
|
||||
@export var restart_time: float = 3.0
|
||||
@export var fireworks_scene: PackedScene
|
||||
|
||||
var fireworks_colors: Array[Color] = [
|
||||
Color(1.0, 0.2, 0.2), # Rosso vivo
|
||||
Color(0.2, 1.0, 0.2), # Verde lime
|
||||
Color(0.3, 0.5, 1.0), # Blu cielo
|
||||
Color(1.0, 0.8, 0.1), # Oro
|
||||
Color(0.8, 0.2, 1.0), # Viola
|
||||
Color(0.1, 1.0, 0.9) # Ciano
|
||||
]
|
||||
|
||||
var train_instance: Node3D
|
||||
var train_progress: float = 0.0
|
||||
var swing_time: float = 0.0
|
||||
|
||||
var stop_offset: Array[float] = []
|
||||
var stops_position: Array[Vector3] = []
|
||||
var stop_ongoing: bool = false
|
||||
var next_stop_index: int = 0
|
||||
var stop_multiply: float = 1.0
|
||||
var is_restarting: bool = false
|
||||
var tween_restart: Tween
|
||||
|
||||
func _ready() -> void:
|
||||
if curve != null and curve.get_baked_length() > 0:
|
||||
build_rails()
|
||||
build_train()
|
||||
_plan_stops()
|
||||
else:
|
||||
print("WARNING: Draw your Path3D!")
|
||||
|
||||
func build_rails() -> void:
|
||||
var mat_wood = StandardMaterial3D.new()
|
||||
mat_wood.albedo_color = Color(0.35, 0.2, 0.1)
|
||||
var mat_iron = StandardMaterial3D.new()
|
||||
mat_iron.albedo_color = Color(0.6, 0.6, 0.65)
|
||||
mat_iron.metallic = 0.8
|
||||
|
||||
var mesh_sleeper = BoxMesh.new()
|
||||
mesh_sleeper.size = Vector3(rail_distance + 0.6, 0.1, 0.3)
|
||||
var mesh_rail = BoxMesh.new()
|
||||
mesh_rail.size = Vector3(0.1, 0.15, sleepers_distance + 0.05)
|
||||
|
||||
var total_length = curve.get_baked_length()
|
||||
var piece_number = int(total_length / sleepers_distance)
|
||||
|
||||
for i in range(piece_number):
|
||||
var distance = i * sleepers_distance
|
||||
var rail_piece = Node3D.new()
|
||||
add_child(rail_piece)
|
||||
|
||||
var local_pos = curve.sample_baked(distance, true)
|
||||
var distance_forward = distance + 0.1
|
||||
var local_pos_forward = Vector3.ZERO
|
||||
|
||||
if distance_forward > total_length:
|
||||
var pos_back = curve.sample_baked(distance - 0.1, true)
|
||||
local_pos_forward = local_pos + (local_pos - pos_back)
|
||||
else:
|
||||
local_pos_forward = curve.sample_baked(distance_forward, true)
|
||||
|
||||
rail_piece.position = local_pos
|
||||
var global_pos = to_global(local_pos)
|
||||
var global_pos_forward = to_global(local_pos_forward)
|
||||
if global_pos.distance_to(global_pos_forward) > 0.001:
|
||||
rail_piece.look_at(global_pos_forward, Vector3.UP)
|
||||
|
||||
if sleepers_model != null:
|
||||
var sleeper_custom = sleepers_model.instantiate()
|
||||
rail_piece.add_child(sleeper_custom)
|
||||
else:
|
||||
var sleeper = MeshInstance3D.new()
|
||||
sleeper.mesh = mesh_sleeper
|
||||
sleeper.material_override = mat_wood
|
||||
rail_piece.add_child(sleeper)
|
||||
|
||||
var rail_sx = MeshInstance3D.new()
|
||||
rail_sx.mesh = mesh_rail
|
||||
rail_sx.material_override = mat_iron
|
||||
rail_sx.position = Vector3(-rail_distance / 2.0, 0.1, 0)
|
||||
rail_piece.add_child(rail_sx)
|
||||
|
||||
var rail_dx = MeshInstance3D.new()
|
||||
rail_dx.mesh = mesh_rail
|
||||
rail_dx.material_override = mat_iron
|
||||
rail_dx.position = Vector3(rail_distance / 2.0, 0.1, 0)
|
||||
rail_piece.add_child(rail_dx)
|
||||
|
||||
func _plan_stops() -> void:
|
||||
var currnet_stops = []
|
||||
for child in get_children():
|
||||
if child is Marker3D:
|
||||
var offset = curve.get_closest_offset(child.position)
|
||||
currnet_stops.append({
|
||||
"offset": offset,
|
||||
"position": child.global_position
|
||||
})
|
||||
currnet_stops.sort_custom(func(a, b): return a["offset"] < b["offset"])
|
||||
for data in currnet_stops:
|
||||
stop_offset.append(data["offset"])
|
||||
stops_position.append(data["position"])
|
||||
|
||||
func _input(event: InputEvent) -> void:
|
||||
if event is InputEventKey and event.pressed and not event.echo:
|
||||
if event.keycode == KEY_T:
|
||||
_goto_next_stop()
|
||||
elif event.keycode == KEY_F:
|
||||
_test_manual_fires()
|
||||
|
||||
func _test_manual_fires() -> void:
|
||||
if fireworks_scene == null or train_instance == null: return
|
||||
|
||||
var firework_number = randi_range(5, 8)
|
||||
for i in range(firework_number):
|
||||
var fire_root = fireworks_scene.instantiate()
|
||||
get_tree().current_scene.add_child(fire_root)
|
||||
|
||||
var offset_x = randf_range(-6.0, 6.0)
|
||||
var offset_z = randf_range(-6.0, 6.0)
|
||||
fire_root.global_position = train_instance.global_position + Vector3(offset_x, 0.5, offset_z)
|
||||
|
||||
if fire_root.has_method("set_color"):
|
||||
fire_root.set_color(fireworks_colors.pick_random())
|
||||
if fire_root.has_method("turnon"):
|
||||
fire_root.turnon()
|
||||
|
||||
await get_tree().create_timer(randf_range(0.2, 0.6)).timeout
|
||||
|
||||
func _goto_next_stop() -> void:
|
||||
if stop_offset.size() == 0 or stop_ongoing or is_restarting:
|
||||
return
|
||||
var target_offset = stop_offset[next_stop_index]
|
||||
train_progress = target_offset
|
||||
_execute_stop(train_speed >= 0)
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
input_controls_management(delta)
|
||||
train_move(delta)
|
||||
|
||||
func input_controls_management(delta: float) -> void:
|
||||
if not is_inmotion: return
|
||||
if Input.is_action_pressed("ui_up"):
|
||||
train_speed += manual_acceleration * delta
|
||||
elif Input.is_action_pressed("ui_down"):
|
||||
train_speed -= manual_acceleration * delta
|
||||
train_speed = clamp(train_speed, speed_min, speed_max)
|
||||
|
||||
func train_move(delta: float) -> void:
|
||||
if is_inmotion and train_instance and curve:
|
||||
var total_length = curve.get_baked_length()
|
||||
if total_length <= 0: return
|
||||
|
||||
if not stop_ongoing:
|
||||
var last_progress = train_progress
|
||||
|
||||
if enable_stops and stop_offset.size() > 0 and not is_restarting:
|
||||
var target_offset = stop_offset[next_stop_index]
|
||||
var dist = target_offset - train_progress
|
||||
dist = wrapf(dist + total_length / 2.0, 0.0, total_length) - total_length / 2.0
|
||||
|
||||
if abs(dist) < brake_distance and sign(dist) == sign(train_speed):
|
||||
var t = abs(dist) / brake_distance
|
||||
stop_multiply = max(smoothstep(0.0, 1.0, t), 0.05)
|
||||
else:
|
||||
stop_multiply = 1.0
|
||||
|
||||
var current_speed = train_speed * stop_multiply
|
||||
train_progress += current_speed * delta
|
||||
|
||||
if enable_stops and stop_offset.size() > 0:
|
||||
var target_offset = stop_offset[next_stop_index]
|
||||
var exceeded_forward = (current_speed > 0 and last_progress < target_offset and train_progress >= target_offset)
|
||||
var exceeded_back = (current_speed < 0 and last_progress > target_offset and train_progress <= target_offset)
|
||||
|
||||
if exceeded_forward or exceeded_back:
|
||||
train_progress = target_offset
|
||||
_execute_stop(current_speed > 0)
|
||||
|
||||
if train_progress > total_length:
|
||||
train_progress -= total_length
|
||||
if stop_offset.size() > 0: next_stop_index = 0
|
||||
elif train_progress < 0:
|
||||
train_progress += total_length
|
||||
if stop_offset.size() > 0: next_stop_index = stop_offset.size() - 1
|
||||
|
||||
var center_position = to_global(curve.sample_baked(train_progress, true))
|
||||
var prog_forward = wrapf(train_progress + 2.0, 0.0, total_length)
|
||||
var forward_position = to_global(curve.sample_baked(prog_forward, true))
|
||||
|
||||
if center_position.distance_to(forward_position) > 0.01:
|
||||
train_instance.global_position = center_position
|
||||
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
|
||||
|
||||
if not stop_ongoing:
|
||||
var real_speed = abs(train_speed * stop_multiply)
|
||||
swing_time += delta * real_speed * 2.0
|
||||
var amplitude_z = 0.006 * basic_swing
|
||||
var amplitude_x = 0.004 * basic_swing
|
||||
train_instance.rotation.z += sin(swing_time) * amplitude_z
|
||||
train_instance.rotation.x += cos(swing_time * 0.8) * amplitude_x
|
||||
|
||||
func _execute_stop(go_forward: bool = true) -> void:
|
||||
stop_ongoing = true
|
||||
stop_multiply = 0.0
|
||||
|
||||
var current_stop_index = next_stop_index
|
||||
|
||||
if go_forward:
|
||||
next_stop_index += 1
|
||||
if next_stop_index >= stop_offset.size():
|
||||
next_stop_index = 0
|
||||
else:
|
||||
next_stop_index -= 1
|
||||
if next_stop_index < 0:
|
||||
next_stop_index = stop_offset.size() - 1
|
||||
|
||||
if fireworks_scene != null:
|
||||
var marker_position = stops_position[current_stop_index]
|
||||
var firework_number = randi_range(5, 8)
|
||||
for i in range(firework_number):
|
||||
var fire_root = fireworks_scene.instantiate()
|
||||
get_tree().current_scene.add_child(fire_root)
|
||||
|
||||
var offset_x = randf_range(-5.0, 5.0)
|
||||
var offset_z = randf_range(-5.0, 5.0)
|
||||
|
||||
fire_root.global_position = marker_position + Vector3(offset_x, 0.5, offset_z)
|
||||
|
||||
if fire_root.has_method("set_color"):
|
||||
fire_root.set_color(fireworks_colors.pick_random())
|
||||
if fire_root.has_method("turnon"):
|
||||
fire_root.turnon()
|
||||
|
||||
await get_tree().create_timer(randf_range(0.3, 0.8)).timeout
|
||||
|
||||
await get_tree().create_timer(stop_time).timeout
|
||||
|
||||
stop_ongoing = false
|
||||
is_restarting = true
|
||||
|
||||
if tween_restart and tween_restart.is_valid():
|
||||
tween_restart.kill()
|
||||
|
||||
tween_restart = create_tween()
|
||||
tween_restart.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_IN_OUT)
|
||||
tween_restart.tween_property(self, "stop_multiply", 1.0, restart_time)
|
||||
tween_restart.tween_callback(func(): is_restarting = false)
|
||||
|
||||
func build_train() -> void:
|
||||
if train_model != null:
|
||||
train_instance = train_model.instantiate()
|
||||
add_child(train_instance)
|
||||
else:
|
||||
build_default_train()
|
||||
|
||||
func build_default_train() -> void:
|
||||
train_instance = Node3D.new()
|
||||
add_child(train_instance)
|
||||
|
||||
var mat_body = StandardMaterial3D.new()
|
||||
mat_body.albedo_color = Color(0.8, 0.15, 0.15)
|
||||
var mat_glass = StandardMaterial3D.new()
|
||||
mat_glass.albedo_color = Color(0.2, 0.8, 1.0)
|
||||
|
||||
var train_base = MeshInstance3D.new()
|
||||
var mesh_base = BoxMesh.new()
|
||||
mesh_base.size = Vector3(1.4, 0.8, 3.0)
|
||||
train_base.mesh = mesh_base
|
||||
train_base.material_override = mat_body
|
||||
train_base.position = Vector3(0, 0.6, 0)
|
||||
train_instance.add_child(train_base)
|
||||
|
||||
var cabin = MeshInstance3D.new()
|
||||
var mesh_cabin = BoxMesh.new()
|
||||
mesh_cabin.size = Vector3(1.4, 1.0, 1.2)
|
||||
cabin.mesh = mesh_cabin
|
||||
cabin.material_override = mat_glass
|
||||
cabin.position = Vector3(0, 1.5, -0.8)
|
||||
train_instance.add_child(cabin)
|
||||
|
||||
var stack = MeshInstance3D.new()
|
||||
var mesh_stack = CylinderMesh.new()
|
||||
mesh_stack.top_radius = 0.2
|
||||
mesh_stack.bottom_radius = 0.3
|
||||
mesh_stack.height = 0.8
|
||||
stack.mesh = mesh_stack
|
||||
stack.material_override = mat_body
|
||||
stack.position = Vector3(0, 1.2, 1.0)
|
||||
train_instance.add_child(stack)
|
||||
1
docs/museums/biome_generator/rails.gd.uid
Normal file
1
docs/museums/biome_generator/rails.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://dboerd4a6dwj7
|
||||
156
docs/museums/biome_generator/rails.tscn
Normal file
156
docs/museums/biome_generator/rails.tscn
Normal file
@@ -0,0 +1,156 @@
|
||||
[gd_scene format=3 uid="uid://0kgjaqijaqku"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="2_0y2rr"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_m6haf"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_0y2rr")
|
||||
shader_parameter/albedo_color = Color(0.08235294, 0.105882354, 0.10980392, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_duyun"]
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_w0ibq"]
|
||||
size = Vector3(0.2, 0.2, 2)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fttrp"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_0y2rr")
|
||||
shader_parameter/albedo_color = Color(0.08061289, 0.10506997, 0.11154168, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_hb1ej"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_pp4r2"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_0y2rr")
|
||||
shader_parameter/albedo_color = Color(0.2584173, 0.19781098, 0.10103748, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_pur2n"]
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_ysg1u"]
|
||||
size = Vector3(2.5, 0.15, 0.5)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_x2uev"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_0y2rr")
|
||||
shader_parameter/albedo_color = Color(0.25882354, 0.19607843, 0.101960786, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_qv8m2"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_5u2u8"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_0y2rr")
|
||||
shader_parameter/albedo_color = Color(0.22494644, 0.08867701, 0.01631488, 1)
|
||||
shader_parameter/use_texture = false
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_m6haf"]
|
||||
size = Vector3(3.705, 0.2, 1.92)
|
||||
|
||||
[node name="rails" type="Node3D" unique_id=1464572050 groups=["weather_node", "wind_node"]]
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="." unique_id=1040579890]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.7, 0.214, 0)
|
||||
material_override = SubResource("ShaderMaterial_m6haf")
|
||||
material_overlay = SubResource("ShaderMaterial_duyun")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="." unique_id=1870708237]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7, 0.214, 0)
|
||||
material_override = SubResource("ShaderMaterial_fttrp")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D3" type="MeshInstance3D" parent="." unique_id=170245195]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.05, 0.5)
|
||||
material_override = SubResource("ShaderMaterial_pp4r2")
|
||||
material_overlay = SubResource("ShaderMaterial_pur2n")
|
||||
mesh = SubResource("BoxMesh_ysg1u")
|
||||
|
||||
[node name="MeshInstance3D4" type="MeshInstance3D" parent="." unique_id=1389288735]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.05, -0.5)
|
||||
material_override = SubResource("ShaderMaterial_x2uev")
|
||||
material_overlay = SubResource("ShaderMaterial_qv8m2")
|
||||
mesh = SubResource("BoxMesh_ysg1u")
|
||||
|
||||
[node name="MeshInstance3D5" type="MeshInstance3D" parent="." unique_id=1376217081]
|
||||
visible = false
|
||||
material_override = SubResource("ShaderMaterial_5u2u8")
|
||||
mesh = SubResource("BoxMesh_m6haf")
|
||||
24
docs/museums/biome_generator/train1.tres
Normal file
24
docs/museums/biome_generator/train1.tres
Normal file
@@ -0,0 +1,24 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://df1ghvw3d61x8"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="1_i3cgb"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_i3cgb")
|
||||
shader_parameter/albedo_color = Color(0.16250518, 0.23871198, 0.21290374, 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
docs/museums/biome_generator/train2.tres
Normal file
24
docs/museums/biome_generator/train2.tres
Normal file
@@ -0,0 +1,24 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://cufolpn48xxmv"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="1_qkrhb"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_qkrhb")
|
||||
shader_parameter/albedo_color = Color(0.2520276, 0.25202766, 0.25202763, 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
docs/museums/biome_generator/train3.tres
Normal file
24
docs/museums/biome_generator/train3.tres
Normal file
@@ -0,0 +1,24 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://bu8wmlp0ffark"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="1_gtyqp"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_gtyqp")
|
||||
shader_parameter/albedo_color = Color(0.40934297, 0.38911393, 0.34586716, 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 = 5.0
|
||||
shader_parameter/light_steps = 5.0
|
||||
shader_parameter/step_softness = 0.00999999977648
|
||||
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
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
BIN
docs/museums/daynight/scenes/chunk_c_e_1/chunk_c_e_1.fbx
Normal file
BIN
docs/museums/daynight/scenes/chunk_c_e_1/chunk_c_e_1.fbx
Normal file
Binary file not shown.
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://drh4ak2aslebu"
|
||||
path="res://.godot/imported/chunk_c_e_1.fbx-fcecdb3c5458fe61bd7c9ea4a79977ed.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/museums/daynight/scenes/chunk_c_e_1/chunk_c_e_1.fbx"
|
||||
dest_files=["res://.godot/imported/chunk_c_e_1.fbx-fcecdb3c5458fe61bd7c9ea4a79977ed.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
|
||||
25
docs/museums/daynight/scenes/chunk_c_e_1/chunk_c_e_1.tscn
Normal file
25
docs/museums/daynight/scenes/chunk_c_e_1/chunk_c_e_1.tscn
Normal file
@@ -0,0 +1,25 @@
|
||||
[gd_scene format=3 uid="uid://botm0dqtr5whb"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://drh4ak2aslebu" path="res://docs/museums/daynight/scenes/chunk_c_e_1/chunk_c_e_1.fbx" id="1_hycya"]
|
||||
[ext_resource type="Script" uid="uid://dg2h4kbqe8j3m" path="res://core/biome_generator/chunk_info.gd" id="2_0urj0"]
|
||||
[ext_resource type="Material" path="res://docs/museums/daynight/scenes/chunk_c_e_1/grass_chunk.tres" id="2_oixxl"]
|
||||
[ext_resource type="PackedScene" uid="uid://jj15telqu3rp" path="res://docs/museums/daynight/scenes/grass_test/grass_test.tscn" id="4_l3pac"]
|
||||
[ext_resource type="PackedScene" uid="uid://qrvty6mbmr2m" path="res://docs/museums/daynight/scenes/chunk_c_e_1/test_orto_big.tscn" id="5_h1xfy"]
|
||||
|
||||
[node name="Chunk_C_E_1" unique_id=1874739368 groups=["weather_vegetables_node", "wind_node"] instance=ExtResource("1_hycya")]
|
||||
script = ExtResource("2_0urj0")
|
||||
|
||||
[node name="Chunk_026" parent="." index="0" unique_id=1723380962]
|
||||
material_override = ExtResource("2_oixxl")
|
||||
|
||||
[node name="Grass" parent="." index="1" unique_id=838519336 instance=ExtResource("4_l3pac")]
|
||||
transform = Transform3D(1.5, 0, 0, 0, 1, 0, 0, 0, 1.5, 0, 0.071342185, 0)
|
||||
|
||||
[node name="Test_Orto_Big" parent="." index="2" unique_id=381322647 instance=ExtResource("5_h1xfy")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.264472, 0, 6.0643373)
|
||||
|
||||
[node name="Test_Orto_Big3" parent="." index="3" unique_id=1302450866 instance=ExtResource("5_h1xfy")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.65525997, 0.264472, 0, -0.0770607)
|
||||
|
||||
[node name="Test_Orto_Big2" parent="." index="4" unique_id=309995461 instance=ExtResource("5_h1xfy")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.264472, 0, -6.083904)
|
||||
23
docs/museums/daynight/scenes/chunk_c_e_1/grass_chunk.tres
Normal file
23
docs/museums/daynight/scenes/chunk_c_e_1/grass_chunk.tres
Normal file
@@ -0,0 +1,23 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://cit5uciejjoou"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="1_8emj4"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_8emj4")
|
||||
shader_parameter/albedo_color = Color(0.22173214, 0.30581495, 0.10733434, 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/specular_size = 60.0
|
||||
shader_parameter/specular_softness = 0.01
|
||||
shader_parameter/specular_intensity_multiplier = 0.5
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
BIN
docs/museums/daynight/scenes/chunk_c_e_1/grass_round.png
Normal file
BIN
docs/museums/daynight/scenes/chunk_c_e_1/grass_round.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.2 KiB |
@@ -0,0 +1,41 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c0lstspvtbxxw"
|
||||
path.s3tc="res://.godot/imported/grass_round.png-7ab5c804b97ebf1669fa79244396d578.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/museums/daynight/scenes/chunk_c_e_1/grass_round.png"
|
||||
dest_files=["res://.godot/imported/grass_round.png-7ab5c804b97ebf1669fa79244396d578.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
|
||||
1
docs/museums/daynight/scenes/chunk_c_e_1/snow.gdshader
Normal file
1
docs/museums/daynight/scenes/chunk_c_e_1/snow.gdshader
Normal file
@@ -0,0 +1 @@
|
||||
shader_type spatial;
|
||||
@@ -0,0 +1 @@
|
||||
uid://cw6p2m4fek8rt
|
||||
BIN
docs/museums/daynight/scenes/chunk_c_e_1/test_bordisentiero.fbx
Normal file
BIN
docs/museums/daynight/scenes/chunk_c_e_1/test_bordisentiero.fbx
Normal file
Binary file not shown.
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://7ktyjmbw1lw2"
|
||||
path="res://.godot/imported/test_bordisentiero.fbx-99503bad45be9d5815297f4a961b08e9.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/museums/daynight/scenes/chunk_c_e_1/test_bordisentiero.fbx"
|
||||
dest_files=["res://.godot/imported/test_bordisentiero.fbx-99503bad45be9d5815297f4a961b08e9.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
docs/museums/daynight/scenes/chunk_c_e_1/test_orto_big.fbx
Normal file
BIN
docs/museums/daynight/scenes/chunk_c_e_1/test_orto_big.fbx
Normal file
Binary file not shown.
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://bu13utuvlgwpm"
|
||||
path="res://.godot/imported/test_orto_big.fbx-84db5cc81bc1db359cc9317e767d8bd5.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/museums/daynight/scenes/chunk_c_e_1/test_orto_big.fbx"
|
||||
dest_files=["res://.godot/imported/test_orto_big.fbx-84db5cc81bc1db359cc9317e767d8bd5.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
|
||||
355
docs/museums/daynight/scenes/chunk_c_e_1/test_orto_big.tscn
Normal file
355
docs/museums/daynight/scenes/chunk_c_e_1/test_orto_big.tscn
Normal file
File diff suppressed because one or more lines are too long
BIN
docs/museums/daynight/scenes/chunk_c_f_1/chunk_c_f_1.fbx
Normal file
BIN
docs/museums/daynight/scenes/chunk_c_f_1/chunk_c_f_1.fbx
Normal file
Binary file not shown.
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://dsh55bqjfrqfp"
|
||||
path="res://.godot/imported/chunk_c_f_1.fbx-5457c468af29ce8e8397fca8b8b6feed.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/museums/daynight/scenes/chunk_c_f_1/chunk_c_f_1.fbx"
|
||||
dest_files=["res://.godot/imported/chunk_c_f_1.fbx-5457c468af29ce8e8397fca8b8b6feed.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
|
||||
@@ -1,18 +1,18 @@
|
||||
[gd_scene format=4 uid="uid://givg3dyrxsk5"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://d3loscamahf5y" path="res://Assets/Meshes/Chunk/Bioma_C/Chunk_C_E_1.fbx" id="1_jpp2r"]
|
||||
[ext_resource type="Script" uid="uid://byluxssk112ca" path="res://Scripts/info_chunk.gd" id="2_02kkq"]
|
||||
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="3_wr3vc"]
|
||||
[ext_resource type="PackedScene" uid="uid://8jtrp8ckqf1a" path="res://Scenes/Chunk_Scene/House/House_muraglione.tscn" id="4_lunjj"]
|
||||
[ext_resource type="PackedScene" uid="uid://5sod22d0vnip" path="res://Scenes/Chunk_Scene/House/House_XL_4.tscn" id="5_tf2ul"]
|
||||
[ext_resource type="PackedScene" uid="uid://birttctl11th8" path="res://Scenes/Chunk_Scene/Chunk/Campagna/chunk_c_l_1.tscn" id="6_4h5ax"]
|
||||
[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="7_wr3vc"]
|
||||
[ext_resource type="Material" uid="uid://couj6glsrm6h3" path="res://Materials/Sentiero.tres" id="7_y2p7p"]
|
||||
[ext_resource type="PackedScene" uid="uid://dyolu5m0lgqm2" path="res://Scenes/Test/ToriGate.tscn" id="9_ji5rd"]
|
||||
[ext_resource type="PackedScene" uid="uid://jj15telqu3rp" path="res://Scenes/Test/Grass_Test.tscn" id="9_s470o"]
|
||||
[ext_resource type="PackedScene" uid="uid://d12t04rs47jq3" path="res://Scenes/Test/Tree_V1.tscn" id="10_ji5rd"]
|
||||
[ext_resource type="PackedScene" uid="uid://4iye3qapad4y" path="res://Scenes/Test/Colonnina_Blockout.tscn" id="11_4n1py"]
|
||||
[ext_resource type="PackedScene" uid="uid://bfvtlpkcnbgke" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_Rettilineo.tscn" id="12_rrcoc"]
|
||||
[ext_resource type="PackedScene" uid="uid://drh4ak2aslebu" path="res://docs/museums/daynight/scenes/chunk_c_e_1/chunk_c_e_1.fbx" id="1_jpp2r"]
|
||||
[ext_resource type="Script" uid="uid://dg2h4kbqe8j3m" path="res://core/biome_generator/chunk_info.gd" id="2_02kkq"]
|
||||
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="3_wr3vc"]
|
||||
[ext_resource type="PackedScene" uid="uid://cahsl77384kf1" path="res://docs/museums/daynight/scenes/chunk_c_f_1/house_muraglione.tscn" id="4_lunjj"]
|
||||
[ext_resource type="PackedScene" uid="uid://cl8c5n0nw30u" path="res://docs/museums/daynight/scenes/chunk_c_f_1/house_xl_4.fbx" id="5_tf2ul"]
|
||||
[ext_resource type="PackedScene" uid="uid://dsh55bqjfrqfp" path="res://docs/museums/daynight/scenes/chunk_c_f_1/chunk_c_f_1.fbx" id="6_4h5ax"]
|
||||
[ext_resource type="Shader" uid="uid://cnoe3065kb2cn" path="res://docs/museums/daynight/scenes/chunk_f_l_2/snow.gdshader" id="7_wr3vc"]
|
||||
[ext_resource type="Material" path="res://docs/museums/daynight/scenes/chunk_c_f_1/sentiero.tres" id="7_y2p7p"]
|
||||
[ext_resource type="PackedScene" path="res://docs/museums/daynight/scenes/chunk_c_f_1/tori_gate.tscn" id="9_ji5rd"]
|
||||
[ext_resource type="PackedScene" uid="uid://jj15telqu3rp" path="res://docs/museums/daynight/scenes/grass_test/grass_test.tscn" id="9_s470o"]
|
||||
[ext_resource type="PackedScene" uid="uid://d12t04rs47jq3" path="res://docs/museums/daynight/scenes/grain_test/tree_v1.tscn" id="10_ji5rd"]
|
||||
[ext_resource type="PackedScene" uid="uid://b6f7gaoatj420" path="res://docs/museums/daynight/scenes/chunk_f_l_2/column_blockout.tscn" id="11_4n1py"]
|
||||
[ext_resource type="PackedScene" uid="uid://bfvtlpkcnbgke" path="res://docs/museums/daynight/scenes/chunk_c_e_1/bordi_sentiero_rettilineo.tscn" id="12_rrcoc"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_sqcol"]
|
||||
render_priority = 0
|
||||
|
||||
BIN
docs/museums/daynight/scenes/chunk_c_f_1/chunk_c_l_1.fbx
Normal file
BIN
docs/museums/daynight/scenes/chunk_c_f_1/chunk_c_l_1.fbx
Normal file
Binary file not shown.
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://dveqtrbekuj5b"
|
||||
path="res://.godot/imported/chunk_c_l_1.fbx-a2b79ee8404f6941548c817e413a845e.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/museums/daynight/scenes/chunk_c_f_1/chunk_c_l_1.fbx"
|
||||
dest_files=["res://.godot/imported/chunk_c_l_1.fbx-a2b79ee8404f6941548c817e413a845e.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
|
||||
30
docs/museums/daynight/scenes/chunk_c_f_1/chunk_c_l_1.tscn
Normal file
30
docs/museums/daynight/scenes/chunk_c_f_1/chunk_c_l_1.tscn
Normal file
@@ -0,0 +1,30 @@
|
||||
[gd_scene format=3 uid="uid://birttctl11th8"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dveqtrbekuj5b" path="res://docs/museums/daynight/scenes/chunk_c_f_1/chunk_c_l_1.fbx" id="1_xwass"]
|
||||
[ext_resource type="Script" uid="uid://dg2h4kbqe8j3m" path="res://core/biome_generator/chunk_info.gd" id="2_ib4lo"]
|
||||
[ext_resource type="Material" path="res://docs/museums/daynight/scenes/chunk_c_f_1/grass_chunk.tres" id="3_3x6ti"]
|
||||
[ext_resource type="Material" path="res://docs/museums/daynight/scenes/chunk_c_f_1/sentiero.tres" id="4_kwc5e"]
|
||||
[ext_resource type="Material" path="res://docs/museums/daynight/scenes/chunk_c_f_1/grass_blockout.tres" id="5_ag87g"]
|
||||
|
||||
[node name="Chunk_C_L_1" unique_id=47126446 instance=ExtResource("1_xwass")]
|
||||
script = ExtResource("2_ib4lo")
|
||||
sud = true
|
||||
ovest = true
|
||||
|
||||
[node name="Chunk_005" parent="." index="0" unique_id=1667835125]
|
||||
material_override = ExtResource("3_3x6ti")
|
||||
|
||||
[node name="Chunk_036" parent="." index="1" unique_id=248347357]
|
||||
material_override = ExtResource("4_kwc5e")
|
||||
|
||||
[node name="Chunk_037" parent="." index="2" unique_id=1414101746]
|
||||
material_override = ExtResource("4_kwc5e")
|
||||
|
||||
[node name="Cube_030" parent="." index="3" unique_id=807948711]
|
||||
material_override = ExtResource("5_ag87g")
|
||||
|
||||
[node name="Cube_031" parent="." index="4" unique_id=1667337241]
|
||||
material_override = ExtResource("5_ag87g")
|
||||
|
||||
[node name="Cube_034" parent="." index="5" unique_id=934323945]
|
||||
material_override = ExtResource("5_ag87g")
|
||||
17
docs/museums/daynight/scenes/chunk_c_f_1/grass_blockout.tres
Normal file
17
docs/museums/daynight/scenes/chunk_c_f_1/grass_blockout.tres
Normal file
@@ -0,0 +1,17 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://cd34mgvhj1d0r"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="1_f84ys"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_f84ys")
|
||||
shader_parameter/albedo_color = Color(0.46056616, 0.3895911, 0.06605037, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
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/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
23
docs/museums/daynight/scenes/chunk_c_f_1/grass_chunk.tres
Normal file
23
docs/museums/daynight/scenes/chunk_c_f_1/grass_chunk.tres
Normal file
@@ -0,0 +1,23 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://cit5uciejjoou"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="1_8emj4"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_8emj4")
|
||||
shader_parameter/albedo_color = Color(0.22173214, 0.30581495, 0.10733434, 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/specular_size = 60.0
|
||||
shader_parameter/specular_softness = 0.01
|
||||
shader_parameter/specular_intensity_multiplier = 0.5
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
9
docs/museums/daynight/scenes/chunk_c_f_1/sentiero.tres
Normal file
9
docs/museums/daynight/scenes/chunk_c_f_1/sentiero.tres
Normal file
@@ -0,0 +1,9 @@
|
||||
[gd_resource type="StandardMaterial3D" format=3 uid="uid://couj6glsrm6h3"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://m5it4ge0pgtm" path="res://docs/museums/daynight/scenes/chunk_f_l_2/texture_sentiero.png" id="1_lr0wl"]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color(0.9811998, 0.8347986, 0.569528, 1)
|
||||
albedo_texture = ExtResource("1_lr0wl")
|
||||
uv1_scale = Vector3(2.165, 2.325, 1)
|
||||
uv1_offset = Vector3(-0.555, 0, 0)
|
||||
BIN
docs/museums/daynight/scenes/chunk_c_f_1/tori_gate.fbx
Normal file
BIN
docs/museums/daynight/scenes/chunk_c_f_1/tori_gate.fbx
Normal file
Binary file not shown.
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://2q81acvx3jua"
|
||||
path="res://.godot/imported/tori_gate.fbx-4d875958b5e319189bb454a0080c008f.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/museums/daynight/scenes/chunk_c_f_1/tori_gate.fbx"
|
||||
dest_files=["res://.godot/imported/tori_gate.fbx-4d875958b5e319189bb454a0080c008f.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
|
||||
37
docs/museums/daynight/scenes/chunk_c_f_1/tori_gate.tscn
Normal file
37
docs/museums/daynight/scenes/chunk_c_f_1/tori_gate.tscn
Normal file
@@ -0,0 +1,37 @@
|
||||
[gd_scene format=3 uid="uid://dyolu5m0lgqm2"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://2q81acvx3jua" path="res://docs/museums/daynight/scenes/chunk_c_f_1/tori_gate.fbx" id="1_6kg7a"]
|
||||
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="2_1ibku"]
|
||||
[ext_resource type="Shader" uid="uid://cnoe3065kb2cn" path="res://docs/museums/daynight/scenes/chunk_f_l_2/snow.gdshader" id="2_ttfuh"]
|
||||
[ext_resource type="Texture2D" uid="uid://bt2j7x0gr6ndo" path="res://docs/museums/daynight/scenes/chunk_f_l_2/palette_train.png" id="3_6126s"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_yswvv"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_ttfuh")
|
||||
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_3mqnu"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_1ibku")
|
||||
shader_parameter/albedo_color = Color(1, 1, 1, 1)
|
||||
shader_parameter/albedo_texture = ExtResource("3_6126s")
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_color = Color(0.1, 0.1, 0.2, 1)
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 5.0
|
||||
shader_parameter/gradient_intensity = 0.800000038
|
||||
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/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[node name="Tori1" unique_id=1219093134 instance=ExtResource("1_6kg7a")]
|
||||
|
||||
[node name="Sphere_001" parent="." index="0" unique_id=2137140690]
|
||||
material_overlay = SubResource("ShaderMaterial_yswvv")
|
||||
surface_material_override/0 = SubResource("ShaderMaterial_3mqnu")
|
||||
BIN
docs/museums/daynight/scenes/chunk_f_e_1/chunk_c_e_1.fbx
Normal file
BIN
docs/museums/daynight/scenes/chunk_f_e_1/chunk_c_e_1.fbx
Normal file
Binary file not shown.
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://h5r7ua0kkfqb"
|
||||
path="res://.godot/imported/chunk_c_e_1.fbx-31fc56e764f398efbd0733dddc04c528.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/museums/daynight/scenes/chunk_f_e_1/chunk_c_e_1.fbx"
|
||||
dest_files=["res://.godot/imported/chunk_c_e_1.fbx-31fc56e764f398efbd0733dddc04c528.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
|
||||
48
docs/museums/daynight/scenes/chunk_f_e_1/chunk_f_e_1.tscn
Normal file
48
docs/museums/daynight/scenes/chunk_f_e_1/chunk_f_e_1.tscn
Normal file
@@ -0,0 +1,48 @@
|
||||
[gd_scene format=3 uid="uid://bi12g5nj421jv"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://h5r7ua0kkfqb" path="res://docs/museums/daynight/scenes/chunk_f_e_1/chunk_c_e_1.fbx" id="1_anwxh"]
|
||||
[ext_resource type="Script" uid="uid://dg2h4kbqe8j3m" path="res://core/biome_generator/chunk_info.gd" id="2_scq5d"]
|
||||
[ext_resource type="PackedScene" uid="uid://jj15telqu3rp" path="res://docs/museums/daynight/scenes/grass_test/grass_test.tscn" id="4_pynx0"]
|
||||
[ext_resource type="PackedScene" uid="uid://d12t04rs47jq3" path="res://docs/museums/daynight/scenes/grain_test/tree_v1.tscn" id="5_vyg4h"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pynx0"]
|
||||
albedo_color = Color(0.3882353, 0.52156866, 0.20784314, 1)
|
||||
|
||||
[node name="Chunk_C_E_1" unique_id=1874739368 instance=ExtResource("1_anwxh")]
|
||||
script = ExtResource("2_scq5d")
|
||||
|
||||
[node name="Chunk_026" parent="." index="0" unique_id=1559745184]
|
||||
material_override = SubResource("StandardMaterial3D_pynx0")
|
||||
|
||||
[node name="TreeTest3" parent="." index="1" unique_id=838519336 instance=ExtResource("5_vyg4h")]
|
||||
transform = Transform3D(-1.6420741, 0, 0.43999258, 0, 1.7000003, 0, -0.43999258, 0, -1.6420741, -6, 0, 7)
|
||||
|
||||
[node name="TreeTest7" parent="." index="2" unique_id=294124018 instance=ExtResource("5_vyg4h")]
|
||||
transform = Transform3D(-0.8500001, 0, 1.4722435, 0, 1.9107201, 0, -1.4722435, 0, -0.8500001, -1, 0, 6)
|
||||
|
||||
[node name="TreeTest8" parent="." index="3" unique_id=1347052071 instance=ExtResource("5_vyg4h")]
|
||||
transform = Transform3D(-0.8500001, 0, 1.4722435, 0, 1.7000005, 0, -1.4722435, 0, -0.8500001, 0, 0, 0)
|
||||
|
||||
[node name="TreeTest9" parent="." index="4" unique_id=809650464 instance=ExtResource("5_vyg4h")]
|
||||
transform = Transform3D(-1.7000006, 0, -5.9604645e-08, 0, 1.5217258, 0, 5.9604645e-08, 0, -1.7000006, -6, 0, 0)
|
||||
|
||||
[node name="TreeTest10" parent="." index="5" unique_id=874463260 instance=ExtResource("5_vyg4h")]
|
||||
transform = Transform3D(-0.8500001, 0, 1.4722435, 0, 1.8421628, 0, -1.4722435, 0, -0.8500001, -8, 0, -4)
|
||||
|
||||
[node name="TreeTest11" parent="." index="6" unique_id=1251577795 instance=ExtResource("5_vyg4h")]
|
||||
transform = Transform3D(0.43999267, 0, 1.6420743, 0, 1.5772889, 0, -1.6420743, 0, 0.43999267, -5, 0, -6)
|
||||
|
||||
[node name="TreeTest12" parent="." index="7" unique_id=1738211323 instance=ExtResource("5_vyg4h")]
|
||||
transform = Transform3D(1.6420745, 0, 0.4399924, 0, 2.0050228, 0, -0.4399924, 0, 1.6420745, 0, 0, -8)
|
||||
|
||||
[node name="TreeTest4" parent="." index="8" unique_id=2002110381 instance=ExtResource("5_vyg4h")]
|
||||
transform = Transform3D(1.2020817, 0, 1.2020817, 0, 1.4763381, 0, -1.2020817, 0, 1.2020817, 5, 0, -8)
|
||||
|
||||
[node name="TreeTest6" parent="." index="9" unique_id=904012304 instance=ExtResource("5_vyg4h")]
|
||||
transform = Transform3D(-1.2020816, 0, 1.2020816, 0, 2.069493, 0, -1.2020816, 0, -1.2020816, 7, 0, 0)
|
||||
|
||||
[node name="TreeTest5" parent="." index="10" unique_id=286631858 instance=ExtResource("5_vyg4h")]
|
||||
transform = Transform3D(1.2020817, 0, -1.2020817, 0, 1.6411026, 0, 1.2020817, 0, 1.2020817, 7, 0, 4)
|
||||
|
||||
[node name="Grass" parent="." index="11" unique_id=329885752 instance=ExtResource("4_pynx0")]
|
||||
transform = Transform3D(1.5, 0, 0, 0, 1, 0, 0, 0, 1.5, 0, 0.2, 0)
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
BIN
docs/museums/daynight/scenes/chunk_f_l_2/borderpath.fbx
Normal file
BIN
docs/museums/daynight/scenes/chunk_f_l_2/borderpath.fbx
Normal file
Binary file not shown.
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://bwfw07dhn5hwa"
|
||||
path="res://.godot/imported/borderpath.fbx-230ca6d3b71824fc98f419939c638ce3.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/museums/daynight/scenes/chunk_f_l_2/borderpath.fbx"
|
||||
dest_files=["res://.godot/imported/borderpath.fbx-230ca6d3b71824fc98f419939c638ce3.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
docs/museums/daynight/scenes/chunk_f_l_2/chunk_c_l_2.fbx
Normal file
BIN
docs/museums/daynight/scenes/chunk_f_l_2/chunk_c_l_2.fbx
Normal file
Binary file not shown.
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://rxo4x8lqnpds"
|
||||
path="res://.godot/imported/chunk_c_l_2.fbx-e6504c3015cca0b63cb60efd99ae351e.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/museums/daynight/scenes/chunk_f_l_2/chunk_c_l_2.fbx"
|
||||
dest_files=["res://.godot/imported/chunk_c_l_2.fbx-e6504c3015cca0b63cb60efd99ae351e.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
|
||||
448
docs/museums/daynight/scenes/chunk_f_l_2/chunk_f_l_2.tscn
Normal file
448
docs/museums/daynight/scenes/chunk_f_l_2/chunk_f_l_2.tscn
Normal file
File diff suppressed because one or more lines are too long
BIN
docs/museums/daynight/scenes/chunk_f_l_2/column_blockout.fbx
Normal file
BIN
docs/museums/daynight/scenes/chunk_f_l_2/column_blockout.fbx
Normal file
Binary file not shown.
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://duc107s1wtp0b"
|
||||
path="res://.godot/imported/column_blockout.fbx-292ffe04800976fa87bba71a681c4a88.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/museums/daynight/scenes/chunk_f_l_2/column_blockout.fbx"
|
||||
dest_files=["res://.godot/imported/column_blockout.fbx-292ffe04800976fa87bba71a681c4a88.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
|
||||
@@ -0,0 +1,74 @@
|
||||
[gd_scene format=3 uid="uid://b6f7gaoatj420"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://duc107s1wtp0b" path="res://docs/museums/daynight/scenes/chunk_f_l_2/column_blockout.fbx" id="1_iaqs2"]
|
||||
[ext_resource type="Material" path="res://docs/museums/daynight/scenes/chunk_f_l_2/palette_cel.tres" id="2_hqihs"]
|
||||
[ext_resource type="Texture2D" uid="uid://bt2j7x0gr6ndo" path="res://docs/museums/daynight/scenes/chunk_f_l_2/palette_train.png" id="3_jfj3v"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_dg33q"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_lrklx"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_bwl3q"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_n0srh"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_0mbrm"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6tlqt"]
|
||||
specular_mode = 1
|
||||
disable_ambient_light = true
|
||||
disable_fog = true
|
||||
disable_specular_occlusion = true
|
||||
albedo_texture = ExtResource("3_jfj3v")
|
||||
emission_enabled = true
|
||||
emission_energy_multiplier = 8.0
|
||||
emission_texture = ExtResource("3_jfj3v")
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_7dodf"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_63xe0"]
|
||||
|
||||
[node name="ArtTest3" unique_id=143340255 groups=["weather_node", "wind_node"] instance=ExtResource("1_iaqs2")]
|
||||
|
||||
[node name="Empty" parent="." index="0" unique_id=1251372369]
|
||||
transform = Transform3D(50, 0, 0, 0, -2.1855694e-06, 50, 0, -50, -2.1855694e-06, 0, 0, 0)
|
||||
|
||||
[node name="Cube_004" parent="Empty" index="0" unique_id=143665017]
|
||||
material_override = ExtResource("2_hqihs")
|
||||
material_overlay = SubResource("ShaderMaterial_dg33q")
|
||||
|
||||
[node name="Cube_005" parent="Empty" index="1" unique_id=141217713]
|
||||
material_override = ExtResource("2_hqihs")
|
||||
material_overlay = SubResource("ShaderMaterial_lrklx")
|
||||
|
||||
[node name="Cube_006" parent="Empty" index="2" unique_id=2078409050]
|
||||
material_override = ExtResource("2_hqihs")
|
||||
material_overlay = SubResource("ShaderMaterial_bwl3q")
|
||||
|
||||
[node name="Cube_007" parent="Empty" index="3" unique_id=706314829]
|
||||
material_override = ExtResource("2_hqihs")
|
||||
material_overlay = SubResource("ShaderMaterial_n0srh")
|
||||
|
||||
[node name="Cube_008" parent="Empty" index="4" unique_id=1341246711]
|
||||
material_override = ExtResource("2_hqihs")
|
||||
material_overlay = SubResource("ShaderMaterial_0mbrm")
|
||||
|
||||
[node name="Cube_009" parent="Empty" index="5" unique_id=1358876075]
|
||||
material_override = SubResource("StandardMaterial3D_6tlqt")
|
||||
|
||||
[node name="OmniLight3D" type="OmniLight3D" parent="Empty/Cube_009" index="0" unique_id=1295876317]
|
||||
transform = Transform3D(0.02, 0, 0, 0, 0.02, -5.551115e-17, 0, 5.551115e-17, 0.02, 0, -1.8613413e-09, 0.02244059)
|
||||
light_color = Color(0.8666949, 0.43160796, 0.0022084315, 1)
|
||||
light_specular = 0.0
|
||||
distance_fade_begin = 0.0
|
||||
omni_range = 15.0
|
||||
omni_attenuation = 2.621
|
||||
omni_shadow_mode = 0
|
||||
|
||||
[node name="Cube_011" parent="Empty" index="6" unique_id=1669669268]
|
||||
material_override = ExtResource("2_hqihs")
|
||||
material_overlay = SubResource("ShaderMaterial_7dodf")
|
||||
|
||||
[node name="tetto 2" parent="Empty" index="7" unique_id=1674600040]
|
||||
material_override = ExtResource("2_hqihs")
|
||||
material_overlay = SubResource("ShaderMaterial_63xe0")
|
||||
31
docs/museums/daynight/scenes/chunk_f_l_2/house_test_4.tscn
Normal file
31
docs/museums/daynight/scenes/chunk_f_l_2/house_test_4.tscn
Normal file
@@ -0,0 +1,31 @@
|
||||
[gd_scene format=3 uid="uid://mj15bepbgy02"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://d25nuo0iyscu0" path="res://docs/museums/daynight/scenes/chunk_f_l_2/housetest_4.fbx" id="1_03u1s"]
|
||||
[ext_resource type="Material" uid="uid://biaudrjlfoflm" path="res://docs/museums/daynight/scenes/chunk_c_f_1/house.tres" id="2_n4qy2"]
|
||||
[ext_resource type="Shader" uid="uid://cnoe3065kb2cn" path="res://docs/museums/daynight/scenes/chunk_f_l_2/snow.gdshader" id="3_n4qy2"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_0x3ja"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("3_n4qy2")
|
||||
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_n4qy2"]
|
||||
offsets = PackedFloat32Array(0.9980237, 1)
|
||||
colors = PackedColorArray(0, 0, 0, 0.5882353, 0, 0, 0, 0)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_0x3ja"]
|
||||
gradient = SubResource("Gradient_n4qy2")
|
||||
fill = 2
|
||||
fill_from = Vector2(0.5, 0.5)
|
||||
fill_to = Vector2(0.9017094, 0.12820514)
|
||||
|
||||
[node name="HouseTest_4" unique_id=462882013 instance=ExtResource("1_03u1s")]
|
||||
|
||||
[node name="Cube_008" parent="." index="0" unique_id=2087805025]
|
||||
material_override = ExtResource("2_n4qy2")
|
||||
material_overlay = SubResource("ShaderMaterial_0x3ja")
|
||||
|
||||
[node name="Shadow" type="Decal" parent="." index="1" unique_id=30846848]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.059038162, 0, 0)
|
||||
size = Vector3(9, 0.5, 9)
|
||||
texture_albedo = SubResource("GradientTexture2D_0x3ja")
|
||||
BIN
docs/museums/daynight/scenes/chunk_f_l_2/housetest_4.fbx
Normal file
BIN
docs/museums/daynight/scenes/chunk_f_l_2/housetest_4.fbx
Normal file
Binary file not shown.
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://d25nuo0iyscu0"
|
||||
path="res://.godot/imported/housetest_4.fbx-23d43f0f665bfe6ba3569f6aca99ab7a.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/museums/daynight/scenes/chunk_f_l_2/housetest_4.fbx"
|
||||
dest_files=["res://.godot/imported/housetest_4.fbx-23d43f0f665bfe6ba3569f6aca99ab7a.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
docs/museums/daynight/scenes/chunk_f_l_2/leaf_test.png
Normal file
BIN
docs/museums/daynight/scenes/chunk_f_l_2/leaf_test.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 185 KiB |
@@ -0,0 +1,41 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bygihc62pho6a"
|
||||
path.s3tc="res://.godot/imported/leaf_test.png-31bf3b97663f194dd5e3af26288e2cf2.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/museums/daynight/scenes/chunk_f_l_2/leaf_test.png"
|
||||
dest_files=["res://.godot/imported/leaf_test.png-31bf3b97663f194dd5e3af26288e2cf2.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
|
||||
19
docs/museums/daynight/scenes/chunk_f_l_2/palette_cel.tres
Normal file
19
docs/museums/daynight/scenes/chunk_f_l_2/palette_cel.tres
Normal file
@@ -0,0 +1,19 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://da8erd0d83kog"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="1_bjiey"]
|
||||
[ext_resource type="Texture2D" uid="uid://bt2j7x0gr6ndo" path="res://docs/museums/daynight/scenes/chunk_f_l_2/palette_train.png" id="2_e8nia"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_bjiey")
|
||||
shader_parameter/albedo_color = Color(1, 1, 1, 1)
|
||||
shader_parameter/albedo_texture = ExtResource("2_e8nia")
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/light_direction = Vector3(0.5, 1, 0.5)
|
||||
shader_parameter/light_steps = 4.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/emission_color = Color(1, 1, 1, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
BIN
docs/museums/daynight/scenes/chunk_f_l_2/palette_train.png
Normal file
BIN
docs/museums/daynight/scenes/chunk_f_l_2/palette_train.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
@@ -0,0 +1,41 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bt2j7x0gr6ndo"
|
||||
path.s3tc="res://.godot/imported/palette_train.png-cd3116eb3f79c169cc5b38ef39e56b4d.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/museums/daynight/scenes/chunk_f_l_2/palette_train.png"
|
||||
dest_files=["res://.godot/imported/palette_train.png-cd3116eb3f79c169cc5b38ef39e56b4d.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
|
||||
9
docs/museums/daynight/scenes/chunk_f_l_2/path.tres
Normal file
9
docs/museums/daynight/scenes/chunk_f_l_2/path.tres
Normal file
@@ -0,0 +1,9 @@
|
||||
[gd_resource type="StandardMaterial3D" format=3 uid="uid://couj6glsrm6h3"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://m5it4ge0pgtm" path="res://docs/museums/daynight/scenes/chunk_f_l_2/texture_sentiero.png" id="1_lr0wl"]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color(0.9811998, 0.8347986, 0.569528, 1)
|
||||
albedo_texture = ExtResource("1_lr0wl")
|
||||
uv1_scale = Vector3(2.165, 2.325, 1)
|
||||
uv1_offset = Vector3(-0.555, 0, 0)
|
||||
BIN
docs/museums/daynight/scenes/chunk_f_l_2/sk_mannequin.fbx
Normal file
BIN
docs/museums/daynight/scenes/chunk_f_l_2/sk_mannequin.fbx
Normal file
Binary file not shown.
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://dtg6opak36yf8"
|
||||
path="res://.godot/imported/sk_mannequin.fbx-3819102142fe791f18bae592ce6f6980.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/museums/daynight/scenes/chunk_f_l_2/sk_mannequin.fbx"
|
||||
dest_files=["res://.godot/imported/sk_mannequin.fbx-3819102142fe791f18bae592ce6f6980.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
|
||||
2
docs/museums/daynight/scenes/chunk_f_l_2/snow.gdshader
Normal file
2
docs/museums/daynight/scenes/chunk_f_l_2/snow.gdshader
Normal file
@@ -0,0 +1,2 @@
|
||||
shader_type spatial;
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
uid://cnoe3065kb2cn
|
||||
BIN
docs/museums/daynight/scenes/chunk_f_l_2/texture_sentiero.png
Normal file
BIN
docs/museums/daynight/scenes/chunk_f_l_2/texture_sentiero.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 852 KiB |
@@ -0,0 +1,41 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://m5it4ge0pgtm"
|
||||
path.s3tc="res://.godot/imported/texture_sentiero.png-0fd05273a2bc4f18c093a716b3a96088.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/museums/daynight/scenes/chunk_f_l_2/texture_sentiero.png"
|
||||
dest_files=["res://.godot/imported/texture_sentiero.png-0fd05273a2bc4f18c093a716b3a96088.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
|
||||
@@ -1,23 +1,56 @@
|
||||
[gd_scene format=4 uid="uid://igbtt2ypx0ks"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://cl3xspxrqcyfg" path="res://docs/museums/daynight/scenes/fences.fbx" id="1_j7em5"]
|
||||
[ext_resource type="Material" path="res://docs/museums/daynight/scenes/fences.tres" id="2_2tbpd"]
|
||||
[ext_resource type="Material" uid="uid://wkegx4a21x7u" path="res://docs/museums/daynight/scenes/fences.tres" id="2_2tbpd"]
|
||||
[ext_resource type="Shader" uid="uid://do8puw7u8dvry" path="res://core/daynight/weather_plain_shader.gdshader" id="3_xsxbg"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_2jjob"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("3_xsxbg")
|
||||
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
|
||||
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
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_5qj1r"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("3_xsxbg")
|
||||
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
|
||||
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
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_xsxbg"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("3_xsxbg")
|
||||
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
|
||||
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
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1jtrr"]
|
||||
resource_name = "lambert48"
|
||||
@@ -62,17 +95,28 @@ shadow_mesh = SubResource("ArrayMesh_d4r25")
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_p4545"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("3_xsxbg")
|
||||
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
|
||||
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
|
||||
|
||||
[node name="MSH_Staccionate" unique_id=118332436 instance=ExtResource("1_j7em5")]
|
||||
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0)
|
||||
|
||||
[node name="MSH_Staccioanta_3" parent="." index="0" unique_id=1218567814]
|
||||
[node name="MSH_Staccioanta_3" parent="." index="0" unique_id=518174525]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0037837923, 0, 0)
|
||||
material_override = ExtResource("2_2tbpd")
|
||||
material_overlay = SubResource("ShaderMaterial_2jjob")
|
||||
|
||||
[node name="MSH_Staccioanta_2" parent="." index="1" unique_id=223276087]
|
||||
[node name="MSH_Staccioanta_2" parent="." index="1" unique_id=1761065999]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.99746555, 0, 0)
|
||||
material_override = ExtResource("2_2tbpd")
|
||||
material_overlay = SubResource("ShaderMaterial_5qj1r")
|
||||
@@ -82,9 +126,8 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.3966007, 0, 0)
|
||||
material_override = ExtResource("2_2tbpd")
|
||||
material_overlay = SubResource("ShaderMaterial_xsxbg")
|
||||
mesh = SubResource("ArrayMesh_h5j06")
|
||||
skeleton = NodePath("")
|
||||
|
||||
[node name="MSH_Staccioanta_1" parent="." index="3" unique_id=1140003948]
|
||||
[node name="MSH_Staccioanta_1" parent="." index="3" unique_id=1389585160]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.0379614, 0, 0)
|
||||
material_override = ExtResource("2_2tbpd")
|
||||
material_overlay = SubResource("ShaderMaterial_p4545")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[gd_scene format=4 uid="uid://dpstb26gs581l"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://c2j2jey3l0hv4" path="res://docs/museums/daynight/scenes/mountain_test/chunck_m_n-o-e-s1.fbx" id="1_anh2f"]
|
||||
[ext_resource type="Script" uid="uid://s1ohbgbpyu5n" path="res://docs/museums/daynight/scenes/mountain_test/info_chunk.gd" id="2_2wsw6"]
|
||||
[ext_resource type="Script" uid="uid://dg2h4kbqe8j3m" path="res://core/biome_generator/chunk_info.gd" id="2_2wsw6"]
|
||||
[ext_resource type="Material" path="res://docs/museums/daynight/scenes/mountain_test/treno3.tres" id="3_grv42"]
|
||||
[ext_resource type="Material" path="res://docs/museums/daynight/scenes/mountain_test/trainchunk.tres" id="4_0s706"]
|
||||
[ext_resource type="Material" path="res://docs/museums/daynight/scenes/mountain_test/treno1.tres" id="5_e6288"]
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
extends Node3D
|
||||
class_name InfoChunk
|
||||
|
||||
@export_enum("Bioma", "Binario_Dritto", "Binario_Curva") var tipo_chunk: int = 0
|
||||
|
||||
@export_group("Regole Set Piece (Pezzi Unici)")
|
||||
@export var bioma_esclusivo: String = "" # Es: scrivi "Foresta"
|
||||
|
||||
@export_group("Uscite Base (Senza Rotazione)")
|
||||
@export var nord: bool = false
|
||||
@export var est: bool = false
|
||||
@export var sud: bool = false
|
||||
@export var ovest: bool = false
|
||||
|
||||
@export_group("Altitudini Bordi (Livelli 0, 1, 2)")
|
||||
@export var altezza_nord: int = 0
|
||||
@export var altezza_est: int = 0
|
||||
@export var altezza_sud: int = 0
|
||||
@export var altezza_ovest: int = 0
|
||||
|
||||
# --- NUOVA AGGIUNTA AUTOMATICA ---
|
||||
func _ready() -> void:
|
||||
# Se hai scritto un bioma nell'Inspector, il pezzo capisce di essere
|
||||
# un pezzo speciale e si aggiunge al gruppo dei fantasmi da solo!
|
||||
if bioma_esclusivo != "":
|
||||
add_to_group("set_pieces")
|
||||
|
||||
# ... qui sotto continua la tua normale funzione get_dati_ruotati() ...
|
||||
|
||||
func get_dati_ruotati(scatti_90_gradi: int) -> Dictionary:
|
||||
var uscite_originali = [nord, est, sud, ovest]
|
||||
var altezze_originali = [altezza_nord, altezza_est, altezza_sud, altezza_ovest]
|
||||
|
||||
var uscite_calcolate = []
|
||||
var altezze_calcolate = []
|
||||
|
||||
for i in range(4):
|
||||
var indice = (i - scatti_90_gradi + 4) % 4
|
||||
uscite_calcolate.append(uscite_originali[indice])
|
||||
altezze_calcolate.append(altezze_originali[indice])
|
||||
|
||||
return {
|
||||
"connessioni": {
|
||||
"nord": uscite_calcolate[0], "est": uscite_calcolate[1],
|
||||
"sud": uscite_calcolate[2], "ovest": uscite_calcolate[3]
|
||||
},
|
||||
"altezze": {
|
||||
"nord": altezze_calcolate[0], "est": altezze_calcolate[1],
|
||||
"sud": altezze_calcolate[2], "ovest": altezze_calcolate[3]
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
uid://s1ohbgbpyu5n
|
||||
40
icon.png.import
Normal file
40
icon.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bfar1kk3pgq8f"
|
||||
path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.png"
|
||||
dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
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=false
|
||||
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=1
|
||||
@@ -13,7 +13,7 @@ config_version=5
|
||||
config/name="tgcc"
|
||||
run/main_scene="uid://bjkhawylawqof"
|
||||
config/features=PackedStringArray("4.6", "Forward Plus")
|
||||
config/icon="res://icon.svg"
|
||||
config/icon="uid://bfar1kk3pgq8f"
|
||||
|
||||
[autoload]
|
||||
|
||||
@@ -23,6 +23,7 @@ UIEvents="*uid://dehu28iq27mbn"
|
||||
|
||||
window/size/viewport_width=1920
|
||||
window/size/viewport_height=1080
|
||||
window/size/mode=3
|
||||
window/stretch/mode="canvas_items"
|
||||
window/stretch/aspect="expand"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user