10000 GitHub - neumond/python-computer-craft at c7e1c3d7ed3d2c6e77ccf624efdf84e885e73cdf
[go: up one dir, main page]

Skip to content

neumond/python-computer-craft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pythonized CC Tweaked (ComputerCraft) API

  1. Enable localhost in mod server config

    In case of singleplayer it's located inside your saves folder. In case of multiplayer check your server folder.

    Edit computercraft-server.toml

    [[http.rules]]
    	host = "127.0.0.0/8"
    	action = "allow"  # change here deny to allow
  2. Create module named examplemod.py:

    async def hello(api):
        await api.print('Hello world!')
  3. Start a server:

    python -m computercraft.server examplemod
  4. In minecraft, open up any computer and type:

    wget http://127.0.0.1:8080/ py
    py hello

py is short Lua program that interacts with the server. Argument is the name of coroutine inside the module. api object contains almost everything as is in ComputerCraft documentation:

async def program(api):
    await api.disk.eject('right')
    await api.print(await api.os.getComputerLabel())
    # ...

Using python coroutines allows launching commands in parallel, effectively replacing parallel API:

async def program(api):
    # Since os.sleep is mostly waiting for events, it doesn't block execution of parallel threads
    # and this snippet takes approximately 2 seconds to complete.
    await asyncio.gather(api.os.sleep(2), api.os.sleep(2))

About

Pythonization of ComputerCraft Minecraft mod. Write Python instead Lua!

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published
0