From 22d8ab05ab0d3fe1877b5b27e4c06ad9e17add09 Mon Sep 17 00:00:00 2001 From: Lucas Schwiderski Date: Sat, 25 Feb 2023 18:27:32 +0100 Subject: [PATCH] feat(dtmm): Provide dt for loading state Apparently Fatshark does not proxy `dt` in their boot loading sub states. But we do need that for the mod manager. --- crates/dtmm/assets/mod_main.lua | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/crates/dtmm/assets/mod_main.lua b/crates/dtmm/assets/mod_main.lua index c2dfe4a..1a0a31a 100644 --- a/crates/dtmm/assets/mod_main.lua +++ b/crates/dtmm/assets/mod_main.lua @@ -15,7 +15,31 @@ local libs = { require("scripts/main") print("[mod_main] 'scripts/main' loaded") -require("scripts/game_states/boot/state_boot_sub_state_base") +local StateBootSubStateBase = require("scripts/game_states/boot/state_boot_sub_state_base") + +-- A necessary override. +-- The original does not proxy `dt` to `_state_update`, but we need that. +StateBootSubStateBase.update = function (self, dt) + local done, error = self:_state_update(dt) + local params = self._params + + if error then + return StateError, { + error + } + elseif done then + local next_index = params.sub_state_index + 1 + params.sub_state_index = next_index + local next_state_data = params.states[next_index] + + if next_state_data then + return next_state_data[1], self._params + else + self._parent:sub_states_done() + end + end +end + local StateBootLoadMods = class("StateBootLoadMods", "StateBootSubStateBase") StateBootLoadMods.on_enter = function (self, parent, params)