Skip to content

Commit

Permalink
alpha 2
Browse files Browse the repository at this point in the history
* added ifV_A
* added ifV_O
* added disMul
  • Loading branch information
schloops1 committed Mar 22, 2020
1 parent 3ccc113 commit fb2edf5
Show file tree
Hide file tree
Showing 5 changed files with 222 additions and 9 deletions.
2 changes: 2 additions & 0 deletions .settings/org.eclipse.ltk.core.refactoring.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
57 changes: 51 additions & 6 deletions wincraft/client/WCClient.lua
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,51 @@ end

-- ************************************************************************************************************************

----probably going to get deleted cause... STUPID
--WCClient.addSyncSwitchArray = function(block, side, colorStart, colorEnd, name, activeColor, passiveColor, pipeColor)
-- if activeColor == nil then activeColor = 0x66DB80 end
-- if passiveColor == nil then passiveColor = 0x1D1D1D end
-- if pipeColor == nil then pipeColor = 0xEEEEEE end
--
-- local amount = colors[colorStart] - colors[colorEnd]
-- if colorStart == colorEnd then amount = amount + 1 else amount = amount + 2 end
-- local space; local disp
-- if amount > 8 then space = 1 else space = 2 end
--
-- local switches = {}
-- local i = 1
-- for aColor=colors[colorStart],colors[colorEnd] do
-- switches[i] = WCClient.addSyncSwitchNoLabel(block, side, aColor, name..aColor, activeColor, passiveColor, pipeColor)
-- --disp = i * space
-- switches[i].x = i * space--space is incorrect
-- i = i + 1
-- end
--
-- return switches
--end

WCClient.addSyncRectangleArray = function(block, side, color, colorEnd, name, activeColor, passiveColor)
if colorEnd < color then return {} end
local amount = colorEnd - color + 1
--if color == colorEnd then amount = amount + 1 else amount = amount + 2 end

local space; local disp
if amount > 8 then space = 1 else space = 2 end

local switches = {}
local i = 1
for aColor = color, colorEnd do
switches[i] = WCClient.addSyncRectangle(block, side, aColor, name, activeColor, passiveColor)
--disp = i * space
switches[i].x = i * space--space is incorrect
i = i + 1
end

return switches
--local aa = {}
--return aa
end

WCClient.addSyncRectangle = function(block, side, color, name, activeColor, passiveColor)
--WCClient.addSyncRectangle = function(block, side, color, name)
if activeColor == nil then activeColor = 0x33FF80 end
Expand Down Expand Up @@ -379,13 +424,13 @@ listenToWire = function(control, windowsName, block, side, color)
end

WCClient.addSyncSwitchNoLabel = function(block, side, color, name, activeColor, passiveColor, pipeColor)
if activeColor == nil then activeColor = 0x66DB80 end
if passiveColor == nil then passiveColor = 0x1D1D1D end
if pipeColor == nil then pipeColor = 0xEEEEEE end
if activeColor == nil then activeColor = 0x66DB80 end
if passiveColor == nil then passiveColor = 0x1D1D1D end
if pipeColor == nil then pipeColor = 0xEEEEEE end

local offOn = getOffOn(block, side, color)
local switch = WCClient.GUI.switch(1, 1, 11, activeColor, passiveColor, pipeColor, offOn)--0x999999,
switch.onStateChanged = function() swithValue(block, side, color) end
local offOn = getOffOn(block, side, color)
local switch = WCClient.GUI.switch(1, 1, 11, activeColor, passiveColor, pipeColor, offOn)--0x999999,
switch.onStateChanged = function() swithValue(block, side, color) end
listenToWire(switch, name, block, side, color)
return switch
end
Expand Down
64 changes: 63 additions & 1 deletion wincraft/client/applications/ApplicationFactory.lua
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ local idField
local blockField
local sideField
local colorField
local colorEndField
local forceField
local timeField
local aliasField
Expand Down Expand Up @@ -138,6 +139,13 @@ createAppliFile = function()
astring = astring.."local ctrlb"..k.." = client.addSynchVarTxtButton('"..appli.name.."', '"..v.var.."', ctrl"..k..", "..appli.color5..", "..appli.color6..", "..appli.color3..", "..appli.color4.."); "
astring = astring.."ctrlb"..k..".y = "..k*appli.interval.."; ctrlb"..k..".x = "..(xCtrl + 18).."; "
astring = astring.."container:addChild(ctrlb"..k.."); "
elseif v["type"] == "disMul" then
astring = astring.."container:addChild(client.GUI.text(2, "..k * appli.interval..", "..appli.color2..", '"..v.text.."')); "
astring = astring.."local switches = client.addSyncRectangleArray('"..v.block.. "', "..v.side..", "..v.color..", "..v.colorEnd..", '"..appli.name.."', "..appli.color2..", "..appli.color4..") "
astring = astring.."for i, switch in ipairs(switches) do "
astring = astring.."switches[i].y = "..k*appli.interval.."; switches[i].x = switches[i].x - 1 + "..xCtrl.." ; "
astring = astring.."container:addChild(switches[i]); "
astring = astring.."end "
end
end
astring = astring.."return window end ".."return "..appli.name
Expand Down Expand Up @@ -241,7 +249,13 @@ insertAppliItem = function()

