From 8f529ad6c39e8360ae0616634157ca5893671ce9 Mon Sep 17 00:00:00 2001 From: mrkubax10 Date: Mon, 3 Mar 2025 11:44:18 +0100 Subject: [PATCH] Fix few oversights and bring back some missing features --- machines/activated_electric_machine.lua | 30 +++++++++++------------ machines/activated_machine.lua | 32 +++++++++++++++---------- machines/machine.lua | 11 +++++++++ 3 files changed, 45 insertions(+), 28 deletions(-) diff --git a/machines/activated_electric_machine.lua b/machines/activated_electric_machine.lua index 6a2bb96..cdb00b3 100644 --- a/machines/activated_electric_machine.lua +++ b/machines/activated_electric_machine.lua @@ -16,28 +16,26 @@ industrialtest.ActivatedElectricMachine=table.copy(industrialtest.ElectricMachine) +-- Forward methods from ActivatedMachine +industrialtest.internal.unpackTableInto(industrialtest.ActivatedElectricMachine,{ + canUpdate=industrialtest.ActivatedMachine.canUpdate, + register=industrialtest.ActivatedMachine.register, + createDefinitionTable=industrialtest.ActivatedMachine.createDefinitionTable, + createActiveDefinitionTable=industrialtest.ActivatedMachine.createActiveDefinitionTable, + activate=industrialtest.ActivatedMachine.activate, + deactivate=industrialtest.ActivatedMachine.deactivate, + shouldActivate=industrialtest.ActivatedMachine.shouldActivate, + shouldDeactivate=industrialtest.ActivatedMachine.shouldDeactivate, + afterActivation=industrialtest.ActivatedMachine.afterActivation, + afterDeactivation=industrialtest.ActivatedMachine.afterDeactivation +}) + function industrialtest.ActivatedElectricMachine.onTimer(self,pos,elapsed) local result=self:powerExchange(pos) local result2=industrialtest.ActivatedMachine.onTimer(self,pos,elapsed) return result or result2 end -industrialtest.ActivatedElectricMachine.canUpdate=industrialtest.ActivatedMachine.canUpdate - -industrialtest.ActivatedElectricMachine.register=industrialtest.ActivatedMachine.register - -industrialtest.ActivatedElectricMachine.createDefinitionTable=industrialtest.ActivatedMachine.createDefinitionTable - -industrialtest.ActivatedElectricMachine.createActiveDefinitionTable=industrialtest.ActivatedMachine.createActiveDefinitionTable - -industrialtest.ActivatedElectricMachine.shouldActivate=industrialtest.ActivatedMachine.shouldActivate - -industrialtest.ActivatedElectricMachine.shouldDeactivate=industrialtest.ActivatedMachine.shouldDeactivate - -industrialtest.ActivatedElectricMachine.afterActivation=industrialtest.ActivatedMachine.afterActivation - -industrialtest.ActivatedElectricMachine.afterDeactivation=industrialtest.ActivatedMachine.afterDeactivation - function industrialtest.ActivatedElectricMachine.activeOnTimer(self,pos,elapsed) local result=self:powerExchange(pos) local result2=industrialtest.ActivatedMachine.activeOnTimer(self,pos,elapsed) diff --git a/machines/activated_machine.lua b/machines/activated_machine.lua index 5c344c3..f52c9f5 100644 --- a/machines/activated_machine.lua +++ b/machines/activated_machine.lua @@ -24,12 +24,7 @@ function industrialtest.ActivatedMachine.onTimer(self,pos,elapsed) local result=industrialtest.Machine.onTimer(self,pos,elapsed) if self:shouldActivate(pos) then - minetest.swap_node(pos,{ - name=self.name.."_active", - param2=minetest.get_node(pos).param2 - }) - self:afterActivation(pos) - minetest.get_node_timer(pos):start(industrialtest.updateDelay) + self:activate(pos) return false end @@ -65,6 +60,24 @@ function industrialtest.ActivatedMachine.createActiveDefinitionTable(self) return def end +function industrialtest.ActivatedMachine.activate(self,pos) + minetest.swap_node(pos,{ + name=self.name.."_active", + param2=minetest.get_node(pos).param2 + }) + self:afterActivation(pos) + minetest.get_node_timer(pos):start(industrialtest.updateDelay) +end + +function industrialtest.ActivatedMachine.deactivate(self,pos) + minetest.swap_node(pos,{ + name=self.name, + param2=minetest.get_node(pos).param2 + }) + self:afterDeactivation(pos) + minetest.get_node_timer(pos):start(industrialtest.updateDelay) +end + function industrialtest.ActivatedMachine.shouldActivate(self,pos) return false end @@ -86,12 +99,7 @@ function industrialtest.ActivatedMachine.activeOnTimer(self,pos,elapsed) local shouldUpdateFormspec=false if self:shouldDeactivate(pos) then - minetest.swap_node(pos,{ - name=self.name, - param2=minetest.get_node(pos).param2 - }) - self:afterDeactivation(pos) - minetest.get_node_timer(pos):start(industrialtest.updateDelay) + self:deactivate(pos) return false end diff --git a/machines/machine.lua b/machines/machine.lua index 4cbac68..7a820c4 100644 --- a/machines/machine.lua +++ b/machines/machine.lua @@ -179,6 +179,8 @@ function industrialtest.Machine.createDefinitionTable(self) def.groups={cracky=2} if self.sounds=="metal" then def.sounds=default.node_sound_metal_defaults() + elseif self.sounds=="wood" then + def.sounds=default.node_sound_wood_defaults() end def.can_dig=function(pos) local meta=minetest.get_meta(pos) @@ -196,6 +198,8 @@ function industrialtest.Machine.createDefinitionTable(self) end if self.sounds=="metal" then def.sounds=mcl_sounds.node_sound_metal_defaults() + elseif sounds=="wood" then + def.sounds=mcl_sounds.node_sound_wood_defaults() end def.groups={ pickaxey=1, @@ -232,6 +236,13 @@ function industrialtest.Machine.createDefinitionTable(self) def.legacy_facedir_simple=true end + if self.hasPowerInput then + def.groups._industrialtest_hasPowerInput=1 + end + if self.hasPowerOutput then + def.groups._industrialtest_hasPowerOutput=1 + end + return def end