fixed drinks and ostriches.
parent
ac7f8e8a24
commit
ec18b0dc0f
|
@ -10,13 +10,13 @@ mobs:register_mob("desert_life:ostrich", {
|
|||
hp_min = 5,
|
||||
hp_max = 10,
|
||||
armor = 200,
|
||||
collisionbox = {-0.4, -0.5, -0.4, 0.4, 0.75, 0.4},
|
||||
collisionbox = {-0.4, -0.575, -0.4, 0.4, 0.75, 0.4},
|
||||
visual = "mesh",
|
||||
mesh = "dl_ostrich.b3d",
|
||||
textures = {
|
||||
{'dl_ostrich.png'},
|
||||
},
|
||||
visual_size = {x=9, y=9},
|
||||
visual_size = {x=11, y=11},
|
||||
makes_footstep_sound = true,
|
||||
walk_velocity = 1,
|
||||
run_velocity = 3,
|
||||
|
@ -49,109 +49,84 @@ mobs:register_mob("desert_life:ostrich", {
|
|||
replace_what = {'group:flora', 'group:plant'},
|
||||
replace_with = 'air',
|
||||
replace_rate = 1,
|
||||
do_custom = function(self, dtime)
|
||||
do_custom = function(self, dtime)
|
||||
-- set needed values if not already present
|
||||
if not self.v2 then
|
||||
self.v2 = 0
|
||||
self.max_speed_forward = 6
|
||||
self.max_speed_reverse = 2
|
||||
self.accel = 6
|
||||
self.terrain_type = 3
|
||||
self.driver_attach_at = {x = 0, y = .5, z = -0.25}
|
||||
self.driver_eye_offset = {x = 0, y = 3, z = 0}
|
||||
self.driver_scale = {x = .09, y = .09}
|
||||
end
|
||||
-- if driver present allow control of ostrich
|
||||
if self.driver then
|
||||
mobs.drive(self, "walk", "stand", false, dtime)
|
||||
return false -- skip rest of mob functions
|
||||
end
|
||||
return true
|
||||
end,
|
||||
on_die = function(self, pos)
|
||||
-- drop saddle when ostrich is killed while riding
|
||||
-- also detach from ostrich properly
|
||||
if self.driver then
|
||||
minetest.add_item(pos, "mobs:saddle")
|
||||
mobs.detach(self.driver, {x = 1, y = 0, z = 1})
|
||||
self.saddle = nil
|
||||
end
|
||||
-- drop any ostrichshoes added
|
||||
if self.shoed then
|
||||
minetest.add_item(pos, self.shoed)
|
||||
end
|
||||
|
||||
-- set needed values if not already present
|
||||
if not self.v2 then
|
||||
self.v2 = 0
|
||||
self.max_speed_forward = 6
|
||||
self.max_speed_reverse = 2
|
||||
self.accel = 6
|
||||
self.terrain_type = 3
|
||||
self.driver_attach_at = {x = 0, y = y_off, z = -0.5}
|
||||
self.driver_eye_offset = {x = 0, y = 3, z = 0}
|
||||
self.driver_scale = {x = .125, y = .125}
|
||||
end
|
||||
|
||||
-- if driver present allow control of horse
|
||||
if self.driver then
|
||||
|
||||
mobs.drive(self, "walk", "stand", false, dtime)
|
||||
|
||||
return false -- skip rest of mob functions
|
||||
end
|
||||
|
||||
return true
|
||||
end,
|
||||
on_die = function(self, pos)
|
||||
|
||||
-- drop saddle when horse is killed while riding
|
||||
-- also detach from horse properly
|
||||
if self.driver then
|
||||
|
||||
minetest.add_item(pos, "mobs:saddle")
|
||||
|
||||
mobs.detach(self.driver, {x = 1, y = 0, z = 1})
|
||||
|
||||
self.saddle = nil
|
||||
end
|
||||
|
||||
-- drop any horseshoes added
|
||||
if self.shoed then
|
||||
minetest.add_item(pos, self.shoed)
|
||||
end
|
||||
|
||||
end,
|
||||
on_rightclick = function(self, clicker)
|
||||
|
||||
-- make sure player is clicking
|
||||
if not clicker or not clicker:is_player() then
|
||||
return
|
||||
end
|
||||
|
||||
-- feed, tame or heal horse
|
||||
if mobs:feed_tame(self, clicker, 10, true, true) then
|
||||
return
|
||||
end
|
||||
|
||||
-- applying protection rune
|
||||
if mobs:protect(self, clicker) then
|
||||
return
|
||||
end
|
||||
|
||||
-- make sure tamed horse is being clicked by owner only
|
||||
if self.tamed and self.owner == clicker:get_player_name() then
|
||||
|
||||
local inv = clicker:get_inventory()
|
||||
local tool = clicker:get_wielded_item()
|
||||
local item = tool:get_name()
|
||||
|
||||
-- detatch player already riding horse
|
||||
if self.driver and clicker == self.driver then
|
||||
|
||||
mobs.detach(clicker, {x = 1, y = 0, z = 1})
|
||||
|
||||
-- add saddle back to inventory
|
||||
if inv:room_for_item("main", "mobs:saddle") then
|
||||
inv:add_item("main", "mobs:saddle")
|
||||
else
|
||||
minetest.add_item(clicker:get_pos(), "mobs:saddle")
|
||||
end
|
||||
|
||||
self.saddle = nil
|
||||
|
||||
-- attach player to horse
|
||||
elseif (not self.driver and not self.child
|
||||
and clicker:get_wielded_item():get_name() == "mobs:saddle")
|
||||
or self.saddle then
|
||||
|
||||
self.object:set_properties()
|
||||
print(self.object)
|
||||
mobs.attach(self, clicker)
|
||||
|
||||
-- take saddle from inventory
|
||||
if not self.saddle then
|
||||
inv:remove_item("main", "mobs:saddle")
|
||||
end
|
||||
|
||||
self.saddle = true
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
-- used to capture horse with magic lasso
|
||||
mobs:capture_mob(self, clicker, 0, 0, 80, false, nil)
|
||||
end
|
||||
end,
|
||||
on_rightclick = function(self, clicker)
|
||||
-- make sure player is clicking
|
||||
if not clicker or not clicker:is_player() then
|
||||
return
|
||||
end
|
||||
-- feed, tame or heal ostrich
|
||||
if mobs:feed_tame(self, clicker, 10, true, true) then
|
||||
return
|
||||
end
|
||||
-- applying protection rune
|
||||
if mobs:protect(self, clicker) then
|
||||
return
|
||||
end
|
||||
-- make sure tamed ostrich is being clicked by owner only
|
||||
if self.tamed and self.owner == clicker:get_player_name() then
|
||||
local inv = clicker:get_inventory()
|
||||
local tool = clicker:get_wielded_item()
|
||||
local item = tool:get_name()
|
||||
-- detatch player already riding ostrich
|
||||
if self.driver and clicker == self.driver then
|
||||
mobs.detach(clicker, {x = 1, y = 0, z = 1})
|
||||
-- add saddle back to inventory
|
||||
if inv:room_for_item("main", "mobs:saddle") then
|
||||
inv:add_item("main", "mobs:saddle")
|
||||
else
|
||||
minetest.add_item(clicker:get_pos(), "mobs:saddle")
|
||||
end
|
||||
self.saddle = nil
|
||||
-- attach player to ostrich
|
||||
elseif (not self.driver and not self.child
|
||||
and clicker:get_wielded_item():get_name() == "mobs:saddle")
|
||||
or self.saddle then
|
||||
--self.object:set_properties()
|
||||
--print(self.object)
|
||||
mobs.attach(self, clicker)
|
||||
-- take saddle from inventory
|
||||
if not self.saddle then
|
||||
inv:remove_item("main", "mobs:saddle")
|
||||
end
|
||||
self.saddle = true
|
||||
end
|
||||
end
|
||||
-- used to capture ostrich with magic lasso
|
||||
mobs:capture_mob(self, clicker, 0, 0, 80, false, nil)
|
||||
end
|
||||
})
|
||||
|
||||
mobs:spawn({
|
||||
|
@ -164,5 +139,4 @@ mobs:spawn({
|
|||
active_object_count = 5,
|
||||
})
|
||||
|
||||
|
||||
mobs:register_egg("desert_life:ostrich", "Ostrich", "wool.png^[multiply:#40230f", 1)
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
bucket
|
||||
default
|
||||
vessels
|
||||
stairs
|
||||
hunger?
|
||||
thirsty?
|
||||
plantlife?
|
||||
farming_plus?
|
||||
crops?
|
||||
farming?
|
||||
minetest_doc_modpack?
|
||||
fruits?
|
||||
ethereal?
|
|
@ -1 +0,0 @@
|
|||
This mod adds a juice press and two juice storage containers. Most fruits and several veggies can be juiced. The resulting drinks can be 'ate' to gain health, or if you are using the thirsty mod, to regain hydration.
|
|
@ -281,16 +281,24 @@ minetest.register_node('drinks:juice_press', {
|
|||
end,
|
||||
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
if listname == 'dst' then
|
||||
if stack:get_name() == ('bucket:bucket_empty') then
|
||||
return 1
|
||||
elseif stack:get_name() == ('vessels:drinking_glass') then
|
||||
return 1
|
||||
elseif stack:get_name() == ('vessels:glass_bottle') then
|
||||
return 1
|
||||
elseif stack:get_name() == ('vessels:steel_bottle') then
|
||||
return 1
|
||||
elseif stack:get_name() == ('default:papyrus') then
|
||||
return 1
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
local outstack = inv:get_stack("dst", 1)
|
||||
local count = outstack:get_count()
|
||||
if count < 1 then
|
||||
if stack:get_name() == ('bucket:bucket_empty') then
|
||||
return 1
|
||||
elseif stack:get_name() == ('vessels:drinking_glass') then
|
||||
return 1
|
||||
elseif stack:get_name() == ('vessels:glass_bottle') then
|
||||
return 1
|
||||
elseif stack:get_name() == ('vessels:steel_bottle') then
|
||||
return 1
|
||||
elseif stack:get_name() == ('default:papyrus') then
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
end
|
||||
else
|
||||
return 0
|
||||
end
|
||||
|
@ -522,9 +530,7 @@ minetest.register_node('drinks:liquid_silo', {
|
|||
fixed = {-.5, -.5, -.5, .5, 1.5, .5},
|
||||
},
|
||||
after_place_node = function(pos, placer, itemstack)
|
||||
local above = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
local top_node = minetest.get_node_or_nil(above)
|
||||
if top_node.name ~= 'air' then
|
||||
if not epic.space_on_top(pos) then
|
||||
minetest.remove_node(pos)
|
||||
return itemstack
|
||||
end
|
||||
|
@ -602,6 +608,9 @@ minetest.register_node('drinks:liquid_silo', {
|
|||
return false
|
||||
end
|
||||
end,
|
||||
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
||||
epic.remove_top_node(pos)
|
||||
end,
|
||||
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if minetest.is_protected(pos, player:get_player_name()) and not minetest.check_player_privs(player, 'protection_bypass') then
|
||||
|
|
|
@ -5,7 +5,6 @@ for i in ipairs (drinks.drink_table) do
|
|||
local color = drinks.drink_table[i][3]
|
||||
local health = drinks.drink_table[i][4]
|
||||
health = health or 1
|
||||
-- The color of the drink is all done in code, so we don't need to have multiple images.
|
||||
|
||||
--Actual Node registration
|
||||
minetest.register_node('drinks:jbu_'..desc..'', {
|
||||
|
@ -26,37 +25,33 @@ minetest.register_node('drinks:jbu_'..desc..'', {
|
|||
sounds = default.node_sound_defaults(),
|
||||
})
|
||||
|
||||
drinks.register_item('drinks:jcu_'..desc, 'vessels:drinking_glass', {
|
||||
drinks.register_item( 'drinks:jcu_'..desc, 'vessels:drinking_glass', {
|
||||
description = 'Cup of '..craft..' Juice',
|
||||
groups = {drink=1},
|
||||
juice_type = craft,
|
||||
inventory_image = 'drinks_glass_contents.png^[colorize:'..color..':200^drinks_drinking_glass.png',
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
thirsty.drink(user, 4, 20)
|
||||
local eat_func = minetest.item_eat(health, 'vessels:drinking_glass')
|
||||
return eat_func(itemstack, user, pointed_thing)
|
||||
end,
|
||||
})
|
||||
|
||||
drinks.register_item('drinks:jbo_'..desc, 'vessels:glass_bottle',{
|
||||
drinks.register_item( 'drinks:jbo_'..desc, 'vessels:glass_bottle', {
|
||||
description = 'Bottle of '..craft..' Juice',
|
||||
groups = {drink = 1},
|
||||
groups = {drink=1},
|
||||
juice_type = craft,
|
||||
inventory_image = 'drinks_bottle_contents.png^[colorize:'..color..':200^drinks_glass_bottle.png',
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
thirsty.drink(user, 8, 20)
|
||||
local eat_func = minetest.item_eat((health*2), 'vessels:glass_bottle')
|
||||
return eat_func(itemstack, user, pointed_thing)
|
||||
end,
|
||||
})
|
||||
|
||||
drinks.register_item('drinks:jsb_'..desc, 'vessels:steel_bottle',{
|
||||
drinks.register_item( 'drinks:jsb_'..desc, 'vessels:steel_bottle', {
|
||||
description = 'Heavy Steel Bottle ('..craft..' Juice)',
|
||||
groups = {drink = 1},
|
||||
groups = {drink=1},
|
||||
juice_type = craft,
|
||||
inventory_image = 'vessels_steel_bottle.png',
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
thirsty.drink(user, 8, 20)
|
||||
local eat_func = minetest.item_eat((health*2), 'vessels:steel_bottle')
|
||||
return eat_func(itemstack, user, pointed_thing)
|
||||
end,
|
||||
|
|
|
@ -1,61 +0,0 @@
|
|||
-- This code is for if Thirst isn't enabled.
|
||||
--Parse Table
|
||||
for i in ipairs (drinks.drink_table) do
|
||||
local desc = drinks.drink_table[i][1]
|
||||
local craft = drinks.drink_table[i][2]
|
||||
local color = drinks.drink_table[i][3]
|
||||
local health = drinks.drink_table[i][4]
|
||||
health = health or 1
|
||||
|
||||
--Actual Node registration
|
||||
minetest.register_node('drinks:jbu_'..desc..'', {
|
||||
description = 'Bucket of '..craft..' Juice',
|
||||
drawtype = "plantlike",
|
||||
tiles = {'bucket.png^(drinks_bucket_contents.png^[colorize:'..color..':200)'},
|
||||
inventory_image = 'bucket.png^(drinks_bucket_contents.png^[colorize:'..color..':200)',
|
||||
wield_image = 'bucket.png^(drinks_bucket_contents.png^[colorize:'..color..':200)',
|
||||
paramtype = "light",
|
||||
juice_type = craft,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25}
|
||||
},
|
||||
groups = {vessel=1,dig_immediate=3,attached_node=1, drink = 1},
|
||||
sounds = default.node_sound_defaults(),
|
||||
})
|
||||
|
||||
drinks.register_item( 'drinks:jcu_'..desc, 'vessels:drinking_glass', {
|
||||
description = 'Cup of '..craft..' Juice',
|
||||
juice_type = craft,
|
||||
inventory_image = 'drinks_glass_contents.png^[colorize:'..color..':200^drinks_drinking_glass.png',
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
local eat_func = minetest.item_eat(health, 'vessels:drinking_glass')
|
||||
return eat_func(itemstack, user, pointed_thing)
|
||||
end,
|
||||
})
|
||||
|
||||
drinks.register_item( 'drinks:jbo_'..desc, 'vessels:glass_bottle', {
|
||||
description = 'Bottle of '..craft..' Juice',
|
||||
groups = {drink=1},
|
||||
juice_type = craft,
|
||||
inventory_image = 'drinks_bottle_contents.png^[colorize:'..color..':200^drinks_glass_bottle.png',
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
local eat_func = minetest.item_eat((health*2), 'vessels:glass_bottle')
|
||||
return eat_func(itemstack, user, pointed_thing)
|
||||
end,
|
||||
})
|
||||
|
||||
drinks.register_item( 'drinks:jsb_'..desc, 'vessels:steel_bottle', {
|
||||
description = 'Heavy Steel Bottle ('..craft..' Juice)',
|
||||
groups = {drink=1},
|
||||
juice_type = craft,
|
||||
inventory_image = 'vessels_steel_bottle.png',
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
local eat_func = minetest.item_eat((health*2), 'vessels:steel_bottle')
|
||||
return eat_func(itemstack, user, pointed_thing)
|
||||
end,
|
||||
})
|
||||
|
||||
end
|
|
@ -83,50 +83,6 @@ if minetest.get_modpath('default') then
|
|||
table.insert(drinks.drink_table, {'blueberries', 'Blueberry', '#521dcb'})
|
||||
end
|
||||
|
||||
if minetest.get_modpath('bushes_classic') then
|
||||
drinks.juiceable['blackberry'] = true
|
||||
drinks.juiceable['blueberry'] = true
|
||||
drinks.juiceable['gooseberry'] = true
|
||||
drinks.juiceable['raspberry'] = true
|
||||
drinks.juiceable['strawberry'] = true
|
||||
table.insert(drinks.drink_table, {'blackberry', 'Blackberry', '#581845'})
|
||||
table.insert(drinks.drink_table, {'blueberry', 'Blueberry', '#521dcb'})
|
||||
table.insert(drinks.drink_table, {'gooseberry', 'Gooseberry', '#9cf57c'})
|
||||
table.insert(drinks.drink_table, {'raspberry', 'Raspberry', '#C70039'})
|
||||
table.insert(drinks.drink_table, {'strawberry', 'Strawberry', '#ff3636'})
|
||||
end
|
||||
|
||||
if minetest.get_modpath('farming_plus') then
|
||||
drinks.juiceable['banana'] = true
|
||||
drinks.juiceable['melon'] = true
|
||||
drinks.juiceable['lemon_item'] = true
|
||||
drinks.juiceable['orange_item'] = true
|
||||
drinks.juiceable['peach_item'] = true
|
||||
drinks.juiceable['rhubarb_item'] = true
|
||||
drinks.juiceable['tomato_item'] = true
|
||||
drinks.juiceable['strawberry_item'] = true
|
||||
drinks.juiceable['raspberry_item'] = true
|
||||
table.insert(drinks.drink_table, {'banana', 'Banana', '#eced9f'})
|
||||
table.insert(drinks.drink_table, {'lemon', 'Lemon', '#feffaa'})
|
||||
table.insert(drinks.drink_table, {'melon', 'Melon', '#ef4646'})
|
||||
table.insert(drinks.drink_table, {'orange', 'Orange', '#ffc417'})
|
||||
table.insert(drinks.drink_table, {'peach', 'Peach', '#f2bc1e'})
|
||||
table.insert(drinks.drink_table, {'rhubarb', 'Rhubarb', '#fb8461'})
|
||||
table.insert(drinks.drink_table, {'tomato', 'Tomato', '#d03a0e'})
|
||||
table.insert(drinks.drink_table, {'strawberry', 'Strawberry', '#ff3636'})
|
||||
table.insert(drinks.drink_table, {'raspberry', 'Raspberry', '#C70039'})
|
||||
end
|
||||
|
||||
if minetest.get_modpath('crops') then
|
||||
drinks.juiceable['melon'] = true
|
||||
drinks.juiceable['melon_slice'] = true
|
||||
drinks.juiceable['tomato'] = true
|
||||
drinks.juiceable['pumpkin'] = true
|
||||
table.insert(drinks.drink_table, {'melon', 'Melon', '#ef4646'})
|
||||
table.insert(drinks.drink_table, {'tomato', 'Tomato', '#d03a0e'})
|
||||
table.insert(drinks.drink_table, {'pumpkin', 'Pumpkin', '#ffc04c'})
|
||||
end
|
||||
|
||||
if minetest.get_modpath('farming') then
|
||||
drinks.juiceable['melon_8'] = true
|
||||
drinks.juiceable['melon_slice'] = true
|
||||
|
@ -150,26 +106,11 @@ if minetest.get_modpath('farming') then
|
|||
table.insert(drinks.drink_table, {'pineapple', 'Pineapple', '#dcd611'})
|
||||
end
|
||||
|
||||
if minetest.get_modpath('fruit') then
|
||||
drinks.juiceable['pear'] = true
|
||||
drinks.juiceable['plum'] = true
|
||||
drinks.juiceable['peach'] = true
|
||||
drinks.juiceable['orange'] = true
|
||||
table.insert(drinks.drink_table, {'pear', 'Pear', '#ecff56'})
|
||||
table.insert(drinks.drink_table, {'plum', 'Plum', '#8e4585'})
|
||||
table.insert(drinks.drink_table, {'peach', 'Peach', '#f2bc1e'})
|
||||
table.insert(drinks.drink_table, {'orange', 'Orange', '#ffc417'})
|
||||
end
|
||||
|
||||
if minetest.get_modpath('ethereal') then
|
||||
if minetest.get_modpath('epic_trees') then
|
||||
drinks.juiceable['banana'] = true
|
||||
drinks.juiceable['coconut'] = true
|
||||
drinks.juiceable['orange'] = true
|
||||
drinks.juiceable['strawberry'] = true
|
||||
table.insert(drinks.drink_table, {'banana', 'Banana', '#eced9f'})
|
||||
table.insert(drinks.drink_table, {'coconut', 'Coconut', '#ffffff'})
|
||||
table.insert(drinks.drink_table, {'orange', 'Orange', '#ffc417'})
|
||||
table.insert(drinks.drink_table, {'strawberry', 'Strawberry', '#ff3636'})
|
||||
end
|
||||
|
||||
if minetest.get_modpath('desert_life') then
|
||||
|
@ -207,11 +148,6 @@ drinks.register_item = function( name, template, def )
|
|||
end
|
||||
end
|
||||
|
||||
|
||||
if minetest.get_modpath('thirsty') then
|
||||
dofile(minetest.get_modpath('drinks')..'/drinks.lua')
|
||||
else
|
||||
dofile(minetest.get_modpath('drinks')..'/drinks2.lua')
|
||||
end
|
||||
dofile(minetest.get_modpath('drinks')..'/drinks.lua')
|
||||
dofile(minetest.get_modpath('drinks')..'/drink_machines.lua')
|
||||
dofile(minetest.get_modpath('drinks')..'/formspecs.lua')
|
||||
|
|
|
@ -81,7 +81,6 @@ end
|
|||
function epic.space_on_top(pos)
|
||||
local above = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
local top_node = minetest.get_node(above)
|
||||
print ('top node is '..(top_node.name))
|
||||
local top_def = minetest.registered_nodes[top_node.name] or nil
|
||||
if not top_def.buildable_to then
|
||||
return false
|
||||
|
|
|
@ -51,6 +51,7 @@ minetest.register_on_joinplayer(function(player)
|
|||
local player_name = player:get_player_name()
|
||||
minetest.chat_send_player(player_name, 'Read the rules for information on how to get interact. Para español visite https://www.nathansalapat.com/server/epic-server_es')
|
||||
minetest.show_formspec(player_name, 'rules', spawn_rules_formspec)
|
||||
--[[
|
||||
else
|
||||
local player_name = player:get_player_name()
|
||||
local info_count = tonumber(spawn.storage:get_string(player_name..'_info_count')) or 10
|
||||
|
@ -59,6 +60,7 @@ minetest.register_on_joinplayer(function(player)
|
|||
spawn.storage:set_string(player_name..'_info_count', new_count)
|
||||
minetest.show_formspec(player_name, '_info_message', spawn_info_formspec)
|
||||
end
|
||||
--]]
|
||||
end
|
||||
end)
|
||||
|
||||
|
|
|
@ -1,4 +1,10 @@
|
|||
local news = {
|
||||
'7/22/20',
|
||||
'You can ride tamed Ostriches.',
|
||||
'',
|
||||
'7/21/20',
|
||||
'Oranges and Bananas can be turned into Juice.',
|
||||
'',
|
||||
'7/20/20',
|
||||
'Cooling lava now has a few options of what node will place.',
|
||||
'Cleaned up the hangglider mod.',
|
||||
|
|
Loading…
Reference in New Issue