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

AE2 and opencomputers

Question

hi i am okay to computercraft but a complete newb to openccomputers but here is my question I have made a program in cc and then ported it over to oc it works but for some unknown reason will it not read the data from my table or maybe from ae2 itself here is the code so what's wrong

local component = require "component"
local gpu = component.gpu
local colors = require("colors")
local term = require "term"
local me = component.me_interface
local monX,monY = gpu.getResolution()
local low = 64


local meItems = {
[1] = {"Iron Ingot","minecraft:iron_ingot","0"},
[2] = {"Sand", "minecraft:sand","0"},
[3] = {"Acasia Wood","minecraft:log2","0"},
[4] = {"Acasia Planks","minecraft:planks","4"},
[5] = {"SawDust","Mekanism:Sawdust","0"},
[6] = {"Paper","minecraft:paper","0"},
[7] = {"Cactus","minecraft:cactus","0"},
[8] = {"Cactus Green","minecraft:dye","2"},
[9] = {"Ink","minecraft:dye","0"},
[10] = {"Red Dye","minecraft:dye","1"},
[11] = {"Purple Dye","minecraft:dye","5"},
[12] = {"Gray Dye","minecraft:dye","8"},
[13] = {"Light Gray Dye","minecraft:dye","7"},
[14] = {"Light Blue Dye","minecraft:dye","12"},
[15] = {"Dandyline Yellow","minecraft:dye","11"},
[16] = {"Aluminium Ingots","TConstruct:materials","11"},
[17] = {"Stone","minecraft:stone","0"},
[18] = {"CobbleStone","minecraft:cobblestone","0"},
[19] = {"Gold Ingots","minecraft:gold_ingot","0"},
[20] = {"Copper Ingots","Mekanism:Ingot","5"},
[21] = {"GlowStone Dust","minecraft;glowstone_dust","0"},
[22] = {"Glass","minecraft:glass","0"}
}

function checkMe(checkName, name)
  melist = me.getAvailableItems()
  for a = 1, #melist do
    itemName = melist[a].fingerprint.id .. melist[a].fingerprint.dmg
    value = tostring(melist[a].size)
    if itemName == checkName then
      centerT(name, row+2, 0x000000, 0x0024BF, "lefty")
      if tonumber(value) <= low then
        centerT(value, row+2,0x000000, 0xBF0000, "righty")
      else
        centerT(value, row+2,0x000000, 0x0FBF00, "righty")
      end
      row=row+1
    end
  end
end

function checkTable()
  row = 1
  clearScreen()
  for i = 1, #meItems do
    checkName = meItems[2] .. meItems[3]
    name = meItems[1]
    checkMe(checkName, name)
  end
end    

function clearScreen()
  gpu.setBackground(0x000000)
  term.clear()
  term.setCursor(1,1)
  centerT("  ME Inventory  ",1 ,0x0F00BF , 0xFFFFFF,"head")
end

function centerT(text,line,txtback,txtcolor,pos)
  gpu.setBackground(txtback)
  gpu.setForeground(txtcolor)
  length = string.len(text)
  dif = math.floor(monX-length)
  x = math.floor(dif/2)
  if pos == "head" then
    term.setCursor(x+1, line)
    term.write(text)
  elseif pos == "lefty" then
    term.setCursor(2,line)
    term.write(text)
  elseif pos == "righty" then
    term.setCursor(monX-length, line)
    term.write(text)
  end
end

while true do
  checkTable()
--  sleep(10)
end
 

Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 0

centerT func looks fine.. I'd suspect the checkMe func, specifically the loop over the list, or the list length operator. Check that the list is actually reporting the proper length? Shove a few print calls in there to debug.. I can't test ATM but nothing is standing out as the culprit.

Link to post
Share on other sites
  • 0

thai is the original cc program that worked for years and still works technicaly

me = peripheral.wrap("tileinterface_3")
mon = peripheral.wrap("monitor_29")
low = 64

