Skip to content

Commit

Permalink
4/28/2020
Browse files Browse the repository at this point in the history
  • Loading branch information
mrkmg committed Apr 28, 2020
1 parent f4f8303 commit af3b2fe
Show file tree
Hide file tree
Showing 89 changed files with 150,081 additions and 784 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
workshop
modconfig.lua
.idea/
stubs/
19 changes: 11 additions & 8 deletions CraftOrdersLib/data/scripts/entity/craftorders.lua
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,15 @@ function CraftOrders.registerModdedCraftOrder(id, orderDetails)
end
end

-- TODO figure out how to inject into splitter
function CraftOrders.initUI()
local numModdedCraftOrders = 0
for _,_ in pairs(moddedCraftOrders) do
numModdedCraftOrders = numModdedCraftOrders + 1
end

local res = getResolution()
local size = vec2(250, 370 + (numModdedCraftOrders * 20))
local size = vec2(250, 450 + (numModdedCraftOrders * 20))

local menu = ScriptUI()
local window = menu:createWindow(Rect(res * 0.5 - size * 0.5, res * 0.5 + size * 0.5))
Expand All @@ -27,19 +28,21 @@ function CraftOrders.initUI()
window.showCloseButton = 1
window.moveable = 1

local splitter = UIHorizontalMultiSplitter(Rect(window.size), 10, 10, 8 + numModdedCraftOrders)
local splitter = UIHorizontalMultiSplitter(Rect(window.size), 10, 10, 10 + numModdedCraftOrders)

window:createButton(splitter:partition(0), "Idle"%_t, "onUserIdleOrder")
window:createButton(splitter:partition(1), "Passive"%_t, "onUserPassiveOrder")
window:createButton(splitter:partition(2), "Guard This Position"%_t, "onUserGuardOrder")
window:createButton(splitter:partition(3), "Patrol Sector"%_t, "onUserPatrolOrder")
window:createButton(splitter:partition(4), "Escort Me"%_t, "onUserEscortMeOrder")
window:createButton(splitter:partition(5), "Attack Enemies"%_t, "onUserAttackEnemiesOrder")
window:createButton(splitter:partition(6), "Mine"%_t, "onUserMineOrder")
window:createButton(splitter:partition(7), "Salvage"%_t, "onUserSalvageOrder")
window:createButton(splitter:partition(8), "Refine Ores"%_t, "onUserRefineOresOrder")

local index = 9
window:createButton(splitter:partition(5), "Repair Me"%_t, "onUserRepairMeOrder")
window:createButton(splitter:partition(6), "Repair"%_t, "onUserRepairOrder")
window:createButton(splitter:partition(7), "Attack Enemies"%_t, "onUserAttackEnemiesOrder")
window:createButton(splitter:partition(8), "Mine"%_t, "onUserMineOrder")
window:createButton(splitter:partition(9), "Salvage"%_t, "onUserSalvageOrder")
window:createButton(splitter:partition(10), "Refine Ores"%_t, "onUserRefineOresOrder")

local index = 11

for _, craftOrder in pairs(moddedCraftOrders) do
window:createButton(splitter:partition(index), craftOrder.title, craftOrder.callback)
Expand Down
53 changes: 18 additions & 35 deletions CraftOrdersLib/data/scripts/entity/orderchain.lua
Original file line number Diff line number Diff line change
Expand Up @@ -22,66 +22,49 @@ function OrderChain.canEnchainAfter(id, order)
return OrderChain[moddedOrderChains[id].canEnchainAfterCheck](order)
end

local OrderChain_canEnchain_CraftOrdersLib_orig = OrderChain.canEnchain
function OrderChain.canEnchain(order)
if not checkCaptain() then return false end

if not OrderChain_canEnchain_CraftOrdersLib_orig() then
return false
end

local last = OrderChain.chain[#OrderChain.chain]
if not last then return true end

if not last then
return true
end

if last.action == OrderType.Loop then
OrderChain.sendError("Can't enchain anything after a loop."%_T)
return false
elseif last.action == OrderType.Patrol then
OrderChain.sendError("Can't enchain anything after a patrol order."%_T)
return false
elseif last.action == OrderType.Escort then
OrderChain.sendError("Can't enchain anything after an escort order."%_T)
return false
elseif last.action == OrderType.FlyToPosition then
OrderChain.sendError("Can't enchain anything after a fly order."%_T)
return false
elseif last.action == OrderType.GuardPosition then
OrderChain.sendError("Can't enchain anything after a guard order."%_T)
return false
elseif last.action == OrderType.Mine and last.persistent then
OrderChain.sendError("Can't enchain anything after a persistent mine order."%_T)
return false
elseif last.action == OrderType.Salvage and last.persistent then
OrderChain.sendError("Can't enchain anything after a persistent salvage order."%_T)
return false
elseif not OrderChain.canEnchainAfter(last.action, last) then
if not OrderChain.canEnchainAfter(last.action, last) then
OrderChain.sendError("Can't enchain anything after a ${name} order"%_T {name = last.action})
return false
end

return true
end

local OrderChain_ActivateOrder_COL_Orig = OrderChain.activateOrder

local OrderChain_ActivateOrder_CraftOrdersLib_Orig = OrderChain.activateOrder
function OrderChain.activateOrder()
if OrderChain.activeOrder == 0 or not OrderChain.running then return end
local order = OrderChain.chain[OrderChain.activeOrder]
print (order.name)
if moddedOrderChains[order.action] ~= nil then
OrderChain[moddedOrderChains[order.action].onActivateFunction](order)
return
end

OrderChain_ActivateOrder_COL_Orig()
OrderChain_ActivateOrder_CraftOrdersLib_Orig()
end

local OrderChain_UpdateServer_COL_Orig = OrderChain.updateServer



local OrderChain_UpdateServer_CraftOrdersLib_Orig = OrderChain.updateServer
function OrderChain.updateServer(timeStep)
OrderChain_UpdateServer_COL_Orig(timeStep);
OrderChain_UpdateServer_CraftOrdersLib_Orig(timeStep);

if OrderChain.activeOrder == 0 then return end

local currentOrder = OrderChain.chain[OrderChain.activeOrder]

if currentOrder == nil then
return
end

local orderFinished = false

if moddedOrderChains[currentOrder.action] ~= nil then
Expand Down
Loading

0 comments on commit af3b2fe

Please sign in to comment.