prerelease 1
parent
8b2422c899
commit
a21f651fb5
|
@ -1 +1,2 @@
|
|||
*.png~
|
||||
*.kra
|
||||
|
|
19
LICENSE.md
19
LICENSE.md
|
@ -8,44 +8,55 @@
|
|||
This applies to textures and sounds contained in the games/devtest Minetest
|
||||
distribution.
|
||||
|
||||
-License: Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
|
||||
- License: Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
|
||||
http://creativecommons.org/licenses/by-sa/3.0/
|
||||
|
||||
- Link to the complete Minetest License:
|
||||
https://github.com/minetest/minetest/blob/master/LICENSE.txt
|
||||
|
||||
### MinetestTextures used
|
||||
### Minetest textures used
|
||||
|
||||
chest_of_everything_chest.png
|
||||
- chest_of_everything_chest.png
|
||||
- tools_irondagger.png
|
||||
|
||||
# License of The Samz Code
|
||||
|
||||
- GPLv3.0
|
||||
- Site: https://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
# License of The Samz textures
|
||||
|
||||
- Author: Juanchi
|
||||
- License: CC BY 4.0 (Attribution 4.0 International)
|
||||
|
||||
# License of The Samz specific sounds
|
||||
# License of The Samz sounds
|
||||
|
||||
## bedz_yawn.ogg
|
||||
- Mod: bedz
|
||||
- Author: ArrowheadProductions
|
||||
- License: This work is licensed under the Creative Commons 0 License.
|
||||
- Site: https://freesound.org/people/ArrowheadProductions/sounds/564231/
|
||||
|
||||
## eat_chewing.ogg
|
||||
- Mod: eat
|
||||
- Author: InspectorJ
|
||||
- License: This work is licensed under the Attribution License.
|
||||
- Site: https://freesound.org/people/InspectorJ/sounds/412068/
|
||||
|
||||
## door_open.ogg
|
||||
- Mod: door
|
||||
- Author: amholma
|
||||
- License: This work is licensed under the Creative Commons 0 License.
|
||||
- Site: https://freesound.org/people/amholma/sounds/344360/
|
||||
|
||||
## door_close.ogg and door_blocked.ogg
|
||||
- Mod: door
|
||||
- Author: BergsteinProd
|
||||
- License: This work is licensed under the Attribution License.
|
||||
- Site: https://freesound.org/people/BergsteinProd/sounds/577009/
|
||||
|
||||
## ouch.ogg
|
||||
- Mod: playerz
|
||||
- Author: Under7dude
|
||||
- License: This work is licensed under the Creative Commons 0 License.
|
||||
- Site: https://freesound.org/people/Under7dude/sounds/163441/
|
||||
|
|
|
@ -5,12 +5,15 @@ max_line_length = false
|
|||
globals = {
|
||||
"eat",
|
||||
"bedz",
|
||||
"bucket",
|
||||
"deco",
|
||||
"door",
|
||||
"farmz",
|
||||
"flowers",
|
||||
"furn",
|
||||
"helper",
|
||||
"items",
|
||||
"kitz",
|
||||
"minetest",
|
||||
"modname",
|
||||
"nodez",
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
bucket = {}
|
||||
|
||||
local modname = minetest.get_current_modname()
|
||||
local modpath = minetest.get_modpath(modname)
|
||||
local S = minetest.get_translator(modname)
|
||||
|
||||
-- Bucket: Punch liquid source or flowing liquid to collect it
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
local modname = minetest.get_current_modname()
|
||||
local S = minetest.get_translator(modname)
|
||||
|
||||
local F = minetest.formspec_escape
|
||||
|
||||
-- Create a detached inventory
|
||||
|
@ -43,8 +46,8 @@ local function get_chest_formspec(page)
|
|||
end
|
||||
|
||||
minetest.register_node("chest_of_everything:chest", {
|
||||
description = "Chest of Everything" .. "\n" ..
|
||||
"Grants access to all items",
|
||||
description = S("Chest of Everything") .. "\n" ..
|
||||
S("Grants access to all items"),
|
||||
tiles ={"chest_of_everything_chest.png^[sheet:2x2:0,0", "chest_of_everything_chest.png^[sheet:2x2:0,0",
|
||||
"chest_of_everything_chest.png^[sheet:2x2:1,0", "chest_of_everything_chest.png^[sheet:2x2:1,0",
|
||||
"chest_of_everything_chest.png^[sheet:2x2:1,0", "chest_of_everything_chest.png^[sheet:2x2:0,1"},
|
||||
|
@ -53,7 +56,7 @@ minetest.register_node("chest_of_everything:chest", {
|
|||
is_ground_content = false,
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("infotext", "Chest of Everything")
|
||||
meta:set_string("infotext", S("Chest of Everything"))
|
||||
meta:set_int("page", 1)
|
||||
meta:set_string("formspec", get_chest_formspec(1))
|
||||
end,
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
# textdomain: chest_of_everything
|
||||
Chest of Everything=Cofre con todo
|
||||
Grants access to all items=Acceso a todos los objetos
|
|
@ -117,7 +117,7 @@ function deco.register_chair(name, def)
|
|||
},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = def.selection_box,
|
||||
fixed = def.selection_box or def.node_box,
|
||||
},
|
||||
sounds = sound.wood(),
|
||||
is_ground_content = false,
|
||||
|
@ -172,7 +172,7 @@ function deco.register_table(name, def)
|
|||
},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = def.selection_box
|
||||
fixed = def.selection_box or def.node_box
|
||||
},
|
||||
sounds = sound.wood(),
|
||||
is_ground_content = false,
|
||||
|
|
|
@ -3,10 +3,10 @@ deco.register_chair("simple_chair", {
|
|||
tiles = {
|
||||
"treez_apple_tree_wood.png",
|
||||
"treez_apple_tree_wood.png",
|
||||
"treez_apple_tree_wood.png",
|
||||
"treez_apple_tree_wood.png",
|
||||
"treez_apple_tree_wood.png",
|
||||
"treez_apple_tree_wood.png",
|
||||
"deco_simple_chair_right.png",
|
||||
"deco_simple_chair_left.png",
|
||||
"deco_simple_chair_front.png",
|
||||
"deco_simple_chair_front.png",
|
||||
},
|
||||
node_box = {
|
||||
{-0.3125, -0.5, 0.1875, -0.1875, 0, 0.3125}, -- NodeBox13
|
||||
|
|
|
@ -1,36 +1,23 @@
|
|||
S, modname = ...
|
||||
|
||||
minetest.register_node(modname..":".."simple_table", {
|
||||
deco.register_table("simple_table", {
|
||||
description = S("Simple Table"),
|
||||
tiles = {
|
||||
"treez_apple_tree_wood.png",
|
||||
"treez_apple_tree_wood.png",
|
||||
"treez_apple_tree_wood.png",
|
||||
"treez_apple_tree_wood.png",
|
||||
"treez_apple_tree_wood.png",
|
||||
"treez_apple_tree_wood.png",
|
||||
"deco_simple_table_side.png",
|
||||
"deco_simple_table_side.png",
|
||||
"deco_simple_table_side.png",
|
||||
"deco_simple_table_side.png",
|
||||
},
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, 0.3125, -0.5, 0.5, 0.5, 0.5}, -- NodeBox14
|
||||
{-0.4375, -0.5, 0.3125, -0.3125, 0.3125, 0.4375}, -- NodeBox15
|
||||
{-0.4375, -0.5, -0.4375, -0.3125, 0.3125, -0.3125}, -- NodeBox16
|
||||
{0.3125, -0.5, 0.3125, 0.4375, 0.3125, 0.4375}, -- NodeBox17
|
||||
{0.4375, -0.5, -0.3125, 0.3125, 0.3125, -0.4375}, -- NodeBox19
|
||||
}
|
||||
{-0.5, 0.3125, -0.5, 0.5, 0.5, 0.5}, -- NodeBox14
|
||||
{-0.4375, -0.5, 0.3125, -0.3125, 0.3125, 0.4375}, -- NodeBox15
|
||||
{-0.4375, -0.5, -0.4375, -0.3125, 0.3125, -0.3125}, -- NodeBox16
|
||||
{0.3125, -0.5, 0.3125, 0.4375, 0.3125, 0.4375}, -- NodeBox17
|
||||
{0.4375, -0.5, -0.3125, 0.3125, 0.3125, -0.4375}, -- NodeBox19 }
|
||||
},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.4375, -0.5, -0.4375, 0.4375, 0.5, 0.4375},
|
||||
},
|
||||
{-0.4375, -0.5, -0.4375, 0.4375, 0.5, 0.4375},
|
||||
},
|
||||
sounds = sound.wood(),
|
||||
is_ground_content = false,
|
||||
stack_max = 1,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, chair = 1},
|
||||
})
|
||||
|
|
|
@ -3,10 +3,10 @@ deco.register_table("simple_table", {
|
|||
tiles = {
|
||||
"treez_apple_tree_wood.png",
|
||||
"treez_apple_tree_wood.png",
|
||||
"treez_apple_tree_wood.png",
|
||||
"treez_apple_tree_wood.png",
|
||||
"treez_apple_tree_wood.png",
|
||||
"treez_apple_tree_wood.png",
|
||||
"deco_simple_table_side.png",
|
||||
"deco_simple_table_side.png",
|
||||
"deco_simple_table_side.png",
|
||||
"deco_simple_table_side.png",
|
||||
},
|
||||
node_box = {
|
||||
{-0.5, 0.3125, -0.5, 0.5, 0.5, 0.5}, -- NodeBox14
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 596 B |
Binary file not shown.
After Width: | Height: | Size: 546 B |
Binary file not shown.
After Width: | Height: | Size: 580 B |
Binary file not shown.
After Width: | Height: | Size: 590 B |
|
@ -94,7 +94,7 @@ function farmz.register_hoe(name, def)
|
|||
})
|
||||
end
|
||||
|
||||
function farmz.register_seed(modname, name, description, product_name, seed_name, grow_time, sprout)
|
||||
function farmz.register_seed(modname, name, description, product_name, grow_time, sprout)
|
||||
|
||||
local seed_name = product_name.."_seed"
|
||||
local seed_name_soil = seed_name.."_soil"
|
||||
|
@ -136,7 +136,7 @@ function farmz.register_seed(modname, name, description, product_name, seed_name
|
|||
sounds = sound.dirt(),
|
||||
|
||||
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
start_grow(pos, def.grow_time)
|
||||
start_grow(pos, grow_time)
|
||||
end,
|
||||
|
||||
on_timer = function(pos)
|
||||
|
@ -250,7 +250,7 @@ function farmz.register_plant(name, def)
|
|||
end
|
||||
end
|
||||
|
||||
local seed_name = farmz.register_seed(def.modname, name, def.description, product_name, seed_name, def.grow_time,
|
||||
local seed_name = farmz.register_seed(def.modname, name, def.description, product_name, def.grow_time,
|
||||
true)
|
||||
|
||||
if def.craft then
|
||||
|
|
|
@ -8,4 +8,4 @@ assert(loadfile(modpath .. "/api.lua"))(S)
|
|||
assert(loadfile(modpath .. "/food.lua"))(S)
|
||||
assert(loadfile(modpath .. "/hoes.lua"))(S)
|
||||
assert(loadfile(modpath .. "/grasses.lua"))(S)
|
||||
assert(loadfile(modpath .. "/plants.lua"))(S)
|
||||
assert(loadfile(modpath .. "/plants.lua"))()
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
local S = ...
|
||||
|
||||
farmz.register_plant("wheat", {
|
||||
modname = "farmz",
|
||||
description = "Wheat",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
S, modname = ...
|
||||
|
||||
function items.register_vessel(name, def)
|
||||
vessel_name = modname..":"..name
|
||||
local vessel_name = modname..":"..name
|
||||
minetest.register_node(vessel_name, {
|
||||
description = S(def.description),
|
||||
drawtype = "plantlike",
|
||||
|
|
|
@ -81,6 +81,14 @@ function kitz.register_egg(name, def)
|
|||
})
|
||||
end
|
||||
|
||||
function kitz.on_step_timer(self, seconds) -- returns true approx every s seconds
|
||||
local t1 = math.floor(self.active_time)
|
||||
local t2 = math.floor(self.active_time + self.dtime)
|
||||
if t2 > t1 and t2 % seconds == 0 then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
function kitz.register_mob(name, def)
|
||||
local _name = modname..":"..name
|
||||
local __name = modname.."_"..name
|
||||
|
@ -130,13 +138,15 @@ function kitz.register_mob(name, def)
|
|||
-- the entity is re-activated from static state
|
||||
end,
|
||||
|
||||
vars = {
|
||||
vars = { --memory
|
||||
name = _name,
|
||||
status = nil,
|
||||
tamed = false,
|
||||
lifetime = 0,
|
||||
textures = def.textures or {},
|
||||
texture_no = 1,
|
||||
type = name,
|
||||
view_range = def.view_range or 5,
|
||||
},
|
||||
|
||||
clear_path = function(self)
|
||||
|
@ -218,6 +228,7 @@ function kitz.activate(self, staticdata, dtime_s)
|
|||
if dtime_s == 0 then --very first time created
|
||||
kitz.init(self, staticdata, dtime_s)
|
||||
end
|
||||
self.active_time = 0
|
||||
--Apply properties
|
||||
self.object:set_properties{
|
||||
textures = {self:get_texture()}
|
||||
|
@ -272,12 +283,58 @@ function kitz.roam(self, pos, vel)
|
|||
return vel
|
||||
end
|
||||
|
||||
local impulse = 2.5
|
||||
local function is_inside_range(p1, p2, pos)
|
||||
if (p1.x <= pos.x) and (pos.x <= p2.x)
|
||||
and (p1.y <= pos.y) and (pos.y <= p2.y)
|
||||
and (p1.z <= pos.z) and (pos.z <= p2.z) then
|
||||
return true
|
||||
else
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
function kitz.step(self)
|
||||
local function sensors(self)
|
||||
local pos = self.object:get_pos()
|
||||
local view_range = self.vars.view_range
|
||||
local p1 = {
|
||||
x = pos.x - view_range,
|
||||
y = pos.y - view_range,
|
||||
z = pos.z - view_range,
|
||||
}
|
||||
local p2 = {
|
||||
x = pos.x + view_range,
|
||||
y = pos.y + view_range,
|
||||
z = pos.z + view_range,
|
||||
}
|
||||
local nearby_mobs = {}
|
||||
for key, value in pairs(kitz.active_mobs) do
|
||||
local mob_pos = value.object:get_pos()
|
||||
if is_inside_range(p1, p2, mob_pos) then
|
||||
nearby_mobs[#nearby_mobs+1] = key
|
||||
end
|
||||
end
|
||||
local nearby_players = {}
|
||||
for _, player in pairs(minetest.get_connected_players()) do
|
||||
local player_pos = player:get_pos()
|
||||
if is_inside_range(p1, p2, player_pos) then
|
||||
nearby_players[#nearby_players+1] = player:get_player_name()
|
||||
end
|
||||
end
|
||||
return nearby_mobs, nearby_players
|
||||
end
|
||||
|
||||
local impulse = 5
|
||||
|
||||
function kitz.step(self, dtime)
|
||||
self.dtime = math.min(dtime, 0.1)
|
||||
local pos = self.object:get_pos()
|
||||
local vel = self.object:get_velocity()
|
||||
local new_vel
|
||||
|
||||
if kitz.on_step_timer(self, 1) then
|
||||
sensors(self)
|
||||
end
|
||||
|
||||
local status = self:get_status()
|
||||
if not(status) then
|
||||
status = self:set_status("roam")
|
||||
|
@ -288,18 +345,28 @@ function kitz.step(self)
|
|||
elseif status == "jump" then
|
||||
--status = self:set_status("roam")
|
||||
minetest.chat_send_all("jump")
|
||||
elseif status == "stand" then
|
||||
|
||||
end
|
||||
if new_vel then
|
||||
self.object:set_velocity(new_vel)
|
||||
self.object:set_yaw(minetest.dir_to_yaw(new_vel))
|
||||
else
|
||||
self.object:set_velocity(vel)
|
||||
--self.object:set_velocity(vel)
|
||||
end
|
||||
if not(status == "jump") then
|
||||
if status == "roam" then
|
||||
self.object:set_acceleration({x=0, y= gravity, z=0})
|
||||
elseif status == "jump" then
|
||||
self.object:set_velocity({x=2, y= 4, z=2})
|
||||
self.object:set_acceleration({x=1, y= 3, z=1})
|
||||
minetest.after(0.3, function(self)
|
||||
status = self:set_status("stand")
|
||||
self:stop()
|
||||
end, self)
|
||||
elseif status == "stand" then
|
||||
self.object:set_acceleration({x=0, y= gravity, z=0})
|
||||
else
|
||||
self.object:set_acceleration({x=1, y= impulse, z=1})
|
||||
impulse = 0
|
||||
end
|
||||
--minetest.chat_send_all(tostring(new_vel) or "")
|
||||
self.vars.lifetime = self.vars.lifetime + dtime
|
||||
self.active_time = self.active_time + dtime
|
||||
end
|
||||
|
|
|
@ -20,7 +20,7 @@ assert(loadfile(modpath .. "/metals.lua"))(S)
|
|||
assert(loadfile(modpath .. "/mese.lua"))(S)
|
||||
assert(loadfile(modpath .. "/lava.lua"))(S)
|
||||
assert(loadfile(modpath .. "/ore.lua"))(S)
|
||||
assert(loadfile(modpath .. "/roofs.lua"))(S, modname)
|
||||
assert(loadfile(modpath .. "/roofs.lua"))(modname)
|
||||
assert(loadfile(modpath .. "/sand.lua"))(S)
|
||||
assert(loadfile(modpath .. "/stone.lua"))(S)
|
||||
assert(loadfile(modpath .. "/water.lua"))(S)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
local S, modname = ...
|
||||
local modname = ...
|
||||
|
||||
function nodez.register_roof(name, def)
|
||||
minetest.register_node(modname..":"..name.."_slope", {
|
||||
|
|
|
@ -68,5 +68,6 @@ minetest.register_on_joinplayer(function(player)
|
|||
playerz.count = playerz.count + 1
|
||||
--Set Sky
|
||||
player:set_sky({sky_color={day_sky="#6ac4c4", day_horizon="#84d1d1"}})
|
||||
|
||||
--Enable Shadows
|
||||
--player:set_lighting({shadows={intensity = 0.33}})
|
||||
end)
|
||||
|
|
Loading…
Reference in New Issue