elseif appliItem["type"] == "updVar" then
appliItem["var"] = varField:getItem(varField.selectedItem).text


elseif appliItem["type"] == "disMul" then
appliItem["block"] = blockField:getItem(blockField.selectedItem).text
appliItem["side"] = sideField.selectedItem - 1
appliItem["color"] = colorField.selectedItem - 1
appliItem["colorEnd"] = colorEndField.selectedItem - 1
appliItem["text"] = outputNameField.text
end

local items = appli.items
Expand Down Expand Up @@ -287,6 +301,13 @@ updateAppliItem = function()

elseif appliItem["type"] == "updVar" then
appliItem["var"] = varField:getItem(varField.selectedItem).text

elseif appliItem["type"] == "disMul" then
appliItem["block"] = blockField:getItem(blockField.selectedItem).text
appliItem["side"] = sideField.selectedItem - 1
appliItem["color"] = colorField.selectedItem - 1
appliItem["colorEnd"] = colorEndField.selectedItem - 1
appliItem["text"] = outputNameField.text
end

saveData()
Expand Down Expand Up @@ -340,6 +361,7 @@ displayAppliItemCRUD = function(id, action, typeValue)
typeField:addItem("nothing").onTouch = function() displayAppliItemCRUD(id, action, "nothing") end
typeField:addItem("variable").onTouch = function() displayAppliItemCRUD(id, action, "variable") end
typeField:addItem("updVar").onTouch = function() displayAppliItemCRUD(id, action, "updVar") end
typeField:addItem("disMul").onTouch = function() displayAppliItemCRUD(id, action, "disMul") end

if (item ~= nil and item["type"] == "output") or (action ~= nil and action == "ins" and typeValue == nil) or (typeValue ~= nil and typeValue == "output") then
typeField.selectedItem = 1
Expand All @@ -355,6 +377,8 @@ displayAppliItemCRUD = function(id, action, typeValue)
typeField.selectedItem = 6
elseif (item ~= nil and item["type"] == "updVar") or (typeValue ~= nil and typeValue == "updVar") then
typeField.selectedItem = 7
elseif (item ~= nil and item["type"] == "disMul") or (typeValue ~= nil and typeValue == "disMul") then
typeField.selectedItem = 8
end

if typeField.selectedItem == 1 or typeField.selectedItem == 4 then --output, display
Expand Down Expand Up @@ -426,10 +450,46 @@ displayAppliItemCRUD = function(id, action, typeValue)
ii = ii + 1
end
varField.selectedItem = iiSelected
elseif typeField.selectedItem == 8 then --disMul
blockField = containerFields:addChild(client.GUI.comboBox(20, 2, 12, 1, 0xEEEEEE, 0x2D2D2D, 0xCCCCCC, 0x888888))
local ii = 1
local iiSelected
for k, v in pairs (client.data) do
blockField:addItem(k)
if item ~= nil and k == item.block then iiSelected = ii end
ii = ii + 1
end
if iiSelected == nil then iiSelected = 1 end
blockField.selectedItem = iiSelected

sideField = containerFields:addChild(client.GUI.comboBox(33, 2, 10, 1, 0xEEEEEE, 0x2D2D2D, 0xCCCCCC, 0x888888))
for i = 0, 5 do
sideField:addItem(sides[i])
end
if item ~= nil then sideField.selectedItem = item.side + 1 end

