Bug fixes and cleanup
This commit is contained in:
parent
f309d023f0
commit
b94b414bb3
|
@ -38,7 +38,11 @@ func update_house():
|
||||||
create_room(new_room.name, 0)
|
create_room(new_room.name, 0)
|
||||||
|
|
||||||
for entity in Store.house.entities:
|
for entity in Store.house.entities:
|
||||||
var entity_instance = create_entity(entity.id, entity.position)
|
var entity_instance = create_entity_in(entity.id, entity.room)
|
||||||
|
|
||||||
|
if entity_instance == null:
|
||||||
|
continue
|
||||||
|
|
||||||
entity_instance.global_rotation = entity.rotation
|
entity_instance.global_rotation = entity.rotation
|
||||||
|
|
||||||
func create_room(room_name: String, level: int) -> RoomType:
|
func create_room(room_name: String, level: int) -> RoomType:
|
||||||
|
@ -92,6 +96,7 @@ func delete_room(room_name):
|
||||||
|
|
||||||
room.get_parent().remove_child(room)
|
room.get_parent().remove_child(room)
|
||||||
room.queue_free()
|
room.queue_free()
|
||||||
|
await room.tree_exited
|
||||||
|
|
||||||
func is_editiong(room_name):
|
func is_editiong(room_name):
|
||||||
return editing_room != null && editing_room.name == room_name
|
return editing_room != null && editing_room.name == room_name
|
||||||
|
@ -140,12 +145,12 @@ func create_entity(entity_id: String, entity_position: Vector3):
|
||||||
var room = find_room_at(entity_position)
|
var room = find_room_at(entity_position)
|
||||||
|
|
||||||
if room == null:
|
if room == null:
|
||||||
return
|
return null
|
||||||
|
|
||||||
var entity = EntityFactory.create_entity(entity_id)
|
var entity = EntityFactory.create_entity(entity_id)
|
||||||
|
|
||||||
if entity == null:
|
if entity == null:
|
||||||
return
|
return null
|
||||||
|
|
||||||
room.get_node("Entities").add_child(entity)
|
room.get_node("Entities").add_child(entity)
|
||||||
entity.global_position = entity_position
|
entity.global_position = entity_position
|
||||||
|
@ -154,6 +159,24 @@ func create_entity(entity_id: String, entity_position: Vector3):
|
||||||
|
|
||||||
return entity
|
return entity
|
||||||
|
|
||||||
|
func create_entity_in(entity_id: String, room_name: String):
|
||||||
|
var room = find_room(room_name)
|
||||||
|
|
||||||
|
if room == null:
|
||||||
|
return null
|
||||||
|
|
||||||
|
var entity = EntityFactory.create_entity(entity_id)
|
||||||
|
|
||||||
|
if entity == null:
|
||||||
|
return null
|
||||||
|
|
||||||
|
room.get_node("Entities").add_child(entity)
|
||||||
|
entity.global_position = room.get_aabb().position + room.get_aabb().size / 2.0
|
||||||
|
|
||||||
|
save_all_entities()
|
||||||
|
|
||||||
|
return entity
|
||||||
|
|
||||||
func update_mini_view():
|
func update_mini_view():
|
||||||
collision_shape.disabled = !mini_view
|
collision_shape.disabled = !mini_view
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,7 @@ func _on_enter():
|
||||||
add_floor_corner(Vector3(corners[0].x, 0, corners[0].y))
|
add_floor_corner(Vector3(corners[0].x, 0, corners[0].y))
|
||||||
add_height_corner(Vector3(corners[0].x, 0, corners[0].y))
|
add_height_corner(Vector3(corners[0].x, 0, corners[0].y))
|
||||||
room.room_ceiling.position.y = room_store.height
|
room.room_ceiling.position.y = room_store.height
|
||||||
|
height_edge.align_to_corners(floor_corner.global_position, height_corner.global_position)
|
||||||
|
|
||||||
for i in range(1, corners.size()):
|
for i in range(1, corners.size()):
|
||||||
add_corner(Vector3(corners[i].x, 0, corners[i].y))
|
add_corner(Vector3(corners[i].x, 0, corners[i].y))
|
||||||
|
@ -117,14 +118,14 @@ func add_floor_corner(position: Vector3):
|
||||||
|
|
||||||
height_edge.align_to_corners(new_position, new_position + Vector3.UP * room.room_ceiling.global_position.y)
|
height_edge.align_to_corners(new_position, new_position + Vector3.UP * room.room_ceiling.global_position.y)
|
||||||
|
|
||||||
room.get_corner(moving_index).position.x = new_position.x
|
get_corner(moving_index).position.x = new_position.x
|
||||||
room.get_corner(moving_index).position.z = new_position.z
|
get_corner(moving_index).position.z = new_position.z
|
||||||
|
|
||||||
if room.wall_edges.get_child_count() == 0:
|
if room.wall_edges.get_child_count() == 0:
|
||||||
return
|
return
|
||||||
|
|
||||||
room.get_edge(moving_index).align_to_corners(new_position, room.get_corner(moving_index + 1).position)
|
get_edge(moving_index).align_to_corners(new_position, get_corner(moving_index + 1).position)
|
||||||
room.get_edge(moving_index - 1).align_to_corners(room.get_corner(moving_index - 1).position, new_position)
|
get_edge(moving_index - 1).align_to_corners(get_corner(moving_index - 1).position, new_position)
|
||||||
)
|
)
|
||||||
|
|
||||||
floor_corner.get_node("Clickable").on_grab_up.connect(func(_event):
|
floor_corner.get_node("Clickable").on_grab_up.connect(func(_event):
|
||||||
|
@ -199,13 +200,13 @@ func add_corner(position: Vector3, index: int = -1):
|
||||||
|
|
||||||
new_position = event.ray.global_position + direction
|
new_position = event.ray.global_position + direction
|
||||||
|
|
||||||
room.get_corner(moving_index).global_position = new_position
|
get_corner(moving_index).global_position = new_position
|
||||||
|
|
||||||
if room.wall_edges.get_child_count() == 0:
|
if room.wall_edges.get_child_count() == 0:
|
||||||
return
|
return
|
||||||
|
|
||||||
room.get_edge(moving_index).align_to_corners(room.get_corner(moving_index - 1).position, room.get_corner(moving_index + 1).position)
|
get_edge(moving_index).align_to_corners(get_corner(moving_index - 1).position, get_corner(moving_index + 1).position)
|
||||||
room.get_edge(moving_index - 1).transform = room.get_edge(moving_index).transform
|
get_edge(moving_index - 1).transform = get_edge(moving_index).transform
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -219,14 +220,14 @@ func add_corner(position: Vector3, index: int = -1):
|
||||||
if room.wall_edges.get_child_count() == 0:
|
if room.wall_edges.get_child_count() == 0:
|
||||||
return
|
return
|
||||||
|
|
||||||
room.get_edge(moving_index).align_to_corners(new_position, room.get_corner(moving_index + 1).position)
|
get_edge(moving_index).align_to_corners(new_position, get_corner(moving_index + 1).position)
|
||||||
room.get_edge(moving_index - 1).align_to_corners(room.get_corner(moving_index - 1).position, new_position)
|
get_edge(moving_index - 1).align_to_corners(get_corner(moving_index - 1).position, new_position)
|
||||||
)
|
)
|
||||||
|
|
||||||
corner.get_node("Clickable").on_grab_up.connect(func(_event):
|
corner.get_node("Clickable").on_grab_up.connect(func(_event):
|
||||||
if deleting:
|
if deleting:
|
||||||
var moving_index = moving.get_index()
|
var moving_index = moving.get_index()
|
||||||
room.remove_corner(moving_index)
|
remove_corner(moving_index)
|
||||||
|
|
||||||
moving = null
|
moving = null
|
||||||
deleting = false
|
deleting = false
|
||||||
|
@ -238,13 +239,13 @@ func add_corner(position: Vector3, index: int = -1):
|
||||||
var num_corners = room.wall_corners.get_child_count()
|
var num_corners = room.wall_corners.get_child_count()
|
||||||
|
|
||||||
if num_corners > 1:
|
if num_corners > 1:
|
||||||
add_edge(position, room.get_corner(index + 1).position, index)
|
add_edge(position, get_corner(index + 1).position, index)
|
||||||
|
|
||||||
if num_corners > 2:
|
if num_corners > 2:
|
||||||
if num_corners != room.wall_edges.get_child_count():
|
if num_corners != room.wall_edges.get_child_count():
|
||||||
add_edge(room.get_corner(-2).position, room.get_corner(-1).position, -2)
|
add_edge(get_corner(-2).position, get_corner(-1).position, -2)
|
||||||
else:
|
else:
|
||||||
room.get_edge(index - 1).align_to_corners(room.get_corner(index - 1).position, position)
|
get_edge(index - 1).align_to_corners(get_corner(index - 1).position, position)
|
||||||
|
|
||||||
|
|
||||||
func add_edge(from_pos: Vector3, to_pos: Vector3, index: int = -1):
|
func add_edge(from_pos: Vector3, to_pos: Vector3, index: int = -1):
|
||||||
|
@ -273,7 +274,7 @@ func update_store():
|
||||||
store_room.corners = corners
|
store_room.corners = corners
|
||||||
store_room.height = room.room_ceiling.position.y
|
store_room.height = room.room_ceiling.position.y
|
||||||
|
|
||||||
if corners.size() > 3:
|
if corners.size() < 3:
|
||||||
Store.house.rooms.erase(store_room)
|
House.body.delete_room(room.name)
|
||||||
|
|
||||||
Store.house.save_local()
|
Store.house.save_local()
|
||||||
|
|
|
@ -146,7 +146,10 @@ func _on_entity_click(entity_name):
|
||||||
|
|
||||||
AudioPlayer.play_effect("spawn")
|
AudioPlayer.play_effect("spawn")
|
||||||
|
|
||||||
House.body.create_entity(entity_name, global_position)
|
var entity = House.body.create_entity(entity_name, global_position)
|
||||||
|
|
||||||
|
if entity == null:
|
||||||
|
EventSystem.notify("Entity is not in Room", EventNotify.Type.INFO)
|
||||||
|
|
||||||
func clear_menu():
|
func clear_menu():
|
||||||
for child in devices_node.get_children():
|
for child in devices_node.get_children():
|
||||||
|
|
|
@ -96,6 +96,9 @@ func _generate_room_map():
|
||||||
old_room.queue_free()
|
old_room.queue_free()
|
||||||
await old_room.tree_exited
|
await old_room.tree_exited
|
||||||
|
|
||||||
|
if rooms.size() == 0:
|
||||||
|
return
|
||||||
|
|
||||||
var current_min = Vector2(rooms[0].corners[0].x, rooms[0].corners[0].y)
|
var current_min = Vector2(rooms[0].corners[0].x, rooms[0].corners[0].y)
|
||||||
var current_max = current_min
|
var current_max = current_min
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user