171 lines
4.5 KiB
Lua
171 lines
4.5 KiB
Lua
local modpath = core.get_modpath(core.get_current_modname())
|
|
|
|
dofile(modpath .. "/stats.lua")
|
|
|
|
-- player setup
|
|
core.register_on_joinplayer(function(player)
|
|
if player == nil then return end
|
|
local name = player:get_player_name()
|
|
|
|
player:get_inventory():set_width("main", 8)
|
|
player:get_inventory():set_size("main", 8 * 4)
|
|
player:hud_set_hotbar_itemcount(8)
|
|
player:set_lighting({
|
|
volumetric_light = { strength = 0.1 },
|
|
saturation = 1.1,
|
|
shadows = { intensity = 0.33 },
|
|
exposure = {
|
|
luminance_min = -3.5,
|
|
luminance_max = -2.5,
|
|
exposure_correction = 0.35,
|
|
speed_dark_bright = 1500,
|
|
speed_bright_dark = 700,
|
|
},
|
|
})
|
|
|
|
-- creative mode privs
|
|
if core.is_creative_enabled(name) then
|
|
core.set_player_privs(name, PyuTest.util.tableconcat({
|
|
fly = true,
|
|
fast = true,
|
|
creative = true,
|
|
}, core.get_player_privs(name)))
|
|
end
|
|
end)
|
|
|
|
-- player hand
|
|
core.register_item(":", {
|
|
type = "none",
|
|
description = "Hands",
|
|
wield_image = "pyutest-hand.png",
|
|
groups = {
|
|
not_in_creative_inventory = 1
|
|
}
|
|
})
|
|
|
|
-- player effects
|
|
core.register_globalstep(function ()
|
|
for _, v in pairs(core.get_connected_players()) do
|
|
local speed_multiplier = 1
|
|
|
|
v:set_physics_override({
|
|
speed = 1.15 * speed_multiplier
|
|
})
|
|
end
|
|
end)
|
|
|
|
if core.is_creative_enabled("") then
|
|
core.override_item("", {
|
|
range = 9,
|
|
tool_capabilities = PyuTest.tool_caps({
|
|
uses = 0,
|
|
time = 0.25,
|
|
|
|
groupcaps = {
|
|
crumbly = {},
|
|
choppy = {},
|
|
cracky = {},
|
|
snappy = {},
|
|
wooly = {},
|
|
oddly_breakable_by_hand = {}
|
|
},
|
|
|
|
attack_uses = 0,
|
|
damage_groups = { fleshy = 10000 }
|
|
})
|
|
})
|
|
else
|
|
core.override_item("", {
|
|
range = 5,
|
|
tool_capabilities = PyuTest.tool_caps({
|
|
uses = 0,
|
|
attck_uses = 0,
|
|
damage_groups = { fleshy = 2 },
|
|
|
|
groupcaps = {
|
|
oddly_breakable_by_hand = {
|
|
times = {
|
|
[PyuTest.BLOCK_FAST] = 0.35,
|
|
[PyuTest.BLOCK_NORMAL] = 0.50,
|
|
[PyuTest.BLOCK_SLOW] = 0.65,
|
|
}
|
|
},
|
|
snappy = {
|
|
times = {
|
|
[PyuTest.BLOCK_FAST] = 0.55,
|
|
[PyuTest.BLOCK_NORMAL] = 0.70,
|
|
[PyuTest.BLOCK_SLOW] = 0.70
|
|
}
|
|
},
|
|
crumbly = {
|
|
times = {
|
|
[PyuTest.BLOCK_FAST] = 0.75,
|
|
[PyuTest.BLOCK_NORMAL] = 0.80,
|
|
[PyuTest.BLOCK_SLOW] = 0.90
|
|
}
|
|
},
|
|
choppy = {
|
|
times = {
|
|
[PyuTest.BLOCK_FAST] = 1.2,
|
|
[PyuTest.BLOCK_NORMAL] = 2.3,
|
|
[PyuTest.BLOCK_SLOW] = 2.9,
|
|
}
|
|
},
|
|
cracky = {
|
|
times = {
|
|
[PyuTest.BLOCK_FAST] = 6,
|
|
[PyuTest.BLOCK_NORMAL] = 10,
|
|
[PyuTest.BLOCK_SLOW] = 45,
|
|
}
|
|
},
|
|
wooly = {
|
|
times = {
|
|
[PyuTest.BLOCK_FAST] = 0.55,
|
|
[PyuTest.BLOCK_NORMAL] = 0.70,
|
|
[PyuTest.BLOCK_SLOW] = 0.70
|
|
}
|
|
},
|
|
}
|
|
})
|
|
})
|
|
end
|
|
|
|
-- unlimited blocks in creative mode
|
|
core.register_on_placenode(function(_, _, placer)
|
|
if placer and placer:is_player() then
|
|
return core.is_creative_enabled(placer:get_player_name())
|
|
end
|
|
end)
|
|
|
|
-- player lighting, and sky effects for different biomes
|
|
core.register_globalstep(function()
|
|
local players = core.get_connected_players()
|
|
|
|
for _, player in pairs(players) do
|
|
local pos = player:get_pos()
|
|
local def = PyuTest.get_biome_def(pos)
|
|
|
|
if def == nil then
|
|
player:set_lighting(PyuTest.DEFAULT_EFFECTS.lighting)
|
|
player:set_sky(PyuTest.DEFAULT_EFFECTS.sky)
|
|
return
|
|
end
|
|
|
|
local sky_type = def._pyutest_sky_type or PyuTest.DEFAULT_EFFECTS.sky_type
|
|
local sky_base_color = def._pyutest_sky_base_color or PyuTest.DEFAULT_EFFECTS.sky_base_color
|
|
local fog_distance = def._pyutest_fog_distance or PyuTest.DEFAULT_EFFECTS.fog_distance
|
|
local fog_start = def._pyutest_fog_start or PyuTest.DEFAULT_EFFECTS.fog_start
|
|
local fog_color = def._pyutest_fog_color or PyuTest.DEFAULT_EFFECTS.fog_color
|
|
|
|
player:set_sky({
|
|
type = sky_type,
|
|
base_color = sky_base_color,
|
|
fog = {
|
|
fog_distance = fog_distance,
|
|
fog_start = fog_start,
|
|
fog_color = fog_color
|
|
}
|
|
})
|
|
end
|
|
end)
|