mirror of
https://github.com/ApfelTeeSaft/lightspeed64.git
synced 2026-08-26 19:33:24 +00:00
* gamedata update on load and game change * cs index stuff * gameeditormode and update panels * format * add versions * comment MM game editor mode to avoid confusing users
37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
import bpy
|
|
|
|
from typing import Optional
|
|
|
|
|
|
class GameData:
|
|
def __init__(self, game_editor_mode: Optional[str] = None):
|
|
from .data import Z64_Data
|
|
|
|
self.z64 = Z64_Data("OOT")
|
|
|
|
if game_editor_mode is not None:
|
|
self.update(game_editor_mode)
|
|
|
|
def update(self, game_editor_mode: str):
|
|
from .z64.utility import getObjectList
|
|
|
|
if game_editor_mode is not None and game_editor_mode in {"OOT", "MM"}:
|
|
self.z64.update(None, game_editor_mode, True)
|
|
|
|
# ensure `currentCutsceneIndex` is set to a correct value
|
|
if bpy.context.scene.gameEditorMode in {"OOT", "MM"}:
|
|
for scene_obj in bpy.data.objects:
|
|
scene_obj.ootAlternateSceneHeaders.currentCutsceneIndex = game_data.z64.cs_index_start
|
|
|
|
if scene_obj.type == "EMPTY" and scene_obj.ootEmptyType == "Scene":
|
|
room_obj_list = getObjectList(scene_obj.children_recursive, "EMPTY", "Room")
|
|
|
|
for room_obj in room_obj_list:
|
|
room_obj.ootAlternateRoomHeaders.currentCutsceneIndex = game_data.z64.cs_index_start
|
|
|
|
if game_editor_mode in {"OOT", "MM"} and game_editor_mode != self.z64.game:
|
|
raise ValueError(f"ERROR: Z64 game mismatch: {game_editor_mode}, {game_data.z64.game}")
|
|
|
|
|
|
game_data = GameData()
|