Page 73 of 73

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Sun Nov 04, 2018 17:15
by NetYard5
Okay got it, thanks.

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Thu Dec 13, 2018 00:57
by RickSaysMeh
Do Mese Blocks conduct vertically? Placing a lightbox on any of the six sides and powering the mese block seems to work as expected, the lightbox turns on. The same is true with a second mese block; HOWEVER, doing the same with a piston does not. The piston only receives power from the sides (X, Z) of the mese block, not the top or bottom. Is this by design? Is it possible to fix this so that pistons can be powered by a mese block above or below? To be clear, the mese block is touching the non-moving side of the piston.

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Thu Dec 13, 2018 15:08
by DS-minetest
RickSaysMeh wrote:Do Mese Blocks conduct vertically?

Yes, they do.
RickSaysMeh wrote:The piston only receives power from the sides (X, Z) of the mese block, not the top or bottom. Is this by design? Is it possible to fix this so that pistons can be powered by a mese block above or below?

As you can see here (https://github.com/minetest-mods/meseco ... it.lua#L49), the default rules (12 rules (4(+x,-x,+z,-z) * 3(up, middle, down))) are taken and the rules toward the pusher are removed.
This could easily be changed.

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Mon Jan 28, 2019 19:45
by thetoolman
Hey there!

Was wondering if there was a reason or if it has just not been suggested yet.

The LUA controller is cool and all but it is missing a call. This call is split. I put it in on my local copy and it works great and I thought I'd recommend it. I searched this thread for anything having to do with the lua controller and nothing came up talking about it so I figured I'd bring it up.

So some details:
I'm working with the lua controller and digilines and I want to make the lua controller count something that is sent in the digilines string. To be a little more clear here, the digilines chest spits out a string like this "default:cobblestone 9" where the first part is the item, and the last part is the number. (I haven't thought about this in a few months, but I think there's a part in the middle that says whether it is being added or removed). When I include the split function, I can say var item.count=item.count + event.msg.split(" ")[2] and it will add the previous value to this new value. This is great for keeping track of amounts in storage bins. (I need to post in the digiline topic that these numbers and the put/take are a bit wonky and it messes up my numbers, but that's a topic for another post in another thread). This is also good for communication of advanced strings similar to this from other systems I've built but wont get into.

So the code I added in mesecons_luacontroller/init.lua looks like this

local env = {
...
string = {
...
split = string.split,
...
}
....
}

I don't have a github account so I wont be making a merge request, but if someone wants to take a look at this and possibly add it or explain why it's not there, that'd be nice. This way, I don't have to modify the file whenever I pull the latest code.

Thanks

-thetoolman


p.s.
also does anyone know who manages the code base for the lua memory module? Someone did a pretty nasty typo that left the piece absolutely useless (index off by 0 where it is calling the data from the deserialized table). I saw a merge request on that ones page but it also had someones name tagged into it. Looks like it hasn't been updated in a while.)

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Sun Feb 10, 2019 02:56
by lonestar
Is it possible for mese to transmit through three blocks? In Minecraft, redstone is able to transmit this way. For example, you have two sticky pistons stacked on top of each other under a stone block, when redstone is active on top of the stone block, it activate both pistons. Either that or have pistons transfer power to the next.

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Sun Feb 10, 2019 20:09
by Hybrid Dog
You can make a mesecons transmitter node which sends a mesecons signal to three or more nodes in a specific direction. The default mesecons wire sends the signal only to the neighbouring nodes.

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Mon Feb 11, 2019 01:17
by lonestar
Hybrid Dog wrote:You can make a mesecons transmitter node which sends a mesecons signal to three or more nodes in a specific direction. The default mesecons wire sends the signal only to the neighbouring nodes.


Can you point to any documentation/tutorial on a transmitter? Doesn't seem to be in mesecons mod pack.

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Mon Feb 11, 2019 11:53
by Hybrid Dog
lonestar wrote:
Hybrid Dog wrote:You can make a mesecons transmitter node which sends a mesecons signal to three or more nodes in a specific direction. The default mesecons wire sends the signal only to the neighbouring nodes.


Can you point to any documentation/tutorial on a transmitter? Doesn't seem to be in mesecons mod pack.

I made a laser beam mod, where I used mesecon.receptor_on, mesecon.receptor_off and the mesecons field in the node definition.
https://github.com/HybridDog/laser/blob ... t.lua#L430
For a transmitter you probably also need to use effector, see the piston for examle: https://github.com/minetest-mods/meseco ... t.lua#L278
I haven't found a documentation of the mesecons API. Maybe it's missing.

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Mon Feb 11, 2019 16:25
by DS-minetest
Hybrid Dog wrote:I haven't found a documentation of the mesecons API. Maybe it's missing.

http://mesecons.net/developers.html
https://github.com/minetest-mods/mesecons/blob/master/mesecons/internal.lua#L1-L47 (There might be other useful code comments somewhere else.)

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Tue Feb 12, 2019 21:32
by Superuser
Awesome mod!
by far, a great way to make machines and etc- fills a gap from minecraft!

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Mon Jun 17, 2019 21:42
by Isja Krass
What happened to my luacontrollers???