colorField = containerFields:addChild(client.GUI.comboBox(44, 2, 9, 1, 0xEEEEEE, 0x2D2D2D, 0xCCCCCC, 0x888888))
for i = 0, 15 do
colorField:addItem(colors[i])
end
if item ~= nil then colorField.selectedItem = item.color + 1 end

colorEndField = containerFields:addChild(client.GUI.comboBox(54, 2, 9, 1, 0xEEEEEE, 0x2D2D2D, 0xCCCCCC, 0x888888))
for i = 0, 15 do
colorEndField:addItem(colors[i])
end
if item ~= nil then colorEndField.selectedItem = item.colorEnd + 1 end

containerFields:addChild(client.GUI.text(20, 3, 0xFFFFFF, "Text:"))
outputNameField = containerFields:addChild(client.GUI.input(28, 3, 16, 1, 0xEEEEEE, 0x555555, 0x999999, 0xFFFFFF, 0x2D2D2D, "", ""))
if item ~= nil then outputNameField.text = item.text end

end

displayAppliCRUDCommands(action)
client.application:draw()


end

local appliSelected = function()
Expand Down Expand Up @@ -464,6 +524,8 @@ local appliSelected = function()
astring = astring.." V "..v.var
elseif v["type"] == "updVar" then
astring = astring.." UV "..v.var
elseif v["type"] == "disMul" then
astring = astring.." DisMul "..v.block:sub(1, 6).." "..sides[v.side].." "..colors[v.color].." "..colors[v.colorEnd]
end

appliItemList:addItem(astring).onTouch = cleanCRUDFields
Expand Down
97 changes: 96 additions & 1 deletion wincraft/client/applications/OrdersModif.lua
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ local orderNameField
local varValueField
local varModField
local varNameField
local varTrueFalseField

local orderNameToBeSelected = nil

Expand Down Expand Up @@ -158,6 +159,15 @@ insertOrderItem = function()
orderItem["name"] = varNameField:getItem(varNameField.selectedItem).text
elseif orderItem["type"] == "inpVar" then
orderItem["name"] = varNameField:getItem(varNameField.selectedItem).text
elseif orderItem["type"] == "ifV_A" then
orderItem["name"] = varNameField:getItem(varNameField.selectedItem).text
if varTrueFalseField.selectedItem == 1 then orderItem["is"] = false else orderItem["is"] = true end
orderItem["alias"] = aliasField:getItem(aliasField.selectedItem).text
orderItem["force"] = tonumber(forceField.text)
elseif orderItem["type"] == "ifV_O" then
orderItem["name"] = varNameField:getItem(varNameField.selectedItem).text
if varTrueFalseField.selectedItem == 1 then orderItem["is"] = false else orderItem["is"] = true end
orderItem["order"] = orderNameField:getItem(orderNameField.selectedItem).text
end
local orders = client.dataOrders[oldOrderName.text].orders
for k, v in ipairs(orders) do
Expand All @@ -170,9 +180,14 @@ end

updateOrderItem = function()
if orderItemList:count() == 0 then return end
if client.dataOrders[oldOrderName.text].offOn == true then return end
if client.dataOrders[oldOrderName.text].offOn == true then return end--might change?
local id = orderItemList.selectedItem
local orderItem = client.dataOrders[oldOrderName.text].orders[id]

--orderItem = {}
--client.dataOrders[oldOrderName.text].orders[id] = orderItem
--orderItem.id = id

