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

Simple block detection

Question

Hello, I'm totally newbie in OC and I started with some really simple scripts. I was playing with some api's provided on the official website and I tried to do my very first useful computer.

What I mean is to have block analyzed on top of the Geolyzer every 2 seconds and if its ID is one of the among these on the table's, the redstone should be powered. I was trying to use analyze() callback, but I do not really know how to store block data in the table. For now, my code looks like this in attachment, and it outputs this:.

 

I am not Lua expert anyway and still I'm training my skills creating more and more advanced codes. Anyone to help me with that?

1.jpg

2.jpg

Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Lua tem apenas uma estrutura de dados Tabelas, então uma tabela pode conter muitas informações dentro, você pode acessar essas informações usando o [] após o nome da variável, você pode ler e escrever dentro da tabela, para criar sua própria tabela basta usar o = {}

Ex:


Como você pode ver, acima eu crio uma tabela e armazeno o endereço da tabela na variável myTable, para acessar os campos da tabela eu uso o [1] antes da variável que você está armazenando o endereço da tabela, o "1" é o campo que você quero acessar, então escrevo "Olá mundo" no primeiro campo da tabela. Se você não usar = após o campo da tabela, você lê o valor no primeiro campo, então a última linha lê o campo da tabela myTable e passa para a função de impressão.

Você pode usar números e strings como chave para um campo de tabela.


 O exemplo acima cria uma tabela e armazena-a na variável lang, e após escrever em 3 campos diferentes, a última linha lê o localLang e usa o conteúdo como chave para acessar algum campo da tabela. O localLang tem a string "German", então a lua pesquisa dentro da tabela lang e encontra o "Hello welt".

Você pode pensar em tabelas como pares, uma chave e um valor, qualquer chave dentro da tabela tem um valor diferente de nulo

Se você não conhece o conteúdo interno de uma tabela, você pode pesquisar dentro dela usando a função inpairs, esta função retorna 2 variáveis, uma chave e um valor. Você pode usar um loop for para ver o que está dentro:

Citar

Resultado:

1->22

2->33

3->44

4->55

5->66

Se você tentar passar uma tabela para uma função de impressão, o resultado será o armazenamento do endereço da tabela dentro da variável, você pode vê-lo na sua impressão, tabela: 000001a883...

Outra forma de acessar os campos das tabelas é utilizando o arquivo . após a variável, como você fez na primeira linha do seu programa. Posso reescrever meu segundo exemplo:


 

 

Então, a função require que você usa na primeira linha do seu código, retorna uma tabela, e você acessa o campo "geoalyze" que é uma tabela, e chama um campo de função dentro do geolyze usando a chave "analyze", que retorna outro mesa :) . Se você quiser ver o que tem dentro, use a função in pairs que mostro acima.

Tabelas são os dados mais poderosos em lua, divirta-se aprendendo.

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.