Refactor to use the new World API

develop
Alvaro del Castillo San Felix 2020-05-31 20:34:37 +02:00
parent c5e787feea
commit 3a5e351508
15 changed files with 56 additions and 42 deletions

View File

@ -4,6 +4,7 @@ import pandas as pd
from mcthings.thing import Thing
from mcthings.scene import Scene
from mcthings.world import World
ABADIA_LEVEL_HEIGHT = 16
@ -43,15 +44,15 @@ class CsvPoints(Thing):
if (axis_x_list[i] - axis_x_list[i-1]) > 1:
init_x = self.position.x + init_split_x
end_x = self.position.x + axis_x_list[i-1]
Scene.server.postToChat("Building blocks defined in a CSV file (%s, %s, %s)"
World.server.postToChat("Building blocks defined in a CSV file (%s, %s, %s)"
% (init_x, init_y, init_z))
Scene.server.setBlocks(init_x, init_y, init_z, end_x, end_y, end_z, self.block)
World.server.setBlocks(init_x, init_y, init_z, end_x, end_y, end_z, self.block)
init_split_x = axis_x_list[i]
init_x = self.position.x + init_split_x
end_x = self.position.x + axis_x_list[-1]
Scene.server.setBlocks(init_x, init_y, init_z, end_x, end_y, end_z, self.block)
World.server.setBlocks(init_x, init_y, init_z, end_x, end_y, end_z, self.block)
def build(self):
# Read the CSV file

View File

@ -6,6 +6,8 @@ import mcpi.entity
from mcthings.scene import Scene
from ._version import __version__
from mcthings.world import World
class Entity:
entity = mcpi.entity.BAT
@ -29,7 +31,7 @@ class Entity:
return self._position
def spawn(self):
Scene.server.spawnEntity(self.position.x, self.position.y,
World.server.spawnEntity(self.position.x, self.position.y,
self.position.z, self.entity)
def build(self):

View File

@ -7,6 +7,7 @@ from math import *
# Based on Rainbow code written by zhuowei and retrieved from URL below:
# http://www.minecraftforum.net/topic/1638036-my-first-script-for-minecraft-pi-api-a-rainbow/
from mcthings.world import World
colors = [14, 1, 4, 5, 3, 11, 10]
@ -18,7 +19,7 @@ class Rainbow(Thing):
block = block.WOOL.id
def build(self):
mc = Scene.server
mc = World.server
mc.setBlocks(-64, 0, 0, 64, self.height + len(colors), 0, 0)
for x in range(0, 128):
for color in range(0, len(colors)):

View File

@ -4,6 +4,7 @@
from mcpi.vec3 import Vec3
from mcthings.scene import Scene
from mcthings.thing import Thing
from mcthings.world import World
class Spiral(Thing):
@ -12,7 +13,7 @@ class Spiral(Thing):
height = 10
def build(self):
mc = Scene.server
mc = World.server
size = 10
height = 3

View File

@ -4,6 +4,7 @@
from mcpi.vec3 import Vec3
from mcthings.scene import Scene
from mcthings.thing import Thing
from mcthings.world import World
class StairsSnail(Thing):
@ -14,7 +15,7 @@ class StairsSnail(Thing):
width = 5
def build(self):
mc = Scene.server
mc = World.server
direction = 0

View File

@ -46,7 +46,7 @@ setup(
],
install_requires=[
'mcpi >= 1.2.0',
'mcthings >= 0.31.1, <=0.32.0',
'mcthings >= 0.34.0',
'pandas',
'nbt'
],

View File

@ -5,6 +5,7 @@ import mcpi.minecraft
from mcthings.scene import Scene
from mcthings.server import Server
from mcthings.world import World
from minecraftstuff import MinecraftDrawing
BUILDER_NAME = "ElasticExplorer"
@ -15,14 +16,14 @@ MC_SEVER_PORT = 4711
def main():
try:
server = Server(MC_SEVER_HOST, MC_SEVER_PORT)
World.connect(Server(MC_SEVER_HOST, MC_SEVER_PORT))
server.mc.postToChat("Cleaning a scene")
World.server.postToChat("Cleaning a scene")
# Let's load the scene and build it
Scene.load("scene_rainbow.mct")
# Move the scene to the player position
Scene.unbuild()
scene = Scene()
scene.load("scene_rainbow.mct")
scene.unbuild()
except mcpi.connection.RequestError:
print("Can't connect to Minecraft server " + MC_SEVER_HOST)

View File

@ -2,7 +2,7 @@ import sys
import mcpi.block
import mcpi.minecraft
from mcthings.world import World
from mcthings_extra.csv_points import CsvPoints
from mcthings.server import Server
@ -16,10 +16,10 @@ MC_SEVER_PORT = 4711
def main():
try:
server = Server(MC_SEVER_HOST, MC_SEVER_PORT)
World.connect(Server(MC_SEVER_HOST, MC_SEVER_PORT))
server.mc.postToChat("Building blocks defined in a CSV file")
pos = server.mc.entity.getTilePos(server.mc.getPlayerEntityId(BUILDER_NAME))
World.server.postToChat("Building blocks defined in a CSV file")
pos = World.server.entity.getTilePos(World.server.getPlayerEntityId(BUILDER_NAME))
pos.z += 1
csv_points = CsvPoints(pos)

View File

@ -5,6 +5,7 @@ import mcpi.minecraft
from mcthings.scene import Scene
from mcthings.server import Server
from mcthings.world import World
from minecraftstuff import MinecraftDrawing
BUILDER_NAME = "ElasticExplorer"
@ -15,17 +16,18 @@ MC_SEVER_PORT = 4711
def main():
try:
server = Server(MC_SEVER_HOST, MC_SEVER_PORT)
World.connect(Server(MC_SEVER_HOST, MC_SEVER_PORT))
server.mc.postToChat("Building a scene from a file")
pos = server.mc.entity.getTilePos(server.mc.getPlayerEntityId(BUILDER_NAME))
World.server.postToChat("Building a scene from a file")
pos = World.server.entity.getTilePos(World.server.getPlayerEntityId(BUILDER_NAME))
pos.z -= 50
# Let's load the scene and build it
Scene.load("scene_rainbow.mct")
scene = Scene()
scene.load("scene_rainbow.mct")
# Move the scene to the player position
Scene.move(pos)
Scene.build()
scene.move(pos)
scene.build()
except mcpi.connection.RequestError:
print("Can't connect to Minecraft server " + MC_SEVER_HOST)

View File

@ -4,6 +4,7 @@ import mcpi.block
import mcpi.minecraft
from mcthings.server import Server
from mcthings.world import World
from mcthings_extra.rainbow import Rainbow
@ -15,10 +16,10 @@ MC_SEVER_PORT = 4711
def main():
try:
server = Server(MC_SEVER_HOST, MC_SEVER_PORT)
World.connect(Server(MC_SEVER_HOST, MC_SEVER_PORT))
server.mc.postToChat("Building a rainbow")
pos = server.mc.entity.getTilePos(server.mc.getPlayerEntityId(BUILDER_NAME))
World.server.postToChat("Building a rainbow")
pos = World.server.entity.getTilePos(World.server.getPlayerEntityId(BUILDER_NAME))
pos.z -= 20
rainbow = Rainbow(pos)

View File

@ -6,6 +6,7 @@ import mcpi.minecraft
from mcthings.scene import Scene
from mcthings.pyramid import Pyramid
from mcthings.server import Server
from mcthings.world import World
from mcthings_extra.rainbow import Rainbow
@ -19,10 +20,10 @@ MC_SEVER_PORT = 4711
def main():
try:
server = Server(MC_SEVER_HOST, MC_SEVER_PORT)
World.connect(Server(MC_SEVER_HOST, MC_SEVER_PORT))
server.mc.postToChat("Building a rainbow")
pos = server.mc.entity.getTilePos(server.mc.getPlayerEntityId(BUILDER_NAME))
World.server.postToChat("Building a rainbow")
pos = World.server.entity.getTilePos(World.server.getPlayerEntityId(BUILDER_NAME))
pos.z -= 20
pyr = Pyramid(pos)
@ -31,7 +32,7 @@ def main():
rainbow = Rainbow(pyr.end_position)
rainbow.build()
Scene.save("scene_rainbow.mct")
World.scenes[0].save("scene_rainbow.mct")
except mcpi.connection.RequestError:
print("Can't connect to Minecraft server " + MC_SEVER_HOST)

Binary file not shown.

View File

@ -4,6 +4,7 @@ import mcpi.block
import mcpi.minecraft
from mcthings.server import Server
from mcthings.world import World
from mcthings_extra.spiral import Spiral
@ -15,18 +16,18 @@ MC_SEVER_PORT = 4711
def main():
try:
server = Server(MC_SEVER_HOST, MC_SEVER_PORT)
World.connect(Server(MC_SEVER_HOST, MC_SEVER_PORT))
server.mc.postToChat("Building a spiral")
pos = server.mc.entity.getTilePos(server.mc.getPlayerEntityId(BUILDER_NAME))
World.server.postToChat("Building a spiral")
pos = World.server.entity.getTilePos(World.server.getPlayerEntityId(BUILDER_NAME))
pos.z -= 1
spiral = Spiral(pos)
spiral.block = mcpi.block.WOOD
spiral.build()
server.mc.entity.setTilePos(server.mc.getPlayerEntityId(BUILDER_NAME),
spiral.end_position)
World.server.entity.setTilePos(World.server.getPlayerEntityId(BUILDER_NAME),
spiral.end_position)
except mcpi.connection.RequestError:
print("Can't connect to Minecraft server " + MC_SEVER_HOST)

View File

@ -4,6 +4,7 @@ import mcpi.block
import mcpi.minecraft
from mcthings.server import Server
from mcthings.world import World
from mcthings_extra.stairs_snail import StairsSnail
@ -15,10 +16,10 @@ MC_SEVER_PORT = 4711
def main():
try:
server = Server(MC_SEVER_HOST, MC_SEVER_PORT)
World.connect(Server(MC_SEVER_HOST, MC_SEVER_PORT))
server.mc.postToChat("Building stairs")
pos = server.mc.entity.getTilePos(server.mc.getPlayerEntityId(BUILDER_NAME))
World.server.postToChat("Building stairs")
pos = World.server.entity.getTilePos(World.server.getPlayerEntityId(BUILDER_NAME))
pos.z -= 1
stairs = StairsSnail(pos)
@ -28,7 +29,7 @@ def main():
stairs.block = mcpi.block.IRON_BLOCK
stairs.build()
server.mc.entity.setTilePos(server.mc.getPlayerEntityId(BUILDER_NAME),
World.server.entity.setTilePos(World.server.getPlayerEntityId(BUILDER_NAME),
stairs.end_position)
except mcpi.connection.RequestError:

View File

@ -11,6 +11,7 @@ from mcpi.vec3 import Vec3
from mcthings.decorators.light_decorator import LightDecorator
from mcthings.house import House
from mcthings.server import Server
from mcthings.world import World
from mcthings_extra.decorators.villager_decorator import VillagerDecorator
@ -22,10 +23,10 @@ MC_SEVER_PORT = 4711
def main():
try:
server = Server(MC_SEVER_HOST, MC_SEVER_PORT)
World.connect(Server(MC_SEVER_HOST, MC_SEVER_PORT))
server.mc.postToChat("Spawning entities in Minecraft")
pos = server.mc.entity.getTilePos(server.mc.getPlayerEntityId(BUILDER_NAME))
World.server.postToChat("Spawning entities in Minecraft")
pos = World.server.entity.getTilePos(World.server.getPlayerEntityId(BUILDER_NAME))
# Let's create a Scene and populate it with Entities
house = House(Vec3(pos.x + 5, pos.y, pos.z))