orderItem["type"] = typeField:getItem(typeField.selectedItem).text
if orderItem["type"] == "output" or orderItem["type"] == "input" or orderItem["type"] == "cleanOut" then
if tonumber(forceField.text) == nil then return end
Expand Down Expand Up @@ -217,6 +232,15 @@ updateOrderItem = function()
orderItem["name"] = varNameField:getItem(varNameField.selectedItem).text
elseif orderItem["type"] == "inpVar" then
orderItem["name"] = varNameField:getItem(varNameField.selectedItem).text
elseif orderItem["type"] == "ifV_A" then
orderItem["name"] = varNameField:getItem(varNameField.selectedItem).text
if varTrueFalseField.selectedItem == 1 then orderItem["is"] = false else orderItem["is"] = true end
orderItem["alias"] = aliasField:getItem(aliasField.selectedItem).text
orderItem["force"] = tonumber(forceField.text)
elseif orderItem["type"] == "ifV_O" then
orderItem["name"] = varNameField:getItem(varNameField.selectedItem).text
if varTrueFalseField.selectedItem == 1 then orderItem["is"] = false else orderItem["is"] = true end
orderItem["order"] = orderNameField:getItem(orderNameField.selectedItem).text
end
client.updateOrder("", orderName.text, client.dataOrders[orderName.text])
end
Expand Down Expand Up @@ -282,6 +306,10 @@ displayOrderHudAndItems = function(name)
astring = astring.." TV "..dmp.okv(v.name)
elseif v["type"] == "inpVar" then
astring = astring.." IV "..dmp.okv(v.name)
elseif v["type"] == "ifV_A" then
astring = astring.." ifVA "..dmp.okv(v.name).." "..tostring(v.is).." "..v.alias.." "..tostring(v.force)
elseif v["type"] == "ifV_O" then
astring = astring.." ifVO "..dmp.okv(v.name).." "..tostring(v.is).." "..v.order
end
orderItemList:addItem(astring).onTouch = cleanFields
end
Expand Down Expand Up @@ -317,6 +345,9 @@ displayOrderItemCRUD = function(id, action, typeValue, varName)
typeField:addItem("execVOr").onTouch = function() displayOrderItemCRUD(id, action, "execVOr") end
typeField:addItem("trigVar").onTouch = function() displayOrderItemCRUD(id, action, "trigVar") end
typeField:addItem("inpVar").onTouch = function() displayOrderItemCRUD(id, action, "inpVar") end

typeField:addItem("ifV_A").onTouch = function() displayOrderItemCRUD(id, action, "ifV_A") end
typeField:addItem("ifV_O").onTouch = function() displayOrderItemCRUD(id, action, "ifV_O") end

if (order ~= nil and order["type"] == "output") or (action ~= nil and action == "ins" and typeValue == nil) or (typeValue ~= nil and typeValue == "output") then
typeField.selectedItem = 1
Expand Down Expand Up @@ -346,6 +377,10 @@ displayOrderItemCRUD = function(id, action, typeValue, varName)
typeField.selectedItem = 13
elseif (order ~= nil and order["type"] == "inpVar") or (typeValue ~= nil and typeValue == "inpVar") then
typeField.selectedItem = 14
elseif (order ~= nil and order["type"] == "ifV_A") or (typeValue ~= nil and typeValue == "ifV_A") then
typeField.selectedItem = 15
elseif (order ~= nil and order["type"] == "ifV_O") or (typeValue ~= nil and typeValue == "ifV_O") then
typeField.selectedItem = 16
end

if typeField.selectedItem == 1 or typeField.selectedItem == 4 or typeField.selectedItem == 7 then --output, input, cleanOut
Expand Down Expand Up @@ -525,6 +560,66 @@ displayOrderItemCRUD = function(id, action, typeValue, varName)
end
if i == 0 then return end
varNameField.selectedItem = iSelected

elseif typeField.selectedItem == 15 then --ifV_A
varNameField = containerFields:addChild(client.GUI.comboBox(20, 2, 16, 1, 0xEEEEEE, 0x2D2D2D, 0xCCCCCC, 0x888888))
local i = 0; iSelected = 1
for k, v in pairs (client.dataVarsList) do
if not client.dataVarsList[k].node and client.dataVarsList[k]["type"] == "Boolean" then
i = i + 1
varNameField:addItem(k)--.onTouch = function() displayOrderItemCRUD(id, action, "trigVar", k) end
if (order ~= nil and order.name == k) or (varName ~= nil and varName == k) then iSelected = i end
end
end
if i == 0 then return end
varNameField.selectedItem = iSelected

varTrueFalseField = containerFields:addChild(client.GUI.comboBox(37, 2, 8, 1, 0xEEEEEE, 0x2D2D2D, 0xCCCCCC, 0x888888))
varTrueFalseField:addItem("false")
varTrueFalseField:addItem("true")
if (order ~= nil and order.is == true) then varTrueFalseField.selectedItem = 2 else varTrueFalseField.selectedItem = 1 end

