120 lines
2.1 KiB
GDScript
120 lines
2.1 KiB
GDScript
extends Node3D
|
|
|
|
var id = null
|
|
|
|
var _debug_sel_mode = {
|
|
1: "not selected",
|
|
2: "room select",
|
|
3: "build select",
|
|
4: "invalid select"
|
|
}
|
|
|
|
var _debug_con_mode = {
|
|
1: "non interactalble",
|
|
2: "closed",
|
|
3: "open",
|
|
4: "built",
|
|
5: "reinforced",
|
|
6: "under construction"
|
|
}
|
|
|
|
var _debug_face_mode = {
|
|
1: "none",
|
|
2: "full",
|
|
3: "partial",
|
|
4: "door"
|
|
}
|
|
|
|
# list of objects contained within
|
|
|
|
var construction_mode = 0
|
|
|
|
var selection_mode = 0
|
|
|
|
var orange = preload("res://tiles/base_tile/orange.tres")
|
|
var gray = preload("res://tiles/base_tile/gray.tres")
|
|
var red = preload("res://tiles/base_tile/red.tres")
|
|
var blue = preload("res://tiles/base_tile/blue.tres")
|
|
var lightblue = preload("res://tiles/base_tile/lightblue.tres")
|
|
|
|
var faces = {
|
|
"floor": null,
|
|
"north": null,
|
|
"east": null,
|
|
"south": null,
|
|
"west": null
|
|
}
|
|
|
|
func _ready():
|
|
pass
|
|
|
|
func invalid_this_tile():
|
|
pass
|
|
|
|
func update(sel_mode: int = 0, con_mode: int = 0):
|
|
|
|
if sel_mode:
|
|
if sel_mode != selection_mode:
|
|
|
|
selection_mode = sel_mode
|
|
|
|
if sel_mode == 1:
|
|
# not selected
|
|
$Floor/FloorMesh.set_material_overlay(null)
|
|
|
|
elif sel_mode == 2:
|
|
# room selection
|
|
for i in $Walls.get_children():
|
|
i.Mesh.set_material_override(orange)
|
|
|
|
elif sel_mode == 3:
|
|
# build selection
|
|
$Floor/FloorMesh.set_material_overlay(lightblue)
|
|
#for i in $Walls.get_children():
|
|
#i.Mesh.set_material_override(blue)
|
|
|
|
elif sel_mode == 4:
|
|
# invalid selection
|
|
$Floor/FloorMesh.set_material_overlay(orange)
|
|
#for i in $Walls.get_children():
|
|
#i.set_material_override(red)
|
|
else:
|
|
pass
|
|
|
|
if con_mode:
|
|
if con_mode != construction_mode:
|
|
|
|
construction_mode = con_mode
|
|
|
|
if con_mode == 1:
|
|
# non-interactable
|
|
$Label3D.text = "1"
|
|
pass
|
|
|
|
elif con_mode == 2:
|
|
# closed
|
|
$Label3D.text = "2"
|
|
$Floor/FloorMesh.set_material_override(gray)
|
|
pass
|
|
|
|
elif con_mode == 3:
|
|
# open
|
|
pass
|
|
|
|
elif con_mode == 4:
|
|
# built
|
|
$Label3D.text = "4"
|
|
$Floor/FloorMesh.set_material_override(null)
|
|
pass
|
|
|
|
elif con_mode == 5:
|
|
# reinforced
|
|
pass
|
|
|
|
elif con_mode == 6:
|
|
# under construction
|
|
pass
|
|
|
|
else:
|
|
pass
|