Dies ist eine alte Version des Dokuments!
-Idee: Zoo mit verschiedenen Bereichen (je nach Tierart)
-Organisation:Zu zweit ein Gehege/Bereich bauen, diese werden schlussendlich durch Wege verbunden, damit es nach einem einheitlichen Zoo aussieht
-Zeitliche Planung:
- Bis und während Weihnachtsferien: Plan zeichnen→ Planung der Bereiche, Gehege und Eingang bauen
- Bauernhof
- Streichelzoo (Ziegen, Hasen etc.)
- Pandagehege
- Aquarium gross mit Durchgang
- Eingangsbereicht→ Tickethaus
- Nach den Weihnachtsferien bis Abgabe: Verbindungen, Tiere setzen etc.
- Alle Tier setzen
- Wege bauen
- evtl. Deko wie Pflanzen oder Schrift
Unsere Arbeit:
<code python> <code>
Definition für unsere Eingangshäuschen
def haus():
blocks.fill(PLANKS_DARK_OAK, world(18, -61, 31), world(8, -57, 37), FillOperation.HOLLOW) blocks.fill(BLOCK_OF_QUARTZ, world(18, -61, 31), world(8, -61, 37), FillOperation.REPLACE) blocks.fill(AIR, world(18,-59,34), world(18,-59,35),FillOperation.REPLACE) blocks.fill(AIR, world(8,-59,34), world(8,-59,35),FillOperation.REPLACE) blocks.fill(AIR, world(17,-60, 31), world(17, -59, 31), FillOperation.REPLACE) blocks.place(OAK_DOOR, world(17, -60, 31)) blocks.fill(BLOCK_OF_QUARTZ, world(16, -60, 35), world(17, -59, 33), FillOperation.REPLACE) blocks.fill(AIR, world(17, -60, 34), world(17, -59, 34), FillOperation.REPLACE) blocks.fill(BLOCK_OF_QUARTZ, world(9, -60, 33), world(10, -59, 35), FillOperation.REPLACE) blocks.fill(AIR, world(9, -60, 34), world(9, -59, 34), FillOperation.REPLACE) blocks.fill(BOOKSHELF, world(9, -60, 36), world(17, -60, 36), FillOperation.REPLACE) blocks.place(FLOWER_POT, world(9, -59, 35)) blocks.place(FLOWER_POT, world(17, -59, 35))
** Definition für unseren Eingangsbereich**
def eingang():
blocks.fill(PLANKS_DARK_OAK, world(3, -56, 37), world(25, -56, 37), FillOperation.REPLACE) blocks.fill(PLANKS_OAK, world(25,-60, 37), world(25, -57, 37), FillOperation.REPLACE) blocks.fill(PLANKS_OAK, world(25, -57, 37), world(19, -57, 37), FillOperation.REPLACE) blocks.fill(PLANKS_OAK, world(3, -60, 37), world(3, -57, 37), FillOperation.REPLACE) blocks.fill(PLANKS_OAK, world(3, -57, 37), world(7, -57, 37), FillOperation.REPLACE)
** Definition für unsere Ställe**
def hütte(x,z,y,l,b,):
blocks.fill(PLANKS_DARK_OAK, world(x, z-1, y), world(x+b, z+4, y+l), FillOperation.HOLLOW) blocks.fill(HAY_BLOCK, world(x, z-1, y), world(x+b, z-1, y+l), FillOperation.REPLACE) blocks.fill(AIR, world(x+b,z,y+l+1), world(x+b,z+3,y-1),FillOperation.REPLACE) blocks.fill(AIR, world(x,z,y-1), world(x,z+1,y-1),FillOperation.REPLACE) blocks.fill(PLANKS_DARK_OAK, world(x+b-1, z+4, y+l), world(x+b-1, z+4, y), FillOperation.REPLACE) blocks.place(DARK_OAK_DOOR, world(x, z, y-1))
Definition für unsere Mauer, welche den Zoo umschliesst
def mauer(x,z,y,l,b):
blocks.fill(PLANKS_DARK_OAK, world(x, z, y), world(x+b, z+4, y+l), FillOperation.REPLACE)
Definition für unsere Gehege (Gitter)
def gehege(x,z,y,l,b):
blocks.fill(IRON_BARS, world(x, z, y), world(x+b,z+4, y), FillOperation.REPLACE) blocks.fill(IRON_BARS, world(x, z, y), world(x,z+4, y+l), FillOperation.REPLACE)
Definition für unsere Gehege (Holzbereich)
def zaun(x,z,y,l,b):
blocks.fill(JUNGLE_FENCE, world(x,z,y), world(x, z,y+l), FillOperation.REPLACE) blocks.fill(JUNGLE_FENCE, world(x,z,y), world(x+b,z,y), FillOperation.REPLACE)
Definition für unsere Voliere
def voliere(x,z,y,l,b):
blocks.fill(GLASS_PANE, world(x, z-1, y), world(x+b,z+11,y+l), FillOperation.HOLLOW) blocks.fill(GRASS, world(x, z-1, y), world(x+b,z-1,y+l), FillOperation.HOLLOW) blocks.fill(GLASS, world(x, z+11, y), world(x+b,z+11,y+l), FillOperation.HOLLOW)
Definition für den Picknickbereich (Tische)
def tisch(x,z,y):
a=0
while(a<4):
blocks.place(blocks.block_with_data(ANVIL, 3), world(x, z, y))
blocks.place(blocks.block_with_data(QUARTZ_STAIRS, 3), world(x, z, y-1))
blocks.place(blocks.block_with_data(QUARTZ_STAIRS, 2), world(x, z, y+1))
a=a+1
x=x+1
blocks.place(JUNGLE_SAPLING, world(x+3, z, y))
**Definition für das Setzen der Tiere durch den Agenten **
def spawn(tier,anzahl,x,z,y):
agent.teleport(world(x,z, y),WEST)
agent.set_item(tier, 1, 1)
agent.set_slot(1)
a=0
while(a<anzahl):
agent.place(FORWARD)
a=a+1
EIngangsbereich
haus() spawn(SPAWN_VILLAGER, 1, 18, -60, 34) spawn(SPAWN_VILLAGER,1,10,-60,34) eingang() blocks.print(„DER“, RED_CONCRETE, world(-15, -60, 38), EAST) blocks.print(„ZOO“, RED_CONCRETE, world(27, -60, 38), EAST)
gittergehege gehege(36,-60,15,14, 10) gehege(26,-60,29,7,20) gehege(36,-60,0,15,10) gehege(47, -60, -10, -50, 31)
Ställe hütte(53,-60,29,-14,-6) hütte(53,-60,15,-15,-6) hütte(53,-60,36,-7,-6) hütte(85,-60,-10,-50,-6)
Holzzäune zaun(0,-60,28,8, -13) zaun(-14,-60,17,19,-14) zaun(-14,-60,4,12,-14) zaun(-14,-60,4,-17,-14) zaun(0,-60,-5,-8,-14)
Umrandung mauer(2,-60,37,0,-30) mauer(-29,-60,37,-50,0) mauer(26,-60,37,0,31) mauer(58,-60,37,-37,0) mauer(58,-60,0,0,31) mauer(89,-60,-1,-59,0) mauer(53,-60,-1,-3,0) mauer(54,-60,-4,0,30) mauer(89, -60, -61, 0, -42) mauer(46,-60,-61,0,-31) mauer(15,-60,-60,1,0) mauer(85,-60,-4,-4,0)
Mitarbeitertür blocks.fill(AIR, world(85, -60, -7), world(85, -59, -7), FillOperation.REPLACE) blocks.place(OAK_DOOR, world(85, -60, -7))
Papageienhaus voliere(-2,-60,0,20,30)
Aquarium
blocks.fill(BLACKSTONE, world(-40, -61, -14), world(15, -50, -58), FillOperation.Hollow) blocks.fill(SAND, world(-40, -61, -14),world(15, -61, -58)) blocks.fill(AIR, world(6, -60, -14), world(8, -58, -14), FillOperation.REPLACE)
blocks.fill(GLASS_PANE, world(9, -60, -15), world(9, -57, -52), FillOperation.REPLACE) blocks.fill(GLASS_PANE, world(8, -60, -52), world(-34, -57, -52), FillOperation.REPLACE) blocks.fill(GLASS_PANE, world(-34, -60, -52), world(-34, -57, -20), FillOperation.REPLACE) blocks.fill(GLASS_PANE, world(-33, -60, -20), world(4, -57, -20), FillOperation.REPLACE)
blocks.fill(GLASS_PANE, world(5, -60, -15), world(5, -57, -48), FillOperation.REPLACE) blocks.fill(GLASS_PANE, world(5, -60, -48), world(-30, -57, -48), FillOperation.REPLACE) blocks.fill(GLASS_PANE, world(-30, -60, -47), world(-30, -57, -24), FillOperation.REPLACE) blocks.fill(GLASS_PANE, world(-29, -60, -24), world(4, -57, -24), FillOperation.REPLACE)
Dach des weges blocks.fill(GLASS, world(9, -57, -15), world(5, -57, -52), FillOperation.REPLACE) blocks.fill(GLASS, world(4, -57, -52), world(-34, -57, -48), FillOperation.REPLACE) blocks.fill(GLASS, world(-34, -57, -47), world(-30, -57, -20), FillOperation.REPLACE) blocks.fill(GLASS, world(-29, -57, -20), world(4, -57, -24), FillOperation.REPLACE)
Boden des Weges blocks.fill(PRISMARINE, world(9, -61, -15), world(5, -61, -52), FillOperation.REPLACE) blocks.fill(PRISMARINE, world(4, -61, -52), world(-34, -61, -48), FillOperation.REPLACE) blocks.fill(PRISMARINE, world(-34, -61, -47), world(-30, -61, -20), FillOperation.REPLACE) blocks.fill(PRISMARINE, world(-29, -61, -20), world(4, -61, -24), FillOperation.REPLACE)
blocks.fill(AIR, world(5, -60, -23), world(5, -58, -21), FillOperation.REPLACE)
blocks.fill(WATER, world(-39, -52, -15), world(14, -52, -57), FillOperation.REPLACE)
blocks.print(„AQUARIUM“, PRISMARINE, world(-33, -55, -13), EAST)
tisch(20,-60,-57) tisch(20,-60,-52) tisch(20,-60,-47) tisch(20,-60,-42) tisch(20,-60,-37) tisch(20,-60,-32) tisch(20,-60,-27) tisch(20,-60,-22) tisch(20,-60,-17)
tisch(30,-60,-57) tisch(30,-60,-52) tisch(30,-60,-47) tisch(30,-60,-42) tisch(30,-60,-37) tisch(30,-60,-32) tisch(30,-60,-27) tisch(30,-60,-22) tisch(30,-60,-17)
Tiere
spawn(SPAWN_PARROT,80,8,-60,10) spawn(SPAWN_PANDA, 15, 65, -60, -42) spawn(SPAWN_FOX , 15, 46, -60 ,1) spawn(SPAWN_CAMEL, 15, 40, -60, 20) spawn(SPAWN_RABBIT, 20, 37, -60, 33) spawn(SPAWN_CHICKEN, 20, -10, -60, 30 ) spawn(SPAWN_HORSE, 5, -20, -60, 28) spawn(SPAWN_LLAMA, 5, -22, -60, 13) spawn(SPAWN_COW, 5, -23, -60, -1) spawn(SPAWN_PIG, 10, -11, -60, -8) spawn(SPAWN_TROPICAL_FISH, 30, -5, -52, -28) spawn(SPAWN_PUFFERFISH, 80, -5, -52, -28) spawn(SPAWN_SALMON, 80, -5, -50, -28) spawn(SPAWN_DOLPHIN, 80, -5, -52, -28) spawn(SPAWN_SEA_TURTLE, 80, -5, -52, -28) spawn(SPAWN_SQUID, 80, -5, -52, -28) spawn(SPAWN_GLOW_SQUID, 80, -5, -52, -28) spawn(SPAWN_AXOLOTL, 80, -5, -52, -28) Die folgende Funktion testet, ob ein Gold Klumpen in der Truhe ist.
Sie gibt true oder false als Rückgabewert, sodass man sie weiterverwenden kann.
def isGoldinChest(x, y, z, a, b, c):
blocks.fill(CHEST, world(x, y, z),world(x, y, z),FillOperation.REPLACE)
goldFound = False
**Agent weit weg teleportieren und alles wegschmeissen**
agent.teleport(world(110,-60,110),NORTH)
agent.drop_all(FORWARD)
- *Kiste kopieren (sie steht bei (x,y,z))**
blocks.clone(world(x, y, z), world(x,y,z), world(a,b,c), CloneMask.REPLACE, CloneMode.NORMAL)
- *Agenten zur Kiste teleportieren**
agent.teleport(world(a, b, c+1), NORTH)
- *Kiste zerstören und Objekte aufsammeln**
agent.destroy(FORWARD)
agent.collect_all()
for slotNumber in range(1,10):
itemID = agent.get_item_detail(slotNumber)
if (itemID == 371):
goldFound = True
return goldFound ** Die folgende Funktion testet, ob ein Gold Klumpen in der zweiten Truhe ist.** cSie gibt true oder false als Rückgabewert, sodass man sie weiterverwenden kann. def isGoldinChest2(x, y, z, a, b, c):
blocks.place(CHEST, world(x, y, z))
goldFound = False
- *Agent weit weg teleportieren und alles wegschmeissen**
agent.teleport(world(110,-60,110),NORTH)
agent.drop_all(FORWARD)
- *Kiste kopieren (sie steht bei (x,y,z))**
blocks.clone(world(x, y, z), world(x,y,z), world(a,b,c), CloneMask.REPLACE, CloneMode.NORMAL)
- *Agenten zur Kiste teleportieren**
agent.teleport(world(a, b, c+1), NORTH)
- *Kiste zerstören und Objekte aufsammeln**
agent.destroy(FORWARD)
agent.collect_all()
for slotNumber in range(1,10):
itemID = agent.get_item_detail(slotNumber)
if (itemID == 371):
goldFound = True
return goldFound
Es wird geschaut ob ein Goldklumpen in der kiste ist das ergibt dann ein true oder false Rückgabewert und das kann weiter gebraucht werden. def Payforpotion(x, y, z, a, b, c):
blocks.place(CHEST, world(x, y, z))
goldFound = False
- *Agent weit weg teleportieren und alles wegschmeissen**
agent.teleport(world(110,-60,110),NORTH)
agent.drop_all(FORWARD)
- *Kiste kopieren (sie steht bei (x,y,z))**
blocks.clone(world(x, y, z), world(x,y,z), world(a,b,c), CloneMask.REPLACE, CloneMode.NORMAL)
- *Agenten zur Kiste teleportieren**
agent.teleport(world(a, b, c+1), NORTH)
- *Kiste zerstören und Objekte aufsammeln**
agent.destroy(FORWARD)
agent.collect_all()
for slotNumber in range(1,10):
itemID = agent.get_item_detail(slotNumber)
if (itemID == 371):
goldFound = True
return goldFound
Definition dafür das alle slots in einer Kiste mit luft ersetzt werden können. def replaceSlotsinChestAir(x, y, z):
for k in range(27):
player.execute("/replaceitem block " + x + " " + y + " " + z + " slot.container " + k + " air 1")
Definition dafür das alle slots in der Kiste mit einer Nachtsicht Trank ersetzt werden def giveNightVisionPotion(x, y, z):
for k in range(27):
player.execute("/replaceitem block " + x + " " + y + " " + z + " slot.container " + k + " potion 1 5")
Nun können wir ein Mal pro Sekunde testen, ob ein Goldklumpen in der Truhe ist
def on_forever():
if (isGoldinChest(8, -60, 38, 30, -60, 30)==True):
player.say(„Danke für die Bezahlung du kannst rein“)
replaceSlotsinChestAir(8, -60, 38)
for i in range(4):
for j in range(3):
blocks.fill(AIR, world(4+i, -60+j,37), world(4+i, -60+j,37), FillOperation.REPLACE)
else:
for i in range(4):
for j in range(3):
blocks.fill(BLOCK_OF_STRIPPED_BAMBOO, world(4+i, -60+j,37), world(4+i, -60+j,37), FillOperation.REPLACE)
loops.pause(2000)
def on_forever2():
if (isGoldinChest2(18, -60, 38, 35, -60, 30)==True):
player.say(„Danke für die Bezahlung du kannst rein“)
replaceSlotsinChestAir(18, -60, 35)
for i in range(6):
for j in range(3):
blocks.fill(AIR, world(19+i, -60+j,37), world(19+i, -60+j,37), FillOperation.REPLACE)
else:
for i in range(6):
for j in range(3):
blocks.fill(BLOCK_OF_STRIPPED_BAMBOO, world(19+i, -60+j,37), world(19+i, -60+j,37), FillOperation.REPLACE)
loops.pause(2000)
def on_forever3():
if (Payforpotion(9, -60, -13, 40, -60, 30)==True):
player.say(„Danke für die Bezahlung der Nachtsichttrank ist in der Kiste“)
giveNightVisionPotion(9, -60, -13)
else:
replaceSlotsinChestAir(9, -60, -13)
loops.pause(1000)
loops.forever(on_forever) loops.forever(on_forever2) loops.forever(on_forever3)