This commit is contained in:
Lizzy Fleckenstein 2021-01-03 15:34:49 +01:00
commit 54f7d76298
3 changed files with 27 additions and 22 deletions

View File

@ -14,9 +14,10 @@ Or you can play in “creative mode” in which you can build almost anything in
#### Gameplay summary #### Gameplay summary
* Sandbox-style gameplay, no goals (for now) * Sandbox-style gameplay, no goals
* Survive: Fight against hostile monsters and hunger * Survive: Fight against hostile monsters and hunger
* Mine for ores and other treasures * Mine for ores and other treasures
* Magic: Gain experience and enchant your tools
* Use the collected blocks to create great buildings, your imagination is the limit * Use the collected blocks to create great buildings, your imagination is the limit
* Collect flowers (and other dye sources) and colorize your world * Collect flowers (and other dye sources) and colorize your world
* Find some seeds and start farming * Find some seeds and start farming
@ -102,7 +103,7 @@ big bugs (such as “missing node” errors or even crashes).
The following main features are available: The following main features are available:
* Tools, weapons * Tools, weapons
* Armor (unbalanced) * Armor
* Crafting system: 2×2 grid, crafting table (3×3 grid), furnace, including a crafting guide * Crafting system: 2×2 grid, crafting table (3×3 grid), furnace, including a crafting guide
* Chests, large chests, ender chests, shulker boxes * Chests, large chests, ender chests, shulker boxes
* Furnaces, hoppers * Furnaces, hoppers
@ -117,6 +118,8 @@ The following main features are available:
* Redstone circuits (partially) * Redstone circuits (partially)
* Minecarts (partial) * Minecarts (partial)
* Status effects (partial) * Status effects (partial)
* Experience
* Enchanting
* Brewing, potions, tipped arrow (partial) * Brewing, potions, tipped arrow (partial)
* Boats * Boats
* Fire * Fire
@ -142,12 +145,9 @@ The following main features are available:
The following features are incomplete: The following features are incomplete:
* Generated structures (especially villages) * Generated structures (especially villages)
* NPCs
* Some monsters and animals * Some monsters and animals
* Redstone-related things * Redstone-related things
* The End * The End
* Enchanting
* Experience
* Special minecarts * Special minecarts
* A couple of non-trivial blocks and items * A couple of non-trivial blocks and items
@ -261,7 +261,6 @@ Various sources. See the respective mod directories for details.
## Info for programmers ## Info for programmers
You find interesting and useful infos in `API.md`. You find interesting and useful infos in `API.md`.
This project is currently mostly a one-person project.
## Legal information ## Legal information
This is a fan game, not developed or endorsed by Mojang AB. This is a fan game, not developed or endorsed by Mojang AB.

View File

@ -647,9 +647,9 @@ local item_drop = function(self, cooked, looting_level)
-- no drops if disabled by setting -- no drops if disabled by setting
if not mobs_drop_items then return end if not mobs_drop_items then return end
looting_level = looting_level or 0 looting_level = looting_level or 0
-- no drops for child mobs (except monster) -- no drops for child mobs (except monster)
if (self.child and self.type ~= "monster") then if (self.child and self.type ~= "monster") then
return return
@ -938,7 +938,7 @@ local is_at_cliff_or_danger = function(self)
return true return true
else else
local def = minetest.registered_nodes[bnode.name] local def = minetest.registered_nodes[bnode.name]
if def and def.walkable then if def and def.walkable then
return false return false
end end
end end
@ -951,7 +951,7 @@ end
-- copy the 'mob facing cliff_or_danger check' from above, and rework to avoid water -- copy the 'mob facing cliff_or_danger check' from above, and rework to avoid water
local is_at_water_danger = function(self) local is_at_water_danger = function(self)
if not self.object:get_luaentity() then if not self.object:get_luaentity() then
return false return false
end end
@ -976,7 +976,7 @@ local is_at_water_danger = function(self)
return true return true
else else
local def = minetest.registered_nodes[bnode.name] local def = minetest.registered_nodes[bnode.name]
if def and def.walkable then if def and def.walkable then
return false return false
end end
end end
@ -2350,10 +2350,10 @@ local do_states = function(self, dtime)
lp = minetest.find_nodes_in_area_under_air( lp = minetest.find_nodes_in_area_under_air(
{x = s.x - 5, y = s.y - 0.5, z = s.z - 5}, {x = s.x - 5, y = s.y - 0.5, z = s.z - 5},
{x = s.x + 5, y = s.y + 1, z = s.z + 5}, {x = s.x + 5, y = s.y + 1, z = s.z + 5},
{"group:solid"}) {"group:solid"})
lp = #lp > 0 and lp[random(#lp)] lp = #lp > 0 and lp[random(#lp)]
-- did we find land? -- did we find land?
if lp then if lp then
@ -3598,15 +3598,15 @@ local mob_step = function(self, dtime)
for n = 1, #close_objs do for n = 1, #close_objs do
if close_objs[n]:is_player() then if close_objs[n]:is_player() then
self.lifetimer = 20 self.lifetimer = 20
else return
if math.random(1,10) <= 3 then
minetest.log("action", "Mob "..self.name.." despawns in mob_step at "..minetest.pos_to_string(pos))
mcl_burning.extinguish(self.object)
self.object:remove()
return
end
end end
end end
if math.random(1, 10) <= 3 then
minetest.log("action", "Mob "..self.name.." despawns in mob_step at "..minetest.pos_to_string(pos))
mcl_burning.extinguish(self.object)
self.object:remove()
return
end
else else
minetest.log("action", "Mob "..self.name.." despawns in mob_step at "..minetest.pos_to_string(pos)) minetest.log("action", "Mob "..self.name.." despawns in mob_step at "..minetest.pos_to_string(pos))
mcl_burning.extinguish(self.object) mcl_burning.extinguish(self.object)
@ -3842,7 +3842,7 @@ minetest.register_entity(name, {
get_staticdata = function(self) get_staticdata = function(self)
return mob_staticdata(self) return mob_staticdata(self)
end, end,
harmed_by_heal = def.harmed_by_heal, harmed_by_heal = def.harmed_by_heal,
}) })

View File

@ -1109,7 +1109,13 @@ if progressive_mode then
local name = player:get_player_name() local name = player:get_player_name()
local data = player_data[name] local data = player_data[name]
meta:set_string("inv_items", serialize(data.inv_items)) if not data then
return
end
local inv_items = data.inv_items or {}
meta:set_string("inv_items", serialize(inv_items))
end end
M.register_on_leaveplayer(function(player) M.register_on_leaveplayer(function(player)