Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local component = require("component")
- local term = require("term")
- local sides = require("sides")
- local transposer = component.transposer
- local redstone = component.redstone
- local GUI = require("GUI")
- local duplicator = sides.south
- local chest = sides.up
- local rsOnoff = sides.up
- local mobs = {}
- local dupMob = ""
- local lastSlot = ""
- duplicatorState = "off"
- redstone.setOutput(rsOnoff, 0)
- function printTable(table)
- for k, v in pairs(table) do
- print(k, v)
- end
- end
- function mysplit(inputstr, sep)
- if sep == nil then
- sep = "%s"
- end
- local t={} ; i=1
- for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
- t[i] = str
- i = i + 1
- end
- return t
- end
- function getMob(label)
- label = mysplit(label, "(")
- label = mysplit(label[2], ")")
- return label[1]
- end
- print(transposer.getInventoryName(chest))
- function loadChest()
- mobs = {}
- local items = transposer.getAllStacks(chest)
- for i=1, items.count() do
- if items[i].name ~= "minecraft:air" then
- local mob = getMob(items[i].label)
- mobs[mob] = {}
- mobs[mob]["Name"] = mob
- mobs[mob]["Slot"] = i
- end
- end
- lastSlot = items.count()
- end
- function loadDup()
- local dupItems = transposer.getAllStacks(duplicator)
- for i=1, dupItems.count() do
- if dupItems[i].name == "industrialforegoing:mob_imprisonment_tool" then
- dupMob = getMob(dupItems[i].label)
- -- print("Slot ID: " .. i)
- -- os.execute("sleep 5")
- end
- end
- end
- loadChest()
- loadDup()
- local mainContainer = GUI.fullScreenContainer()
- mainContainer:addChild(GUI.panel(1, 1, mainContainer.width, mainContainer.height, 0x2D2D2D))
- mainContainer:addChild(GUI.text(3, 2, 0xFFFFFF, "Mob in Spawner: "))
- if dupMob == "" then
- dupMob = "None"
- end
- local labelMob = mainContainer:addChild(GUI.text(20, 2, 0xFF0000, dupMob))
- mainContainer:addChild(GUI.text(3, 4, 0xFFFFFF, "Load Mob"))
- local moblist = mainContainer:addChild(GUI.comboBox(3, 5, 25, 3, 0xEEEEEE, 0x2D2D2D, 0xCCCCCC, 0x888888))
- --for k,v in pairs(mobs) do
- -- moblist:addItem(v["Name"]).onTouch = changeMob(v)
- --end
- function changeMob(mob)
- local selMob = moblist:getItem(moblist.selectedItem)
- --GUI.alert("Mob: " .. selMob.text .. "wird geladen!")
- transposer.transferItem(duplicator, chest, 1, 7, lastSlot)
- transposer.transferItem(chest, duplicator, 1, mob["Slot"], 7)
- transposer.transferItem(chest, chest, 1, lastSlot, mob["Slot"])
- loadChest()
- loadDup()
- labelMob.text = dupMob
- reloadMoblist()
- -- MobData
- mainContainer:drawOnScreen()
- end
- function reloadMoblist()
- moblist:clear()
- for k, v in pairs(mobs) do
- moblist:addItem(v["Name"]).onTouch = function() changeMob(v) end
- end
- end
- reloadMoblist()
- mainContainer:drawOnScreen()
- mainContainer:addChild(GUI.text(55, 2, 0xFFFFFF, "Spawner ON / OFF"))
- local onoff = mainContainer:addChild(GUI.button(50, 4, 30, 10, 0xFF0000, 0x000000, 0x00FF00, 0x000000, "OFF"))
- onoff.switchMode = true
- onoff.onTouch = function ()
- if duplicatorState == "off" then
- redstone.setOutput(rsOnoff, 15)
- onoff.text = "ON"
- duplicatorState = "on"
- else
- redstone.setOutput(rsOnoff, 0)
- onoff.text = "OFF"
- duplicatorState = "off"
- end
- end
- mainContainer:drawOnScreen()
- local exit = mainContainer:addChild(GUI.button(mainContainer.width-3, mainContainer.height, 4, 1, 0xFFFFFF, 0x555555, 0x880000, 0xFFFFFF, "Exit"))
- exit.onTouch = function()
- os.exit()
- end
- mainContainer:drawOnScreen(true)
- mainContainer:startEventHandling()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement