Fix few oversights and bring back some missing features

This commit is contained in:
mrkubax10 2025-03-03 11:44:18 +01:00
parent 09a0d9c855
commit 8f529ad6c3
3 changed files with 45 additions and 28 deletions

View File

@ -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)

View File

@ -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

View File

@ -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