First commit 🎉
This commit is contained in:
commit
43ea213f9b
728 changed files with 37080 additions and 0 deletions
71
addons/popochiu/migration/migrations/popochiu_migration_3.gd
Normal file
71
addons/popochiu/migration/migrations/popochiu_migration_3.gd
Normal file
|
@ -0,0 +1,71 @@
|
|||
@tool
|
||||
class_name PopochiuMigration3
|
||||
extends PopochiuMigration
|
||||
|
||||
const VERSION = 3
|
||||
const DESCRIPTION = "Update clickables to set look_at_point property"
|
||||
const STEPS = [
|
||||
"Update all clickables in rooms",
|
||||
]
|
||||
const LOOK_AT_POINT_OFFSET = Vector2(-10, -10)
|
||||
|
||||
|
||||
#region Virtual ####################################################################################
|
||||
## This is code specific for this migration. This should return [code]true[/code] if the migration
|
||||
## is successful. This is called from [method do_migration] which checks to make sure the migration
|
||||
## should be done before calling this.
|
||||
func _do_migration() -> bool:
|
||||
return await PopochiuMigrationHelper.execute_migration_steps(
|
||||
self,
|
||||
[
|
||||
_update_objects_in_rooms
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private ####################################################################################
|
||||
## Update all rooms clickables to set a default value for the look_at_point property.
|
||||
func _update_objects_in_rooms() -> Completion:
|
||||
var any_room_updated := PopochiuUtils.any_exhaustive(
|
||||
PopochiuEditorHelper.get_rooms(), _update_room
|
||||
)
|
||||
|
||||
_reload_needed = any_room_updated
|
||||
return Completion.DONE if any_room_updated else Completion.IGNORED
|
||||
|
||||
|
||||
func _update_popochiu_clickable(popochiu_room: PopochiuRoom, clickable_type: String) -> bool:
|
||||
if not popochiu_room.has_node(clickable_type):
|
||||
return false
|
||||
|
||||
var changed = false
|
||||
|
||||
for obj: Node in popochiu_room.find_child(clickable_type).get_children():
|
||||
if PopochiuEditorHelper.is_popochiu_clickable(obj):
|
||||
obj.look_at_point = obj.walk_to_point + LOOK_AT_POINT_OFFSET
|
||||
changed = true
|
||||
PopochiuUtils.print_normal(
|
||||
"Migration %d: %s: updated %s look_at_point." %
|
||||
[VERSION, clickable_type, obj.script_name]
|
||||
)
|
||||
|
||||
return changed
|
||||
|
||||
|
||||
func _update_room(popochiu_room: PopochiuRoom) -> bool:
|
||||
var room_updated = _update_popochiu_clickable(popochiu_room, "Characters")
|
||||
room_updated = _update_popochiu_clickable(popochiu_room, "Props") or room_updated
|
||||
room_updated = _update_popochiu_clickable(popochiu_room, "Hotspots") or room_updated
|
||||
|
||||
if room_updated and PopochiuEditorHelper.pack_scene(popochiu_room) != OK:
|
||||
PopochiuUtils.print_error(
|
||||
"Migration %d: Couldn't update [b]%s[/b] after updating clickables." %
|
||||
[VERSION, popochiu_room.script_name]
|
||||
)
|
||||
|
||||
return room_updated
|
||||
|
||||
|
||||
#endregion
|
Loading…
Add table
Add a link
Reference in a new issue