local listAliases = {}
local aliasNode = require "AliasNode"
aliasNode.getAllAliases(client.dataAliases, listAliases)
aliasField = containerFields:addChild(client.GUI.comboBox(46, 2, 16, 1, 0xEEEEEE, 0x2D2D2D, 0xCCCCCC, 0x888888))
local iiSelected = 1
for k, v in ipairs(listAliases) do
aliasField:addItem(v)
if order ~= nil and v == order.alias then iiSelected = k end
end
aliasField.selectedItem = iiSelected

forceField = containerFields:addChild(client.GUI.input(48, 3, 6, 1, 0xEEEEEE, 0x555555, 0x999999, 0xFFFFFF, 0x2D2D2D, "", ""))
if order ~= nil then forceField.text = order.force end

elseif typeField.selectedItem == 16 then --ifV_O
varNameField = containerFields:addChild(client.GUI.comboBox(20, 2, 16, 1, 0xEEEEEE, 0x2D2D2D, 0xCCCCCC, 0x888888))
local i = 0; iSelected = 1
for k, v in pairs (client.dataVarsList) do
if not client.dataVarsList[k].node and client.dataVarsList[k]["type"] == "Boolean" then
i = i + 1
varNameField:addItem(k)--.onTouch = function() displayOrderItemCRUD(id, action, "trigVar", k) end
if (order ~= nil and order.name == k) or (varName ~= nil and varName == k) then iSelected = i end
end
end
if i == 0 then return end
varNameField.selectedItem = iSelected

varTrueFalseField = containerFields:addChild(client.GUI.comboBox(37, 2, 8, 1, 0xEEEEEE, 0x2D2D2D, 0xCCCCCC, 0x888888))
varTrueFalseField:addItem("false")
varTrueFalseField:addItem("true")
if (order ~= nil and order.is == true) then varTrueFalseField.selectedItem = 2 else varTrueFalseField.selectedItem = 1 end

orderNameField = containerFields:addChild(client.GUI.comboBox(46, 2, 16, 1, 0xEEEEEE, 0x2D2D2D, 0xCCCCCC, 0x888888))
local tkeys = {}; for k in pairs(client.dataOrders) do table.insert(tkeys, k) end; table.sort(tkeys)
local i = 1; local iSelected = 0
for _, k in ipairs (tkeys) do
orderNameField:addItem(k)
if order ~= nil and k == order.order then iSelected = i end
i = i + 1
end
if iSelected ~= 0 then orderNameField.selectedItem = iSelected else orderNameField.selectedItem = 1 end
end

displayOrderCRUDCommands(action)
Expand Down
11 changes: 10 additions & 1 deletion wincraft/server/WCServer.lua
Original file line number Diff line number Diff line change
Expand Up @@ -227,12 +227,20 @@ local saveOrderExecFile = function(orderName)
elseif v["type"] == "trigVar" then
o = o.." event.push('trigVar', '"..v.name.."'); "

elseif v["type"] == "inpVar" then
elseif v["type"] == "inpVar" then--specialise for vars ideally
o = o.." while true do "
o = o.." eventType,varName = event.pull(); "
o = o.." if eventType == 'trigVar' then "
o = o.." if varName == '"..v.name.."' then break end "
o = o.." end "
o = o.." end "
elseif v["type"] == "ifV_A" then
o = o.." if WCServer.getVarValue('"..v.name.."') == "..tostring(v.is).." then "
o = o.." WCServer.eAlias(_, _, _, _, _, _, '"..v.alias.."',"..v['force'].."); "
o = o.." end "
elseif v["type"] == "ifV_O" then
o = o.." if WCServer.getVarValue('"..v.name.."') == "..tostring(v.is).." then "
o = o.." WCServer.eOrder(_, _, _, _, _, _, '"..v.order.."', 'offOn', true); "
o = o.." end "
end
end
Expand Down Expand Up @@ -445,6 +453,7 @@ local uOrder = function(eventType,dest,src,aport,strength,order, oldOrderName, n
dataOrders[newOrderName] = json.decode(actualOrder)
if oldOrderName ~= newOrderName then dataOrders[oldOrderName] = nil end
saveJsonData("dataOrders.json", dataOrders)
print("oldOrderName"..oldOrderName)
removeOrder(oldOrderName)
saveOrderExecFile(newOrderName)
package.loaded[newOrderName] = nil
Expand Down

0 comments on commit fb2edf5

Please sign in to comment.