function p.get_is_solid() return false end
function p.get_tex() return "" end

function p.main()
    set_default_block("e")

    local msg_str = "By pressing 1 (or using your mouse wheel) "
        .. "you can select your ^x00ff00block gun^!.\n\n"
        .. "With your block gun selected, when you left click that "
        .. "should cause the function top.game_input to be passed the "
        .. "string \"use_equipped primary start\", "
        .. "which then causes the function game_inv_exec.start_use "
        .. "to be called.\n\n"
        .. "Then the next time game_inv_exec.update is called, "
        .. "the function game_inv_exec.try_shoot is called. "
        .. "Read that try_shoot function now. "
        .. "That function will create the moving entity "
        .. "of type ment_block_gun_add, which is a projectile. "
    h.txt(7,7,5, msg_str)

    msg_str = "The projectile, when it hits a block, "
        .. "will cause another block to be created.\n\n"
        .. "See ment_block_gun_add.on_block_hit for the code.\n\n"
        .. "The code calls std.get_adj_bp to get the position of the "
        .. "block adjacent to the one being hit, and then "
        .. "it calls ga_block_change_perm to change "
        .. "the type of a block.\n\n"
        .. "We could instead call ga_block_change_rl if we only "
        .. "want the new block to exist for a certain amount of time. "
    h.txt(7,7,3, msg_str)

    msg_str = "When you right click and your block gun is selected, "
        .. "this will create a different projectile which will remove "
        .. "the block that it hits. "
    h.txt(7,7,1, msg_str)

    create_rect("s", 5,5,0, 5,5,8)
    create_rect("s", 5,9,0, 5,9,8)
    create_rect("s", 9,5,0, 9,5,8)
    create_rect("s", 9,9,0, 9,9,8)
end
