arpruss / raspberryjammod-minetest

Raspberry Jam Mod for Minetest
Other
39 stars 22 forks source link

Not sure of how to install this mod #1

Closed mquinson closed 8 years ago

mquinson commented 8 years ago

Hello,

I am not sure I understood how to install this package. Could you please point me to the right documentation?

I downloaded the package, unpacked raspberryjammod in the mods directory and the mod appears in the activable modules in the game interface.

I have the following line in my minetest.conf:

secure.trusted_mods = raspberryjammod

Then, I cloned RaspberryJuice on my disk and add RaspberryJuice/src/main/resources/mcpi/api/python/modded to my PYTHONPATH before starting Idle.

But then, when I try to program, nothing appears. I have no error on the python side, nor on the minetest side.

Could you please help me?

Thanks, Mt.

arpruss commented 8 years ago

What operating system are you using? What happens if you go to the mcpipy directory in the raspberryjammod directory and run: python donut.py?

mquinson commented 8 years ago

Well, if I do that, it works. I guess that I should not take the python things from the RaspeberryJuice but directly from your codebase. Even better, then.

I use Linux. I'm the packager of minetest and mobf mod in Debian, and I'm considering packaging this module too.

Thanks for your great work,

arpruss commented 8 years ago

Could you email me (arpruss@gmail.com) the python files you used from RaspberryJuice?

mquinson commented 8 years ago

These files are here: https://github.com/zhuowei/RaspberryJuice https://github.com/zhuowei/RaspberryJuice/tree/master/src/main/resources/mcpi/api/python/modded/mcpi

arpruss commented 8 years ago

Which script were you trying?

mquinson commented 8 years ago

A very simple script that I wrote by myself:

from mcpi.minecraft import Minecraft
mc = Minecraft.create()
mc.player.setTilePos(222,6,10000)
arpruss commented 8 years ago

It looks like they modified mcpi/minecraft.py in a way that, I think, is incompatible with the original Raspberry PI API. I may want to see if I can support their modified version without too much difficulty.

mquinson commented 8 years ago

No, no. Actually, I don't really care about their code. I just want to program the minetest world in python :) Btw, is all the code included in the archive yours? I'm asking because I will have to doublecheck the licence of each file to see whether they are free software before packaging them for Debian, and I have the feeling that mcpi/ files are not free software...

Thanks,

arpruss commented 8 years ago

Definitely a bug in the mcpi version included with RaspberryJuice.

The mcpi code comes with a weird "do no evil" license. Not GPL compatible. I've run into trouble with this. You might write Mojang for permission to re-license it under something GPL-compatible. Other stuff

Another option is to set up the scripts to download the mcpi code dynamically the first time you run the code.

I suppose it would be a stretch to say that Minecraft is an operating system (for mods, etc.) and that the mcpi code counts as an operating system library and hence falls under GPL2's operating system (or whatever it exactly is--it's been years since I looked at that) exemption?

My own code is all explicitly flagged with an MIT license. Other code is flagged with credits but no license. You could just keep my code (grep Pruss *.py ; that should pick up only MIT-licensed stuff) and add instructions to download the mcpi library.

mquinson commented 8 years ago

But do we really need that mcpi files? I mean, how hard would it be to redo the connexion to the minetest server with a free implementation ?

I would love to see the python interface extended to the mobf module, so that we can control miners and farmers working for us, too. But that would be something that is not part of the raspberry thing, actually.

arpruss commented 8 years ago

Sure, one could re-do it. But it would take a bit of work. One thing to be careful of is that the implementation is very flexible. For instance, you can do: mc.setBlock(12,33,44,12,0) mc.setBlock(12,33,44,12) mc.setBlock(12,33,44,Block(12,0)) mc.setBlock((12,33,44),Block(12,0)) mc.setBlock(Vec3(12,33,44),Block(12,0)) mc.setBlock(Vec3(12,33,44),(12,0)) etc.

This is all handled by calling flatten-type methods.

There is also some tricky code to handle versions of the mod that support Minecraft NBT and those that don't. I fear that a rewrite would introduce bugs.

mquinson commented 8 years ago

Fine, then. I will not repackage it. But I will still enjoy it ;)

Thanks for your work.