68 lines
2.3 KiB
GDScript3
68 lines
2.3 KiB
GDScript3
|
extends TileMapLayer
|
||
|
|
||
|
|
||
|
# Called when the node enters the scene tree for the first time.
|
||
|
func _ready() -> void:
|
||
|
pass # Replace with function body.
|
||
|
|
||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||
|
func _process(_delta: float) -> void:
|
||
|
pass
|
||
|
|
||
|
|
||
|
func _on_main_character_gender_changed(new_gender: String) -> void:
|
||
|
for coord in get_used_cells():
|
||
|
var tile_data = get_cell_tile_data(coord)
|
||
|
if not tile_data:
|
||
|
continue
|
||
|
var tile_type = tile_data.get_custom_data("gender")
|
||
|
var arr = tile_type.split(".")
|
||
|
if arr.size() != 3:
|
||
|
continue
|
||
|
var tile_gender = arr[0]
|
||
|
var tile_party = arr[1]
|
||
|
var tile_on = arr[2]
|
||
|
var atlas_coords = get_cell_atlas_coords(coord)
|
||
|
if new_gender == "female":
|
||
|
if tile_gender == "girl" and tile_on == "off":
|
||
|
if tile_party == "pillow":
|
||
|
atlas_coords.y -= 4 + 4 + 4
|
||
|
set_cell(coord, 6, atlas_coords)
|
||
|
if tile_party == "disco":
|
||
|
atlas_coords.y -= 4
|
||
|
set_cell(coord, 6, atlas_coords)
|
||
|
if tile_gender == "boy" and tile_on == "on":
|
||
|
if tile_party == "pillow":
|
||
|
atlas_coords.y += 4
|
||
|
set_cell(coord, 6, atlas_coords)
|
||
|
if tile_party == "disco":
|
||
|
atlas_coords.y += 4
|
||
|
set_cell(coord, 6, atlas_coords)
|
||
|
if new_gender == "male":
|
||
|
if tile_gender == "girl" and tile_on == "on":
|
||
|
if tile_party == "pillow":
|
||
|
atlas_coords.y += 4 + 4 + 4
|
||
|
set_cell(coord, 6, atlas_coords)
|
||
|
if tile_party == "disco":
|
||
|
atlas_coords.y += 4
|
||
|
set_cell(coord, 6, atlas_coords)
|
||
|
if tile_gender == "boy" and tile_on == "off":
|
||
|
if tile_party == "pillow":
|
||
|
atlas_coords.y -= 4
|
||
|
set_cell(coord, 6, atlas_coords)
|
||
|
if tile_party == "disco":
|
||
|
atlas_coords.y -= 4
|
||
|
set_cell(coord, 6, atlas_coords)
|
||
|
|
||
|
var female_active_cells = get_used_cells_by_id(-1, Vector2i(0,0))
|
||
|
var female_inactive_cells = get_used_cells_by_id(-1, Vector2i(0,3))
|
||
|
var male_active_cells = get_used_cells_by_id(-1, Vector2i(0,1))
|
||
|
var male_inactive_cells = get_used_cells_by_id(-1, Vector2i(0,4))
|
||
|
if new_gender == "female":
|
||
|
for coord in female_inactive_cells: set_cell(coord, 2, Vector2i(0,0))
|
||
|
for coord in male_active_cells: set_cell(coord, 2, Vector2i(0,4))
|
||
|
if new_gender == "male":
|
||
|
for coord in female_active_cells: set_cell(coord, 2, Vector2i(0,3))
|
||
|
for coord in male_inactive_cells: set_cell(coord, 2, Vector2i(0,1))
|
||
|
|