+ igmage


I only try to run this code and this is happened.
Code: Select all
if event.msg == "inout_01 /status" then if pin.a == true then digiline_send(event.channel,"![INOUT_01]:has input") else if port.b == true then digiline_send(event.channel,"![INOUT_01]: has output") else digiline_send(event.channel,"![INOUT_01]: nil") end end end
if event.msg == "inout_01 /on" then port.a = true end
if event.msg == "inout_01 /off" then port.a = false end
if pin.a == true then digiline_send(event.channel,"![INOUT_01]: input") end
if event.msg == "inout_01 /check" then if pin.a == true then digiline_send(event.channel,"![INOUT_01]: input = true") else digiline_send(event.channel,"![INOUT_01]: input = false") end end

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Tue Jun 18, 2019 09:32
by DS-minetest
Isja Krass wrote:What happened to my luacontrollers???

+ igmage


I only try to run this code and this is happened.
Code: Select all
if event.msg == "inout_01 /status" then if pin.a == true then digiline_send(event.channel,"![INOUT_01]:has input") else if port.b == true then digiline_send(event.channel,"![INOUT_01]: has output") else digiline_send(event.channel,"![INOUT_01]: nil") end end end
if event.msg == "inout_01 /on" then port.a = true end
if event.msg == "inout_01 /off" then port.a = false end
if pin.a == true then digiline_send(event.channel,"![INOUT_01]: input") end
if event.msg == "inout_01 /check" then if pin.a == true then digiline_send(event.channel,"![INOUT_01]: input = true") else digiline_send(event.channel,"![INOUT_01]: input = false") end end

Uh, at least use new lines:
Code: Select all
if event.msg == "inout_01 /status" then
if pin.a == true then
digiline_send(event.channel,"![INOUT_01]:has input")
else
if port.b == true then
digiline_send(event.channel,"![INOUT_01]: has output")
else
digiline_send(event.channel,"![INOUT_01]: nil")
end
end
end

if event.msg == "inout_01 /on" then port.a = true end
if event.msg == "inout_01 /off" then port.a = false end
if pin.a == true then digiline_send(event.channel,"![INOUT_01]: input") end

if event.msg == "inout_01 /check" then
if pin.a == true then
digiline_send(event.channel,"![INOUT_01]: input = true")
else
digiline_send(event.channel,"![INOUT_01]: input = false")
end
end

if pin.a == true then digiline_send(event.channel,"![INOUT_01]: input") end sends a digiline message on every event with pin.a == true. If you have now another device that always sends a digiline message back, there are very many messages in a short time and the luacontroller overheats (it gets red).
To avoid this, you might want to check the value of event.type.

Something else:
Don't do something like if pin.a == true then, do instead if pin.a then. pin.a == true gives you true or false but pin.a is already true or false. Such a == true is redundant.

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Tue Jun 18, 2019 13:02
by Isja Krass
thanks for Support ;-)

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Mon Jul 22, 2019 18:34
by BBmine
I followed the guide on http://mesecons.net/uberi/projects/Clock/index.html. Only the blinking colon gets power, and the number blocks remain off.

+ Screenshots

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Mon Jul 22, 2019 23:04
by neoh4x0r
thetoolman wrote:The LUA controller is cool and all but it is missing a call. This call is split. I put it in on my local copy and it works great and I thought I'd recommend it. I searched this thread for anything having to do with the lua controller and nothing came up talking about it so I figured I'd bring it up.

I'm working with the lua controller and digilines and I want to make the lua controller count something that is sent in the digilines string. To be a little more clear here, the digilines chest spits out a string like this "default:cobblestone 9" where the first part is the item, and the last part is the number.

So the code I added in mesecons_luacontroller/init.lua looks like this

Code: Select all
local env = {
  ...
  string = {
    ...
    split = string.split,
    ...
  }
  ....
}


I don't have a github account so I wont be making a merge request, but if someone wants to take a look at this and possibly add it or explain why it's not there, that'd be nice. This way, I don't have to modify the file whenever I pull the latest code.


I just opened a new issue on github about this: https://github.com/minetest-mods/mesecons/issues/470

However, the message parameter sent by the digilines chest is a table.
https://github.com/minetest-mods/digili ... ry.lua#L10

Code: Select all
local msg = {
   action = action,
   stack = stack and stack:to_table(),
   from_slot = from_slot,
   to_slot = to_slot,
   -- Duplicate the vector in case the caller expects it not to change.
   side = side and vector.new(side)
}


