Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal

The Simon

Members
  • Content Count

    23
  • Joined

  • Last visited

About The Simon

  • Rank
    Junior Member
  • Birthday 05/03/1998

Profile Information

  • Gender
    Male

Contact Methods

  • Minecraft
    simon_kungen

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hi I ran into the problem showing up here: I made a issue suggestion report here explaining the problem. But due to the mod being focused more to later versions of Minecraft it might be better to make an addon instead. I haven't modded Minecraft that much and simply only made a few mods to create items and items in use with Baubles API. But I kind of got stuck right away when adding a new module: ModuleFacade.java package net.simon.tiscovers.items; import li.cil.tis3d.api.machine.Casing; import li.cil.tis3d.api.machine.Face; import li.cil.tis3d.api.machine.Port; import li.cil.tis3d.api.util.RenderUtil; import li.cil.tis3d.client.renderer.TextureLoader; import li.cil.tis3d.common.module.ModuleDisplay; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumHand; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; public class ModuleCover extends ModuleDisplay { private Casing casing; private Face face; public ModuleCover(Casing casing, Face face) { super(casing, face); } @Override public Casing getCasing() { return this.casing; } @Override public Face getFace() { return this.face; } @Override public void onInstalled(ItemStack itemStack) { } @Override public void onUninstalled(ItemStack itemStack) { } @Override public void onEnabled() { } @Override public void onDisabled() { } @Override public void onDisposed() { } @Override public boolean onActivate(EntityPlayer player, EnumHand hand, float x,float y,float z) { if (player.isSneaking()) { return false; } // Reasoning: don't remove module from casing while activating the // module while the casing is disabled. Could be frustrating. if (!getCasing().isEnabled()) { return true; } return true; } @Override public void step() { } @Override public void onBeforeWriteComplete(final Port port) { // No need to clear other writing pipes because we're outputting random // values anyway, so yey. // Start writing again right away to write as fast as possible. } @Override public void onWriteComplete(final Port port) { // No need to clear other writing pipes because we're outputting random // values anyway, so yey. // Start writing again right away to write as fast as possible. } @SideOnly(Side.CLIENT) @Override public void render(final boolean enabled, final float partialTicks) { if (!enabled) { return; } RenderUtil.ignoreLighting(); GlStateManager.enableBlend(); RenderUtil.drawQuad(RenderUtil.getSprite(TextureLoader.LOCATION_OVERLAY_MODULE_RANDOM)); GlStateManager.disableBlend(); } } Some help is greatly appreciated. For the time being, I simply want the mod to compile and adding the new module.
  2. Hi! I have two screens and two graphics cards on my server, I want it to use one of them every time I boot the computer. As it is right now it chooses one of the two graphics cards randomly whenever I boot and binding them or changing the primary component with rc doesn't seem to fix the issue. Right now I simply spam click the power button until it selects the right monitor.
  3. I had an idea to use 3D models to make a nice transition between my wall and the floor, but as all 3D models all have in common is that they usually become a bit darker than their original counterpart. I have tried a bunch of solutions to fix this; giving it a light level, placing a light source behind it, changing the tint. You guys got any tips I could try to possibly fix this issue? Otherwise, I will have to do another solution other than 3D prints.
  4. The Simon

    Power Saving

    Hi! Been working on a Control Station for my Robot. It has most of the essential features done; movements, scanning, interactions, etc. But I have reached a stage when it's mostly optimizations which are left to do, one of them is power usage. The Robot has a battery tier 3 upgrade installed, but as it is now it can still only run for about 20 minutes before it runs out of power and shuts down. This is not ideal due to not be able to remotely turning on a computer directly and needs either a Player or other Robot interaction to turn it back on again. Components are a good culprit in this, and can easily be turned off until needed. Signals can be compressed, interactions can be guessed. But as far as software and such I am at a loss. Any suggestion I could use to extend the battery life of my Robot would be great. Things I have learned about power usage is that os.sleep() reduce power usage during the specified time. Each new character on a screen increases power usage, so it should be turned off when not in use. Signals to the Robot doesn't seem to use power (Linking Card), but signals from the Robot does use power as expected. Coroutines also increase power as expected but reduce the number of available resources inside the computer until the function has finished.
  5. A component that either can be installed inside of a Robot/Drone (possibly in its own slot) or be right-clicked on a computer case will execute the code that was put on the EEPROM during the crafting when pressing the power button. The crafting recipe should contain a Capacitor as an extra power cell for the component to function even if the local machine runs out of power. This could be useful when using a headless Robot/Drone if you want to save its state or want to send a signal it has been forced shutdown, can be a lifesaver in some regards. It would also be neat if it had a boolean statement whenever it should fire when the power in the local machine reaches zero, but the computer API can read the machine's energy level so I wouldn't say that should be a necessity.
  6. Ok, I got it setup after your diagram. Here is a picture of it from above: Edit* I saw now the Extender needs the Relays to be connected, removed the two cables on the sides of the Power Distributor and placed one cable in the middle of the Relays.
  7. Hi! I'm working on a "Main control station" to control my various Robots around the world without having to go there myself. I have been using a Linking Card to send signals to my Robot, but the plan is to use multiple and switch to the one you want to control. Right now I have it installed on my Server but want it in a Relay so I can expand the amount of Linking Cards, but I'm having a hard time getting it to work. I have no idea how to send stuff from it to the Robot. When I send from the Robot to the Server it just flashes indicating it has received a signal, but no signals are fired inside of the Server. So some feedback would be greatly appreciated in order for this to work.
  8. You were right with doing it inside a threat would mess stuff up. After I registered it inside of the main loop it worked as I wanted. And I'll keep in mind to use the Term Libray from now on.
  9. Hi! I am working on a long distance robot control program. I have a Geolyzer and Linked Card installed inside of it for getting an image of the robot's surroundings and then sends the data to my control station where the mod OpenGlasses draws blocks for an illustration. I got it working when I simply registered a event.listen() at the start of the program, but it is kind of an inconvenience if I want other kinds of signals from the robot. So my idea was to only have one registered when it's waiting for the scan data and when it's done it should unregister it. But this new approach doesn't seem to work for some reason. I made it print out its return value when I registered/unregistered it, and it returned 1 and false. I have no idea how to proceed to the next step. Help is appreciated! station.lua local c = require("component") local lights = require("lights") local gButtons = require("gButtonAPI4") local gKeyboard = require("gKeyboard") local event = require("event") local ser = require("serialization") local thread = require("thread") local d = require("computer") local GPU = c.proxy("332a93bc-f0a6-4c71-9460-d7a7d6ee0d2c") local APU = c.proxy("4ba6d276-efab-474c-ba48-bcbd7fd62353") --local glasses = c.glasses local terrain = {} local localPos = {0,0,0} local facing = "W" -- S W N E (+Z -X -Z +X) local digitDisplays = { { "a87d9238-f46e-4b17-b605-6d8771fba4c4", "28dfb050-4f70-4bf8-b221-cc84ab43c660", "fef15435-a434-4e33-a3ca-3f725e02dd7f", "c0941fad-d5fb-4dce-b356-724431e6b66c" }, { "d5a80dc6-963c-4fb5-98ea-711ebb2ff1eb", "c868c412-22f5-4605-8e4a-b4bce3e1320c", "19b54b1e-8970-4305-9294-d3582d85d06d", "c06effa6-bada-4ddc-8578-c46d155b4250" }, { "6191d4e0-715f-4c8c-a98e-8960c79c26ab", "54ab4452-b63f-4b43-a1e1-13208eac1628", "84948db9-81dd-4646-932f-a047ecdef4d7", "f226bacf-7af6-47ad-be01-6bb31fcfda9b" } } local function compress(tab) tab = ser.serialize(tab) tab = c.data.deflate(tab) return tab end local function decompress(val) val = c.data.inflate(val) val = ser.unserialize(val) return val end local function addBlock(pos,color) local x = c.glasses.addCube3D() x.set3DPos(table.unpack(pos)) x.setColor(table.unpack(color)) x.setAlpha(0.7) x.setScale(0.8) return x end local function HSL(hue, saturation, lightness, alpha) if hue < 0 or hue > 360 then return 0, 0, 0, alpha end if saturation < 0 or saturation > 1 then return 0, 0, 0, alpha end if lightness < 0 or lightness > 1 then return 0, 0, 0, alpha end local chroma = (1 - math.abs(2 * lightness - 1)) * saturation local h = hue/60 local x =(1 - math.abs(h % 2 - 1)) * chroma local r, g, b = 0, 0, 0 if h < 1 then r,g,b=chroma,x,0 elseif h < 2 then r,b,g=x,chroma,0 elseif h < 3 then r,g,b=0,chroma,x elseif h < 4 then r,g,b=0,x,chroma elseif h < 5 then r,g,b=x,0,chroma else r,g,b=chroma,0,x end local m = lightness - chroma/2 return (r+m)*255,(g+m)*255,(b+m)*255 end lights.digit(3,digitDisplays[1],0xff033d) lights.digit(5,digitDisplays[2],0xff033d) lights.digit(9,digitDisplays[3],0xff033d) GPU.set(25,5,"Le GPU") APU.set(25,5,"La APU") for i=1,5 do d.beep() end local function receiveScanData(_,_,_,_,_,msg1,msg2,msg3,msg4) print(msg1) if msg1 == "scanData" then else --[[addBlock(table.unpack(decompress(msg1)),{0,255,0}) addBlock(table.unpack(decompress(msg2)),{0,255,0}) addBlock(table.unpack(decompress(msg3)),{0,255,0}) addBlock(table.unpack(decompress(msg4)),{0,255,0})--]] local coord = {decompress(msg1),decompress(msg2),decompress(msg3),decompress(msg4)} for i in pairs(coord) do thisHue = 360 - ((coord[i][1]+5))/9*360 addBlock({coord[i][1],coord[i][2],coord[i][3]},{HSL(thisHue, 1, 0.5, 1)}) if coord[i][2] then print(coord[i][1],coord[i][2],coord[i][3],thisHue) end end end end --event,_,linkingCard,_,_,msg1,msg2,msg3,msg4 --event.listen("modem_message",receiveScanData) gButtons.initialize() --name,group,label,x,y,w,h,color,alpha,callback gButtons.createNewButton("scan",nil,"Scan",5,5,35,14,{255,0,0},0.4,function(x) gButtons.Color(x,{0,255,0}) --c.glasses.removeAll() c.tunnel.send("scan") os.sleep(0.4) gButtons.Color(x) end) local function update() --print(event.pull(1/20,"modem_message")) os.sleep(1/20) thread.create(function() gButtons.update() end) thread.create(function() local _,_,_,_,_,o = event.pull(1/20,"modem_message") --print(o) if o == "scanData" then print(event.listen("modem_message",receiveScanData)) print("Enabled") end if o == "scanDataComplete" then print(event.ignore("modem_message",receiveScanData)) print("Disabled") end end) end while true do update() end remote.lua (Robot) local computer = require("computer") local c = require("component") local event = require("event") local ser = require("serialization") local tty = require("tty") local thread = require("thread") local hardValues = {} local terrain = {} --c.tunnel.send() local function compress(val) val = ser.serialize(val) val = c.data.deflate(val) return val end local function decompress(val) val = c.data.inflate(val) val = ser.unserialize(val) return val end local function scan() local x = {} print("Analyzing ..") for i=-4,4 do for d=-4,4 do table.insert(x,c.geolyzer.scan(i,d)) end end print("Done Analyzing.") return x end thread.create(function() os.sleep(5) tty.clear() print("Initilizing ..") --os.execute("/bin/components.lua") --c.gpu.bind("125bb046-a2c9-4182-8459-785265229229") end):detach() local function receive(_,_,_,_,_,msg1,msg2,msg3,msg4) computer.beep() terrain = {} if msg1 == "scan" then print("Starting Sequence ..") --[[for x in pairs(hardValues) do for z in pairs(hardValues[x]) do for y in pairs(hardValues[x][z]) do c.gpu.set(1,6,x .. " " .. y .. " " .. z) if hardValues[x][z][y] > 0 then table.insert(terrain,{x,y,z}) --print(x .. " " .. y .. " " .. z) break end end end end--]] --local x,z = -4,-4 for x=-4,4 do --x = x + 1 for z=-4,4 do local tile = c.geolyzer.scan(x,z) --z = z + 1 --os.sleep(2) --print(tile) for y=#tile,1,-1 do --print(y) if tile[y] ~= 0 then table.insert(terrain,{x,y-33,z}) --print("Found: ",x,y,z) --break end if y < 31 then break end end end end print("Calculation Complete.") print(#terrain .. " entries.") print("Sending Data ..") c.tunnel.send("scanData") os.sleep(1) for i=1,#terrain,4 do c.tunnel.send( compress(terrain[i]), compress(terrain[i+1]), compress(terrain[i+2]), compress(terrain[i+3]) ) end print("Data Sent.") os.sleep(1) c.tunnel.send("scanDataComplete") end end event.listen("modem_message",receive) local function update() os.sleep(0) end while true do update() end
  10. Thank you! This works fine! Had no idea you could have parenthesis in the NBT tag like that!
  11. Hi! I have some questions about how to get OpenComputers' items with NBT through commands. I would like to give players the OpenOS Floppy Disk when they run a command block, but when I'm trying to give the floppy any of the OC attributes I'm getting an error: Data tag parsing failed: Expected '}' but got ':' at: {oc:data:<--[HERE] This is the command I'm currently using: /give @p opencomputers:storage 1 1 {oc:data:{oc:fs.label:"openos"}, display:{Name:"OpenOS (Operating System)"}}
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.