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)
|
||||
|
||||
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
|
||||
|
||||
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.queue_free()
|
||||
await room.tree_exited
|
||||
|
||||
func is_editiong(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)
|
||||
|
||||
if room == null:
|
||||
return
|
||||
return null
|
||||
|
||||
var entity = EntityFactory.create_entity(entity_id)
|
||||
|
||||
if entity == null:
|
||||
return
|
||||
return null
|
||||
|
||||
room.get_node("Entities").add_child(entity)
|
||||
entity.global_position = entity_position
|
||||
|
@ -154,6 +159,24 @@ func create_entity(entity_id: String, entity_position: Vector3):
|
|||
|
||||
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():
|
||||
collision_shape.disabled = !mini_view
|
||||
|
||||
|
@ -208,4 +231,4 @@ func save_all_entities():
|
|||
|
||||
Store.house.entities.append(entity_data)
|
||||
|
||||
Store.house.save_local()
|
||||
Store.house.save_local()
|
||||
|
|
|
@ -22,6 +22,7 @@ func _on_enter():
|
|||
add_floor_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
|
||||
height_edge.align_to_corners(floor_corner.global_position, height_corner.global_position)
|
||||
|
||||
for i in range(1, corners.size()):
|
||||
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)
|
||||
|
||||
room.get_corner(moving_index).position.x = new_position.x
|
||||
room.get_corner(moving_index).position.z = new_position.z
|
||||
get_corner(moving_index).position.x = new_position.x
|
||||
get_corner(moving_index).position.z = new_position.z
|
||||
|
||||
if room.wall_edges.get_child_count() == 0:
|
||||
return
|
||||
|
||||
room.get_edge(moving_index).align_to_corners(new_position, room.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).align_to_corners(new_position, get_corner(moving_index + 1).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):
|
||||
|
@ -199,13 +200,13 @@ func add_corner(position: Vector3, index: int = -1):
|
|||
|
||||
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:
|
||||
return
|
||||
|
||||
room.get_edge(moving_index).align_to_corners(room.get_corner(moving_index - 1).position, room.get_corner(moving_index + 1).position)
|
||||
room.get_edge(moving_index - 1).transform = room.get_edge(moving_index).transform
|
||||
get_edge(moving_index).align_to_corners(get_corner(moving_index - 1).position, get_corner(moving_index + 1).position)
|
||||
get_edge(moving_index - 1).transform = get_edge(moving_index).transform
|
||||
|
||||
return
|
||||
|
||||
|
@ -219,14 +220,14 @@ func add_corner(position: Vector3, index: int = -1):
|
|||
if room.wall_edges.get_child_count() == 0:
|
||||
return
|
||||
|
||||
room.get_edge(moving_index).align_to_corners(new_position, room.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).align_to_corners(new_position, get_corner(moving_index + 1).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):
|
||||
if deleting:
|
||||
var moving_index = moving.get_index()
|
||||
room.remove_corner(moving_index)
|
||||
remove_corner(moving_index)
|
||||
|
||||
moving = null
|
||||
deleting = false
|
||||
|
@ -238,13 +239,13 @@ func add_corner(position: Vector3, index: int = -1):
|
|||
var num_corners = room.wall_corners.get_child_count()
|
||||
|
||||
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 != 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:
|
||||
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):
|
||||
|
@ -273,7 +274,7 @@ func update_store():
|
|||
store_room.corners = corners
|
||||
store_room.height = room.room_ceiling.position.y
|
||||
|
||||
if corners.size() > 3:
|
||||
Store.house.rooms.erase(store_room)
|
||||
if corners.size() < 3:
|
||||
House.body.delete_room(room.name)
|
||||
|
||||
Store.house.save_local()
|
||||
|
|
|
@ -146,7 +146,10 @@ func _on_entity_click(entity_name):
|
|||
|
||||
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():
|
||||
for child in devices_node.get_children():
|
||||
|
|
|
@ -96,6 +96,9 @@ func _generate_room_map():
|
|||
old_room.queue_free()
|
||||
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_max = current_min
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user