Even if you could access the various members of the message parameter -- such as action (a string), or stack (a string or ItemStack table -- https://dev.minetest.net/ItemStack) -- the luacontroller sandbox might not allow the following code to be executed.

If the stack paramter is an itemstring (ie "default:dirt 5"), then string.split would be required.

However, it might be possible to access the various table members of the stack parameter.

eg:
Code: Select all
local table = msg.stack
for i, item in ipairs(table) do
   if not item  then
          print("[" .. i .. "] could not get item entry")
    else   
          local name = nil
          local count = nil
          if item.name then
                    name = item.name
          end
          if item.count then
                    count = item.name
          end
          if name and count then
                    print("[" .. i .. "] name=['" .. item.name .. "'] count= ['" .. item.count .. "']")
          else
                    if not name then
                              print("[" .. i .. "] could not get item name")
                    end
                    if not count then
                              print("[" .. i .. "] could not get item count")
                    end
          end
   end
end


PS: This is how it would be done in non-sandboxed lua code.

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Tue Jul 23, 2019 09:23
by Miniontoby
BBmine wrote:I followed the guide on http://mesecons.net/uberi/projects/Clock/index.html. Only the blinking colon gets power, and the number blocks remain off.

+ Screenshots


I think you have a code error (Look at the lua controllers). I have also a error in the code. I have nearly the solution.

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Fri Aug 23, 2019 20:57
by redblade7
I have a feature request for Mesecons:

Power and blinky plants that only activate during nighttime (in-game time).

What do you think?

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Sat Aug 24, 2019 01:55
by Yvanhoe
That could be interesting but there is already a light sensor and an rtc clock (through digilines though, not mesecons) you can already build that kind of detection if you want.

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Sat Aug 24, 2019 03:45
by redblade7
Yvanhoe wrote:That could be interesting but there is already a light sensor and an rtc clock (through digilines though, not mesecons) you can already build that kind of detection if you want.


I'm kind of a n00b to Mesecons. How do I use the light sensor to have light stones wired to up to plants only turn on when it's dark?

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Sat Aug 24, 2019 05:00
by Yvanhoe
You will probably need a luacontroller for that as well. This documentation will help: http://mesecons.net/digilines.html

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Sat Aug 24, 2019 09:34
by Clyde
This is like a fly on the wall with cannons ;-).

Take the solarpanel and the not-gate, that's all.
The not-gate reverses the signal, at day the solarpanel sends a signal to the not-gate,
the gate reverses the signal, the light is off.
At night, the solarpanel sends no signal to the not-gate, the gate reverses the signal, the light is on.

Greetings, Clyde.

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Sat Aug 24, 2019 11:38
by redblade7
Clyde wrote:This is like a fly on the wall with cannons ;-).

Take the solarpanel and the not-gate, that's all.
The not-gate reverses the signal, at day the solarpanel sends a signal to the not-gate,
the gate reverses the signal, the light is off.
At night, the solarpanel sends no signal to the not-gate, the gate reverses the signal, the light is on.

Greetings, Clyde.


Image

Thank you!

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Sat Aug 24, 2019 12:53
by DS-minetest
@redblade7: If you want to have a blinky plant that is only activated at night, connect the output of the not gate and a blinky plant with the inputs of an and gate. (Or don't use a not gate and instead connect a solar panel and a blinky plant with a xor gate.)

Re: [Mod] Mesecons (= redstone) [GitHub] [minetest-mod-mesec

PostPosted: Sat Aug 24, 2019 15:39
by neoh4x0r
redblade7 wrote:I have a feature request for Mesecons:
Power and blinky plants that only activate during nighttime (in-game time).
What do you think?


Clyde wrote:This is like a fly on the wall with cannons ;-).
Take the solarpanel and the not-gate, that's all.
The not-gate reverses the signal, at day the solarpanel sends a signal to the not-gate,
the gate reverses the signal, the light is off.
At night, the solarpanel sends no signal to the not-gate, the gate reverses the signal, the light is on.
Greetings, Clyde.


That would be a quick and dirty hack to turn the blink plant on, only when the solar panel is off.

If you only cared about the light-level (and not the time of day/night) then using a not-gate with the solar panel would work just fine.

However, the solar panel is also affected by artificial light sources and if enough are present to raise the level at at or above level 12, then the solar panel will be off (and this irrespective of it being day or nighttime).

Considering that the max light level is 15 and that the min threshold is 12 -- (it probably won't be dark / night-time when the solar panel is off).

To make it work properly you would have to remove all artificial light sources within a certain radius, and it is further complicated if it used inside vs outside.

Hence, this is why an rtc clock should be used with a solarpanel to be effective.


I'll describe this using pseudo-logic/algebra:
Code: Select all
// note max_level = 15
min=12 // on-off light_level threshold
L = light_level // the light-level hitting the solar panel

We can just simply to this:
solarpanel_on = (L >= min)
solarpanel_off = (L < min) = not  solarpanel_on


I have confirmed this (looking at the code):
https://github.com/minetest-mods/meseco ... it.lua#L73
https://github.com/minetest-mods/meseco ... it.lua#L88

Code: Select all
{nodenames = {"mesecons_solarpanel:solar_panel_off"},
if light >= 12 then
node.name = "mesecons_solarpanel:solar_panel_on"

{nodenames = {"mesecons_solarpanel:solar_panel_on"},
if light < 12 then
node.name = "mesecons_solarpanel:solar_panel_off"