diff --git a/machines/nuclear_reactor.lua b/machines/nuclear_reactor.lua index 607ae19..08ee313 100644 --- a/machines/nuclear_reactor.lua +++ b/machines/nuclear_reactor.lua @@ -70,7 +70,7 @@ local function findMaxFuelCluster(fuelList) for y=1,4 do for x=1,5 do local iy=y-1 - local stack=fuelList[iy*4+x] + local stack=fuelList[iy*5+x] local def=minetest.registered_tools[stack:get_name()] if def and def.groups._industrialtest_nuclearReactorFuel then local cluster={ @@ -79,60 +79,60 @@ local function findMaxFuelCluster(fuelList) y=iy } } - if x>1 and fuelList[iy*4+x-1]:get_name()==stack:get_name() then + if x>1 and fuelList[iy*5+x-1]:get_name()==stack:get_name() then table.insert(cluster,{ x=x-1, y=iy }) end - if x<5 and fuelList[iy*4+x+1]:get_name()==stack:get_name() then + if x<5 and fuelList[iy*5+x+1]:get_name()==stack:get_name() then table.insert(cluster,{ x=x+1, y=iy }) end - if y>1 and fuelList[(iy-1)*4+x]:get_name()==stack:get_name() then + if y>1 and fuelList[(iy-1)*5+x]:get_name()==stack:get_name() then table.insert(cluster,{ x=x, - i=iy-1 + y=iy-1 }) end - if y<4 and fuelList[(iy+1)*4+x]:get_name()==stack:get_name() then + if y<4 and fuelList[(iy+1)*5+x]:get_name()==stack:get_name() then table.insert(cluster,{ x=x, y=iy+1 }) end - if x>1 and y>1 and fuelList[(iy-1)*4+x-1]:get_name()==stack:get_name() then + if x>1 and y>1 and fuelList[(iy-1)*5+x-1]:get_name()==stack:get_name() then table.insert(cluster,{ x=x-1, y=iy-1 }) end - if x<5 and y>1 and fuelList[(iy-1)*4+x+1]:get_name()==stack:get_name() then + if x<5 and y>1 and fuelList[(iy-1)*5+x+1]:get_name()==stack:get_name() then table.insert(cluster,{ x=x+1, y=iy-1 }) end - if x>1 and y<4 and fuelList[(iy+1)*4+x-1]:get_name()==stack:get_name() then + if x>1 and y<4 and fuelList[(iy+1)*5+x-1]:get_name()==stack:get_name() then table.insert(cluster,{ x=x-1, y=iy+1 }) end - if x<5 and y<4 and fuelList[(iy+1)*4+x+1]:get_name()==stack:get_name() then + if x<5 and y<4 and fuelList[(iy+1)*5+x+1]:get_name()==stack:get_name() then table.insert(cluster,{ x=x+1, y=iy+1 }) end + if #cluster==9 then + return cluster + end if #cluster>#maxCluster then maxCluster=cluster end - if #cluster==4 then - return maxCluster - end end end end @@ -224,11 +224,11 @@ reactor.activeOnTimer=function(pos,elapsed,meta,inv) local maxCluster=findMaxFuelCluster(fuelList) for _,stack in ipairs(maxCluster) do - local index=stack.y*4+stack.x + local index=stack.y*5+stack.x local usedStack,_=useFuel(fuelList[index],5) inv:set_stack("fuel",index,usedStack) end - local generatedPowerAmount=math.pow(20,#maxCluster) + local generatedPowerAmount=math.pow(3,#maxCluster) if industrialtest.api.addPower(meta,generatedPowerAmount)>0 then shouldUpdateFormspec=true end @@ -325,8 +325,8 @@ industrialtest.internal.registerMachine({ name="nuclear_reactor", displayName=S("Nuclear Reactor"), getFormspec=reactor.getFormspec, - capacity=industrialtest.api.ivPowerFlow*2, - flow=industrialtest.api.ivPowerFlow, + capacity=industrialtest.api.evPowerFlow, + flow=industrialtest.api.evPowerFlow, ioConfig="oooooo", requiresWrench=true, registerActiveVariant=true,