mon.setTextScale(0.5)

local meItems = {
[1] = {"Iron Ingot","minecraft:iron_ingot","0"},
[2] = {"Sand", "minecraft:sand","0"},
[3] = {"Acasia Wood","minecraft:log2","0"},
[4] = {"Acasia Planks","minecraft:planks","4"},
[5] = {"SawDust","Mekanism:Sawdust","0"},
[6] = {"Paper","minecraft:paper","0"},
[7] = {"Cactus","minecraft:cactus","0"},
[8] = {"Cactus Green","minecraft:dye","2"},
[9] = {"Ink","minecraft:dye","0"},
[10] = {"Red Dye","minecraft:dye","1"},
[11] = {"Purple Dye","minecraft:dye","5"},
[12] = {"Gray Dye","minecraft:dye","8"},
[13] = {"Light Gray Dye","minecraft:dye","7"},
[14] = {"Light Blue Dye","minecraft:dye","12"},
[15] = {"Dandyline Yellow","minecraft:dye","11"},
[16] = {"Aluminium Ingots","TConstruct:materials","11"},
[17] = {"Stone","minecraft:stone","0"},
[18] = {"CobbleStone","minecraft:cobblestone","0"},
[19] = {"Gold Ingots","minecraft:gold_ingot","0"},
[20] = {"Copper Ingots","Mekanism:Ingot","5"},
[21] = {"GlowStone Dust","minecraft;glowstone_dust","0"},
[22] = {"Glass","minecraft:glass","0"}
}

function checkMe(checkName, name)
  melist = me.getAvailableItems()
  for a = 1, #melist do
    itemName = melist[a].fingerprint.id .. melist[a].fingerprint.dmg
    value = tostring(melist[a].size)
    if itemName == checkName then
      print("true")
      print(name)
      print("me=" ..itemName)
      print("var=" ..checkName)
      print("sum=" ..value)
      centerT(name, row+2, colors.black,colors.blue, "lefty")
      if tonumber(value) <= low then
        centerT(value, row+2,colors.black, colors.red, "righty")
      else
        centerT(value, row+2,colors.black, colors.green, "righty")
      end
      row=row+1
    end
  end
end

function checkTable()
  row = 1
  clearScreen()
  for i = 1, #meItems do
    checkName = meItems[2] .. meItems[3]
    name = meItems[1]
    checkMe(checkName, name)
  end
end    

function clearScreen()
  mon.setBackgroundColor(colors.black)
  mon.clear()
  mon.setCursorPos(1,1)
  centerT("  ME Inventory  ",1,colors.blue, colors.white,"head")
end

function centerT(text,line,txtback,txtcolor,pos)
  monX,monY = mon.getSize()
  mon.setBackgroundColor(txtback)
  mon.setTextColor(txtcolor)
  length = string.len(text)
  dif = math.floor(monX-length)
  x = math.floor(dif/2)
  if pos == "head" then
    mon.setCursorPos(x+1, line)
    mon.write(text)
  elseif pos == "lefty" then
    mon.setCursorPos(2,line)
    mon.write(text)
  elseif pos == "righty" then
    mon.setCursorPos(monX-length, line)
    mon.write(text)
  end
end

while true do
  checkTable()
  sleep(10)
end

Link to post
Share on other sites
  • 0

Im trying to test it right now but Im not too good with Applied energistics... What component of the me network is your OC adapter touching? I have it touching the me_interface but I dont have the component method me_interface.getAvailableItems() just me_interface.getItemsInNetwork(). And the list doesnt appear to show the correct amount of items or any at all really... just an empty list "{n=0}"

I updated to 1.12.2 and now the me_interface.getItemsInNetwork() method returns a populated list however I still dont have the me_interface.getAvailableItems() method.. Anything I need to know about how your ME network is setup or configured? Remember im an ME noob so help me help you :)

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

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