Zepha/subgames/zeus/mods/zeus_vegetation/script/main.lua

74 lines
2.7 KiB
Lua

require './models/clover'
local selection_box_flower = {
{ 4/16, 0, 4/16, 12/16, 14/16, 12/16 }
}
local selection_box_grass = {
{ 2/16, 0, 2/16, 14/16, 7/16, 14/16 }
}
local function title_case(str)
local tf = function(first, rest) return first:upper()..rest:lower() end
return str:gsub('_', ' '):gsub("(%a)([%w_']*)", tf)
end
local function register_vegetation(identifier, override)
zepha.register_block(':' .. identifier, table.merge({
culls = false,
solid = false,
lowdef_render = false,
light_propagates = true,
toughness = { hand = 0 },
name = title_case(identifier),
model = 'zepha:base:cross_plant',
selection_box = selection_box_flower,
textures = { 'zeus:vegetation:' .. identifier }
}, override or {}))
end
register_vegetation('rose')
register_vegetation('tulip')
register_vegetation('viola')
register_vegetation('purple')
register_vegetation('geranium')
register_vegetation('dandelion_white', { name = 'White Dandelion' })
register_vegetation('dandelion_yellow', { name = 'Yellow Dandelion' })
register_vegetation('tall_blue', { model = 'zepha:base:cross_plant_tall' })
register_vegetation('mushroom_red', { name = 'Red Mushroom', model = 'zepha:base:cross_large' })
register_vegetation('mushroom_glow', { name = 'Glow Mushroom', model = 'zepha:base:cross_large' })
register_vegetation('mushroom_brown', { name = 'Brown Mushroom', model = 'zepha:base:cross_large' })
register_vegetation('clover', {
model = 'zeus:vegetation:clover',
textures = {
'tint(0, crop(0, 0, 16, 16, zeus:vegetation:clover))',
'tint(0, crop(16, 0, 16, 16, zeus:vegetation:clover))'
},
selection_box = {
{ 1/16, 0, 1/16, 15/16, 4/16, 15/16 }
}
})
local grass_def = {
name = 'Tall Grass',
model = 'zepha:base:cross_plant',
selection_box = selection_box_grass,
tool_props = {
health = 5,
multipliers = {
snap = 1.8,
grab = 1.2,
_other = 0.35
}
},
yields = function(pos)
if math.random() > 0.8 then return 'zeus:materials:plant_fibre' end
end
}
register_vegetation('tall_grass_1', table.merge(grass_def, { textures = { 'tint(0, zeus:vegetation:tall_grass_1)' }}))
register_vegetation('tall_grass_2', table.merge(grass_def, { textures = { 'tint(0, zeus:vegetation:tall_grass_2)' }}))
register_vegetation('tall_grass_3', table.merge(grass_def, { textures = { 'tint(0, zeus:vegetation:tall_grass_3)' }}))
register_vegetation('tall_grass_4', table.merge(grass_def, { textures = { 'tint(0, zeus:vegetation:tall_grass_4)' }}))
register_vegetation('tall_grass_5', table.merge(grass_def, { textures = { 'tint(0, zeus:vegetation:tall_grass_5)' }}))