Aquarium

Introduction

Let’s build a nice, cozy aquarium for our marine friends!

Swing the ‘trident’

We’ll make it so our aquarium is built when we swing a Trident! Add ||player:on item used|| to your code and set the item type to Trident.

player.onItemInteracted(TRIDENT, function () {

})

Build a ‘glass’ structure

Add a ||blocks:fill|| to your code to build the glass structure.

player.onItemInteracted(TRIDENT, function () {
    blocks.fill(
        GLASS,
        pos(0, 0, 0),
        pos(0, 0, 0),
        FillOperation.Replace
    )
})

Set the dimensions

A size of 8 x 8 x 20 should hold enough specimens. Change the from position to ~5 ~0 ~-10 and the to position to ~12 ~7 ~10 in your ||blocks:fill||. We use 5 and 12 as the first coordinates, otherwise we’ll end up swimming with the fish!

player.onItemInteracted(TRIDENT, function () {
    blocks.fill(
        GLASS,
        pos(5, 0, -10),
        pos(12, 7, 10),
        FillOperation.Replace
    )
})

Add some water

Next, we’ll use a ||blocks:fill|| for the water. Add one to your code and set the block type to Water. We only want to fill the inside of the aquarium, so set the from position to ~6 ~1 ~-9 and the to position to ~11 ~6 ~9.

player.onItemInteracted(TRIDENT, function () {
    blocks.fill(
        GLASS,
        pos(5, 0, -10),
        pos(12, 7, 10),
        FillOperation.Replace
    )
    blocks.fill(
        WATER,
        pos(6, 1, -9),
        pos(11, 6, 9),
        FillOperation.Replace
    )
})

Insert a ‘repeat’ loop

The aquarium is ready to be populated! We’ll want multiple fish and coral living inside it, so we’ll need a ||loops:repeat|| loop to create them all. Add one to your code.

player.onItemInteracted(TRIDENT, function () {
    blocks.fill(
        GLASS,
        pos(5, 0, -10),
        pos(12, 7, 10),
        FillOperation.Replace
    )
    blocks.fill(
        WATER,
        pos(6, 1, -9),
        pos(11, 6, 9),
        FillOperation.Replace
    )
    for (let i = 0; i < 4; i++) {
    }
})

Add some fish

Let’s start with the fish. Put in a ||mobs:spawn|| inside the ||loops:repeat|| loop, and change the animal type to your favorite fish.

player.onItemInteracted(TRIDENT, function () {
    blocks.fill(
        GLASS,
        pos(5, 0, -10),
        pos(12, 7, 10),
        FillOperation.Replace
    )
    blocks.fill(
        WATER,
        pos(6, 1, -9),
        pos(11, 6, 9),
        FillOperation.Replace
    )
    for (let i = 0; i < 4; i++) {
        mobs.spawn(DOLPHIN, pos(0, 0, 0))
    }
})

Random fish

We’ll now make the fish spawn randomly inside the aquarium. Set a ||positions:pick random position|| inside the ||mobs:spawn||, and change the from and to positions to the same area as the water: ~6 ~1 ~-9 and ~11 ~6 ~9.

player.onItemInteracted(TRIDENT, function () {
    blocks.fill(
        GLASS,
        pos(5, 0, -10),
        pos(12, 7, 10),
        FillOperation.Replace
    )
    blocks.fill(
        WATER,
        pos(6, 1, -9),
        pos(11, 6, 9),
        FillOperation.Replace
    )
    for (let i = 0; i < 4; i++) {
        mobs.spawn(DOLPHIN, randpos(
            pos(6, 1, -9),
            pos(11, 6, 9)
        ))
    }
})

Make an aquatic setting

Time to decorate! Drag a ||blocks:place|| inside the ||loops:repeat|| loop and set the block type to your favorite coral. Drag a ||positions:pick random position|| inside it, and change the positions to ~6 ~1 ~-9 and ~11 ~0 ~9 so the coral spawns on the floor.

player.onItemInteracted(TRIDENT, function () {
    blocks.fill(
        GLASS,
        pos(5, 0, -10),
        pos(12, 7, 10),
        FillOperation.Replace
    )
    blocks.fill(
        WATER,
        pos(6, 1, -9),
        pos(11, 6, 9),
        FillOperation.Replace
    )
    for (let i = 0; i < 4; i++) {
        mobs.spawn(DOLPHIN, randpos(
            pos(6, 1, -9),
            pos(11, 6, 9)
        ))
        blocks.place(BUBBLE_CORAL_FAN, randpos(
            pos(6, 1, -9),
            pos(11, 0, 9)
        ))
    }
})

Spawn more sea life!

Bring your aquarium to life by adding more fish and coral in the ||loops:repeat|| block! To speed up the process, copy ||blocks:place|| or ||mobs:spawn|| and insert. When you’re done, go in-game and use a trident to see your aquarium take shape!

player.onItemInteracted(TRIDENT, function () {
    blocks.fill(
        GLASS,
        pos(5, 0, -10),
        pos(12, 7, 10),
        FillOperation.Replace
    )
    blocks.fill(
        WATER,
        pos(6, 1, -9),
        pos(11, 6, 9),
        FillOperation.Replace
    )
    for (let i = 0; i < 4; i++) {
        mobs.spawn(DOLPHIN, randpos(
            pos(6, 1, -9),
            pos(11, 6, 9)
        ))
        mobs.spawn(PUFFERFISH, randpos(
            pos(6, 1, -9),
            pos(11, 6, 9)
        ))
        blocks.place(BUBBLE_CORAL_FAN, randpos(
            pos(6, 1, -9),
            pos(11, 0, 9)
        ))
        blocks.place(SEAGRASS, randpos(
            pos(6, 1, -9),
            pos(11, 0, 9)
        ))
    }
})