In unserem Projekt ermöglichen wir dem Spieler den Ferienort „Lamsel“ zu besuchen. Hier befinden sich drei identische Ferienhäuser, welche mit unterschiedlichen Einrichtungen ausgestattet sind. Jedes Haus verfügt über zwei kleine Pools, sowie einen kleinen Garten auf dem Vorplatz. Auf dem ersten Stock befindet sich das Wohnzimmer und der Eingang. Verschiedene Möbel sind hier aufgestellt, wie einem Teppich, einem Tisch mit Stühlen, einer Truhe für das Lagern der Discs der Jukebox. Dazu sind ebenfalls Lampen aufgestellt, welche mithilfe einer Seelaterne leuchten. Eine schmale Quartztreppe führt den Spieler vom ersten zum zweiten Stockwerk. Dieser stellt das Schlafzimmer dar, welches mit einem grossen Bett, einem kleinen Tisch und einem Bücherregal ausgestattet ist. Hinter der Treppe ist der Balkon, welche mit einer Treppe wieder zum ersten Stock hinunter führt. Direkt darunter befindet sich die Terrasse, wo nur eine kleine Bank erbaut und ein Teppich hingelegt wurde.
Zu Beginn war der Plan ein Ferienresort zu erbauen, welches dem Spieler verschiedene Aktivitäten ermöglicht. Obwohl wir viele Ideen dazu fanden, wurde die Ausführung ein wenig problematisch. Deshalb versuchten wir unseren Ferienort möglichst simpel, aber trotzdem unterhaltsam zu designen. Schlussendlich entschieden wir uns dazu, ein Haus zu errichten, welches wie ein Ferienhaus wirkt, und dieses drei bis fünf Mal zu kopieren. Aus dem Internet wurde Inspiration für das Design des Hauses, sowie der Einrichtungen gesucht. Danach erbauten wir das Haus von Hand, ohne den Code Builder zu verwenden. Sobald das Haus fertig war, kam es zum codieren. Hier richteten wir uns nicht um die Position des Spielers, sondern der Koordinaten der Welt. So wurde das Haus beinahe eins zu eins kopiert und mithilfe eines anderen Codes wird es am Ende zwei weitere Male kopiert.
Hier findest du die Welt vom originalen Haus
Hier findest du die Welt vom ausgeführten Code
Während dem Projekt trafen wir mehrere Male auf Probleme, welche den Code komplizierten oder einige Dinge nicht ermöglichten. Beispielsweise wurde der Grundriss des Hauses nicht genau kopiert, weshalb sich das Haus, welches mit dem Code erbaut wurde, sich mit dem originalen Haus von der Grösse her ein wenig unterscheidet. Der Code wurde so komplizierter als nötig, jedoch bemerkten wir es zu spät und das Ändern der Koordinaten wäre zu umständlich gewesen. Ein weiteres Problem waren Items, welche mit einem Code nicht aufzurufen sind. In den Ferienhäuser konnten somit leider keine richtigen Dekorationen aufgestellt werden, aber im originalen Haus sind die eigentlich geplanten Items zu finden.
Der Spieler muss für die Ausführung des Codes „lamsel“ in den Chat eingeben, indem er „T“ drückt und den Namen eingibt. Daraufhin passiert alles von selber: Er wird zu einem Ort telepotiert, wo er den Aufbau verfolgen kann und die Zeit wie auch der WEtterzyklus verändern sich. Falls der Spieler jedoch eine andere Zeit wünscht, kann er beispielsweise mit dem Befehl /time set 10000 oder /time set day die Zeit zu Tag ändern. Am Ende wird ihm zugeflüstert eine Disc in die Jukebox zu werfen und den Resort mit ein wenig Musik zu erkunden. Dafür muss er die Discs im Inventar suchen, da diese leider nicht mit einem Code gegeben werden können.
#Standort des Hauses festlegen
location1 = world(0, 4, 0)
location2 = world(17, 0, 15)
location3 = world(1, 5, 12)
location4 = world(1, 7, 2)
location5 = world(2, 5, 12)
location6 = world(6, 7, 12)
location7 = world(7, 5, 12)
location8 = world(7, 7, 12)
location9 = world(8, 5, 13)
location10 = world(8, 8, 8)
location11 = world(9, 5, 7)
location12 = world(9, 7, 7)
location13 = world(14, 5, 7)
location14 = world(14, 7, 1)
location15 = world(10, 5, 7)
location16 = world(13, 7, 7)
location17 = world(13, 5, 1)
location18 = world(9, 7, 1)
location19 = world(8, 5, 1)
location20 = world(1, 7, 1)
location21 = world(17, 8, 0)
location22 = world(0, 8, 8)
location23 = world(0, 8, -3)
location24 = world(8, 8, -1)
location25 = world(0, 8, 9)
location26 = world(8, 8, 13)
location27 = world(17, 5, 7)
location28 = world(17, 7, 1)
location29 = world(16, 9, 1)
location30 = world(16, 11, 7)
location31 = world(14, 11, 1)
location32 = world(15, 9, 7)
location33 = world(0, 9, 0)
location34 = world(0, 12, 13)
location35 = world(1, 9, 12)
location36 = world(7, 11, 12)
location37 = world(7, 9, 11)
location38 = world(7, 11, 7)
location39 = world(14, 9, 7)
location40 = world(14, 5, 4)
location41 = world(14, 5, 3)
location42 = world(4, 5, 1)
location43 = world(3, 5, 1)
location44 = world(4, 9, 1)
location45 = world(3, 9, 1)
location46 = world(0, 9, -3)
location47 = world(1, 11, -3)
location48 = world(2, 9, -3)
location49 = world(8, 9, -3)
location50 = world(8, 9, 0)
location51 = world(0, 4, -1)
location52 = world(8, 4, -5)
location53 = world(0, 5, -3)
location54 = world(0, 8, 0)
location55 = world(0, 5, -5)
location56 = world(0, 5, -4)
location57 = world(8, 5, -5)
location58 = world(8, 4, -1)
location59 = world(8, 4, -4)
location60 = world(17, 3, -5)
location61 = world(9, 3, -1)
location62 = world(9, 4, -5)
location63 = world(17, 4,-5)
location64 = world(15, 4, 14)
location65 = world(16, 4, 1)
location66 = world(15, 4, 15)
location67 = world(15, 4, 0)
location68 = world(0, 3, 21)
location69 = world(17, 3, 16)
location70 = world(16, 3, 16)
location71 = world(15, 3, 21)
location72 = world(10, 4, 8)
location73 = world(13, 4, 14)
location74 = world(10, 3, 17)
location75 = world(13, 3, 20)
location76 = world(1, 3, 17)
location77 = world(8, 3, 20)
location78 = world(17, 5, 8)
location79 = world(17, 5, 15)
location80 = world(17, 4, 16)
location81 = world(17, 4, 21)
location82 = world(-1, 4, -2)
location83 = world(2, 8, 3)
location84 = world(2, 4, 19)
location85 = world(4, 4, 18)
location86 = world(7, 4, 19)
location87 = world(1, 11, 13)
location88 = world(1, 10, 13)
location89 = world(5, 5, 10)
location90 = world(5, 5, 8)
location91 = world(5, 5, 7)
location92 = world(15, 5, 4)
location93 = world(13, 5, 4)
location94 = world(3, 5, 2)
location95 = world(3, 5, 0)
location96 = world(1, 9, 11)
location97 = world(1, 9, 0)
location98 = world(15, 11, 2)
location99 = world(7, 5, 11)
location100 = world(1, 5, 0)
location101 = world(9, 4, 4)
location102 = world(6, 4, 5)
location103 = world(4, 9, 11)
location104 = world(3, 9, 11)
location105 = world(5, 9, 11)
location106 = world(15, 9, 3)
location107 = world(13, 9, 5)
location108 = world(15, 9, 2)
location109 = world(12, 9, 6)
location110 = world(1, 9, 2)
location111 = world(10, 9, 3)
location112 = world(8, 9, 5)
location113 = world(5, 9, 9)
location114 = world(3, 9, 8)
location115 = world(6, 5, 2)
location116 = world(7, 5, 2)
location117 = world(6, 9, 2)
location118 = world(7, 9, 2)
location119 = world(12, 4, 0)
location120 = world(11, 4, 0)
location121 = world(10, 4, 0)
location122 = world(5, 5, -2)
location123 = world(2, 5, -3)
location124 = world(13, 5, 6)
#Einzelteile des Hauses definieren
def boden():
blocks.fill(BLOCK_OF_QUARTZ, location1, location2)
def wand():
blocks.fill(PLANKS_BIRCH, location3, location4)
blocks.fill(BLACK_STAINED_GLASS_PANE, location5, location6)
blocks.fill(PLANKS_BIRCH, location7, location8)
blocks.fill(BLOCK_OF_QUARTZ, location9, location10)
blocks.fill(PLANKS_BIRCH, location11, location12)
blocks.fill(PLANKS_BIRCH, location13, location14)
blocks.fill(BLACK_STAINED_GLASS_PANE, location15, location16)
blocks.fill(BLACK_STAINED_GLASS_PANE, location17, location18)
blocks.fill(PLANKS_BIRCH, location19, location20)
blocks.fill(BLOCK_OF_QUARTZ, location21, location22)
blocks.fill(BLOCK_OF_QUARTZ, location23, location24)
blocks.fill(BLOCK_OF_QUARTZ, location25, location26)
blocks.fill(BLOCK_OF_QUARTZ, location27, location28)
blocks.fill(PLANKS_BIRCH, location29, location30)
blocks.fill(PLANKS_BIRCH, location29, location31)
blocks.fill(PLANKS_BIRCH, location30, location32)
blocks.fill(BLACK_STAINED_GLASS_PANE, positions.add(location17, world(0, 4, 0)), positions.add(location18, world(0, 4, 0)))
blocks.fill(PLANKS_BIRCH, positions.add(location19, world(0, 4, 0)), positions.add(location20, world(0, 4, 0)))
blocks.fill(BLOCK_OF_QUARTZ, location33, location34)
blocks.fill(PLANKS_BIRCH, location35, location36)
blocks.fill(BLACK_STAINED_GLASS_PANE, location37, location38)
blocks.fill(BLACK_STAINED_GLASS_PANE, location38, location39)
blocks.fill(BLOCK_OF_QUARTZ, positions.add(location21, pos(0, 4, 0)), positions.add(location22, world(0, 4, 0)))
blocks.fill(BLOCK_OF_QUARTZ, positions.add(location23, pos(0, 4, 0)), positions.add(location24, world(0, 4, 0)))
blocks.fill(BLOCK_OF_QUARTZ, positions.add(location25, pos(0, 4, 0)), positions.add(location26, world(0, 4, 0)))
#Törchen
blocks.place(blocks.block_with_data(BIRCH_FENCE_GATE, 1),location40)
blocks.place(blocks.block_with_data(BIRCH_FENCE_GATE, 1),location41)
blocks.fill(AIR, positions.add(location40, world(0, 1, 0)), positions.add(location41, world(0, 1, 0)))
blocks.place(BIRCH_FENCE_GATE, location42)
blocks.place(BIRCH_FENCE_GATE, location43)
blocks.fill(AIR, positions.add(location42, world(0, 1, 0)), positions.add(location43, world(0, 1, 0)))
blocks.place(BIRCH_FENCE_GATE, location44)
blocks.place(BIRCH_FENCE_GATE, location45)
blocks.fill(AIR, positions.add(location44, world(0, 1, 0)), positions.add(location45, world(0, 1, 0)))
def balkon():
blocks.fill(BLOCK_OF_QUARTZ, location46, location47)
blocks.fill(BLACK_STAINED_GLASS_PANE, location48, location49)
blocks.fill(BLACK_STAINED_GLASS_PANE, location49, location50)
def terrasse():
blocks.fill(BLOCK_OF_QUARTZ, location51, location52)
blocks.fill(BLOCK_OF_QUARTZ, location53, location54)
blocks.fill(BLACK_STAINED_GLASS_PANE, location55, location56)
blocks.fill(BLACK_STAINED_GLASS_PANE, location55, location57)
blocks.fill(blocks.block_with_data(QUARTZ_STAIRS, 1), location58, location59)
blocks.fill(PLANKS_BIRCH, location60, location61)
blocks.fill(BLACK_STAINED_GLASS_PANE, location62, location63)
def vorplatz():
blocks.fill(PLANKS_BIRCH, location64, location65)
blocks.fill(BIRCH_WOOD_SLAB, location66, positions.add(location66, world(1, 0, 0)))
blocks.fill(BIRCH_WOOD_SLAB, location67, positions.add(location67, world(1, 0, 0)))
blocks.fill(BLOCK_OF_QUARTZ, location68, location69)
blocks.fill(PLANKS_BIRCH, location70, location71)
blocks.fill(WATER, location72, location73)
blocks.fill(WATER, location74, location75)
blocks.fill(GRASS, location76, location77)
blocks.fill(BLACK_STAINED_GLASS_PANE, location78, location79)
blocks.fill(BLACK_STAINED_GLASS_PANE, location80, location81)
def treppen_1(xpos,zpos,ypos,breite):
for i in range(5):
blocks.fill(blocks.block_with_data(QUARTZ_STAIRS,0), world(xpos+i,zpos+i,ypos), world(xpos+i,zpos+i,ypos+breite))
for j in range(3):
blocks.fill(BLOCK_OF_QUARTZ, world(xpos+1+j,zpos+j,ypos), world(xpos+1+j,zpos+j,ypos+breite))
for y in range(2):
blocks.fill(BLOCK_OF_QUARTZ, world(xpos+2+y,zpos+y,ypos), world(xpos+2+y,zpos+y,ypos+breite))
blocks.fill(BLOCK_OF_QUARTZ, location82, positions.add(location82, world(0, 0, 1)))
def treppen_2(xpos,zpos,ypos):
for i in range(4):
blocks.fill(blocks.block_with_data(QUARTZ_STAIRS,2), world(xpos,zpos+i,ypos+i), world(xpos,zpos+i,ypos+i))
blocks.fill(AIR, location83, positions.add(location83, pos(0, 0, 3)))
for j in range(3):
blocks.fill(blocks.block_with_data(QUARTZ_STAIRS,7), world(xpos,zpos+j,ypos+1+j), world(xpos,zpos+j,ypos+1+j))
def dekorationen():
#Bäumchen im Vorgarten
blocks.place(OAK_FENCE, location84)
blocks.place(OAK_FENCE, location85)
blocks.place(OAK_FENCE, location86)
blocks.fill(LEAVES_JUNGLE, positions.add(location84, pos(0, 1, 0)), positions.add(location84, world(0, 3, 0)))
blocks.fill(LEAVES_JUNGLE, positions.add(location85, pos(0, 1, 0)), positions.add(location85, world(0, 2, 0)))
blocks.fill(LEAVES_JUNGLE, positions.add(location86, pos(0, 1, 0)), positions.add(location86, world(0, 1, 0)))
#Hausdekorationen draussen
blocks.fill(QUARTZ_SLAB, location87, positions.add(location87, world(2, 0, 0)))
blocks.fill(QUARTZ_SLAB, location88, positions.add(location88, world(3, 0, 0)))
#Tisch
blocks.fill(blocks.block_with_data(SPRUCE_WOOD_STAIRS,2), location89, positions.add(location89, world(-2, 0, 0)))
blocks.fill(SPRUCE_FENCE, location90, positions.add(location90, world(-2, 0, 1)))
blocks.fill(WHITE_CARPET, positions.add(location90, world(0, 1, 0)), positions.add(location90, world(-2, 1, 1)))
blocks.fill(blocks.block_with_data(SPRUCE_WOOD_STAIRS,3), location91, positions.add(location91, world(-2, 0, 0)))
#Druckplatten
blocks.fill(SPRUCE_PRESSURE_PLATE, location92, positions.add(location92, world(0, 0, -1)))
blocks.fill(SPRUCE_PRESSURE_PLATE, location93, positions.add(location93, world(0, 0, -1)))
blocks.fill(SPRUCE_PRESSURE_PLATE, location94, positions.add(location94, world(1, 0, 0)))
blocks.fill(SPRUCE_PRESSURE_PLATE, location95, positions.add(location95, world(1, 0, 0)))
blocks.fill(SPRUCE_PRESSURE_PLATE, positions.add(location94, world(0, 4, 0)), positions.add(location94, world(1, 4, 0)))
blocks.fill(SPRUCE_PRESSURE_PLATE, positions.add(location95, world(0, 4, 0)), positions.add(location95, world(1, 4, 0)))
#Licht
blocks.fill(SPRUCE_FENCE, location96, positions.add(location96, world(0, 1, 0)))
blocks.place(SEA_LANTERN, positions.add(location96, world(0, 2, 0)))
blocks.fill(SPRUCE_FENCE, location97, positions.add(location97, world(0, 1, 0)))
blocks.place(SEA_LANTERN, positions.add(location97, world(0, 2, 0)))
blocks.place(SEA_LANTERN, location98)
blocks.fill(SPRUCE_FENCE, location99, positions.add(location99, world(0, 1, 0)))
blocks.place(SEA_LANTERN, positions.add(location99, world(0, 2, 0)))
blocks.fill(SPRUCE_FENCE, location100, positions.add(location100, world(0, 1, 0)))
blocks.place(SEA_LANTERN, positions.add(location100, world(0, 2, 0)))
blocks.fill(GLOWSTONE, location101, location102)
blocks.fill(LIGHT_GRAY_CARPET, positions.add(location101, world(0, 1, 0)), positions.add(location102, world(0, 1, 0)))
blocks.fill(SPRUCE_FENCE, location110, positions.add(location110, world(0, 1, 0)))
blocks.place(SEA_LANTERN, positions.add(location110, world(0, 2, 0)))
blocks.fill(SPRUCE_FENCE, location124, positions.add(location124, world(0, 1, 0)))
blocks.place(SEA_LANTERN, positions.add(location124, world(0, 2, 0)))
#Kleiner Arbeitstisch
blocks.place(blocks.block_with_data(SPRUCE_WOOD_STAIRS, 4), location103)
blocks.place(blocks.block_with_data(SPRUCE_WOOD_STAIRS, 5), location104)
blocks.fill(WHITE_CARPET, positions.add(location103, world(0, 1, 0)), positions.add(location104, world(0, 1, 0)))
blocks.fill(BOOKSHELF, location105, positions.add(location105, world(0, 1, 0)))
blocks.place(FLOWER_POT, positions.add(location105, world(0, 2, 0)))
#Bett
blocks.fill(LIGHT_GRAY_WOOL, location106, location107)
blocks.fill(WHITE_CARPET, positions.add(location106, world(0, 1, 0)), positions.add(location106, world(0, 1, 2)))
blocks.fill(QUARTZ_SLAB, location108, positions.add(location109, world(0, 0, -4)))
blocks.fill(QUARTZ_SLAB, location109, positions.add(location108, world(-3, 0, 0)))
blocks.fill(QUARTZ_SLAB, location109, positions.add(location108, world(0, 0, 4)))
blocks.place(blocks.block_with_data(QUARTZ_STAIRS, 4), positions.add(location108, world(0, 1, 0)))
blocks.place(blocks.block_with_data(QUARTZ_STAIRS, 4), positions.add(location108, world(0, 1, 4)))
blocks.place(FLOWER_POT, positions.add(location108, world(0, 2, 4)))
#Teppich
blocks.fill(LIGHT_GRAY_CARPET, location111, location112)
blocks.fill(LIGHT_GRAY_CARPET, location113, location114)
#Verschiedene Möbel
blocks.place(blocks.block_with_data(CHEST, 3), location115)
blocks.place(JUKEBOX, location116)
#Bücherregal
blocks.place(blocks.block_with_data(SPRUCE_WOOD_STAIRS, 5), location117)
blocks.place(blocks.block_with_data(SPRUCE_WOOD_STAIRS, 4), location118)
blocks.fill(BOOKSHELF, positions.add(location117, world(0, 1, 0)), positions.add(location118, world(0, 1, 0)))
blocks.fill(SPRUCE_WOOD_SLAB, positions.add(location117, world(0, 2, 0)), positions.add(location118, world(0, 2, 0)))
#Terrasse
blocks.place(blocks.block_with_data(SPRUCE_WOOD_STAIRS, 2), location119)
blocks.place(blocks.block_with_data(SPRUCE_WOOD_STAIRS, 2), location120)
blocks.place(blocks.block_with_data(SPRUCE_WOOD_STAIRS, 2), location121)
blocks.fill(LIGHT_GRAY_CARPET, location122, location123)
#Funktionen ausführen
def on_chat():
player.teleport(world(9, 4, 30))
#Wetter soll sonnig bleiben
gameplay.set_weather(CLEAR)
gameplay.set_game_rule(WEATHER_CYCLE, False)
#Zeit wird zu Sonnenaufgang/Sonnenuntergang geändert
gameplay.time_set(12750)
#Oben definierte Funktionen werden ausgeführt
boden()
wand()
balkon()
terrasse()
vorplatz()
treppen_1(-4, 4, -2, 1)
treppen_2(2, 5, 4)
dekorationen()
#Haus wird an zwei anderen Koordinaten kopiert
blocks.clone(world(-8, 2, 23), world(22, 12, -8), world(-68, 2, -8), CloneMask.REPLACE, CloneMode.NORMAL)
blocks.clone(world(-8, 2, 23), world(22, 12, -8), world(-38, 2, -8), CloneMask.REPLACE, CloneMode.NORMAL)
#Spieler wird vorgeschlagen, Musik ausfzulegen :)
player.tell(mobs.target(NEAREST_PLAYER), "Im Wohnzimmer befindet sich eine Jukebox. Leg eine Schallplatte hinein und erkunde das Haus mit ein wenig Musik! Persönliche Favoriten sind die Platten Far und Chirp :)")
player.on_chat("lamsel", on_chat)