Inhaltsverzeichnis

Minecraft Projekt: Ferienort - "Lamsel"

Gruppenmitglieder: Selma Karakus & Vanessa Lam

Unser Plan

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.

Vorgehen

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

Probleme

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.

Ausführung des Codes

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.

Unsere Codes

Selma
Vanessa

Endprodukt


#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)