mirror of
https://gitlab.com/rubenwardy/awards.git
synced 2025-06-28 22:26:17 +02:00
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
4f5260da5f | |||
89d4a93f3b | |||
cae2c1ee3b | |||
54db6ce0c0 |
62
README.md
62
README.md
@ -37,11 +37,10 @@ awards.register_award("mymod:award", {
|
|||||||
|
|
||||||
The above trigger type is an example of a counted_key trigger:
|
The above trigger type is an example of a counted_key trigger:
|
||||||
rather than a single counter there's a counter per key - in this
|
rather than a single counter there's a counter per key - in this
|
||||||
case the key is the value of the `node` field.
|
case the key is the value of the `node` field. If you leave out
|
||||||
|
the key in a `counted_key` trigger, then the total will be used
|
||||||
If you leave out the key in a `counted_key` trigger, then the total will be used
|
instead. For example, here is an award which unlocks after you've
|
||||||
instead. For example, here is an award which unlocks after you've placed 10
|
placed 10 nodes of any type:
|
||||||
nodes of any type:
|
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
awards.register_award("mymod:award", {
|
awards.register_award("mymod:award", {
|
||||||
@ -126,10 +125,6 @@ awards.register_trigger("foo", {
|
|||||||
type = "custom",
|
type = "custom",
|
||||||
progress = "@1/@2 foos",
|
progress = "@1/@2 foos",
|
||||||
auto_description = { "Do a foo", "Foo @1 times" },
|
auto_description = { "Do a foo", "Foo @1 times" },
|
||||||
|
|
||||||
on_register = function(self, award)
|
|
||||||
print(award.name .. " was registered with foo trigger type")
|
|
||||||
end,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_on_foo(function()
|
minetest.register_on_foo(function()
|
||||||
@ -173,9 +168,7 @@ end
|
|||||||
|
|
||||||
# API
|
# API
|
||||||
|
|
||||||
## Awards
|
* awards.register_award(name, def), the def table has the following fields:
|
||||||
|
|
||||||
* `awards.register_award(name, def)`, the def table has the following fields:
|
|
||||||
* `title` - title of the award (defaults to name)
|
* `title` - title of the award (defaults to name)
|
||||||
* `description` - longer description of the award, displayed in Awards tab
|
* `description` - longer description of the award, displayed in Awards tab
|
||||||
* `difficulty` - see [Award Difficulty](#award-difficulty).
|
* `difficulty` - see [Award Difficulty](#award-difficulty).
|
||||||
@ -189,48 +182,23 @@ end
|
|||||||
* `background` - the background image, use default otherwise.
|
* `background` - the background image, use default otherwise.
|
||||||
* `trigger` - trigger definition, see [Builtin Trigger Types](#builtin-trigger-types).
|
* `trigger` - trigger definition, see [Builtin Trigger Types](#builtin-trigger-types).
|
||||||
* `on_unlock(name, def)` - callback on unlock.
|
* `on_unlock(name, def)` - callback on unlock.
|
||||||
* `awards.registered_awards` - table of award name to definition.
|
* awards.register_trigger(name, def), the def table has the following fields:
|
||||||
* `awards.register_on_unlock(func(name, def))`
|
* `type` - see [Trigger Types](#trigger-types).
|
||||||
* `name` is the player name
|
|
||||||
* `def` is the award def.
|
|
||||||
* return true to cancel HUD
|
|
||||||
* `awards.unlock(player_name, award_name)`
|
|
||||||
* gives an award to a player
|
|
||||||
* `awards.get_award_states(player_name)`
|
|
||||||
* Returns list of tables, sorted by `score`, each having the fields:
|
|
||||||
|
|
||||||
```lua
|
|
||||||
{
|
|
||||||
name = "mymod:awardname",
|
|
||||||
def = {}, -- Award definition
|
|
||||||
unlocked = true, -- Whether award has been unlocked
|
|
||||||
started = true, -- Whether any progress has been made
|
|
||||||
score = 0, -- Score used in sorting
|
|
||||||
|
|
||||||
-- Either a table or nil
|
|
||||||
-- Will be nil if progress is indeterminable or
|
|
||||||
-- if the award is unlocked
|
|
||||||
progress = {
|
|
||||||
current = 5,
|
|
||||||
target = 10,
|
|
||||||
label = "label", -- Label to show over progress bar
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Triggers
|
|
||||||
|
|
||||||
* `awards.register_trigger(name, def)`, the def table has the following fields:
|
|
||||||
* `type` - see trigger type types in [Trigger Types](#trigger-types).
|
|
||||||
* `progress` - used to format progress, defaults to "%1/%2".
|
* `progress` - used to format progress, defaults to "%1/%2".
|
||||||
* `auto_description` - a table of two elements. Each element is a format string. Element 1 is singular, element 2 is plural. Used for the award description (not title) if none is given.
|
* `auto_description` - a table of two elements. Each element is a format string. Element 1 is singular, element 2 is plural. Used for the award description (not title) if none is given.
|
||||||
* `on_register(self, award_def)` - called when an award registers with this type.
|
* `on_register(award_def)` - called when an award registers with this type.
|
||||||
* "counted_key" only:
|
* "counted_key" only:
|
||||||
* `auto_description_total` - Used if the trigger is for the total.
|
* `auto_description_total` - Used if the trigger is for the total.
|
||||||
* `get_key(self, def)` - get key for particular award, return nil for a total.
|
* `get_key(self, def)` - get key for particular award, return nil for a total.
|
||||||
* `key_is_item` - true if the key is an item name. On notify(),
|
* `key_is_item` - true if the key is an item name. On notify(),
|
||||||
any watched groups will also be notified as `group:groupname` keys.
|
any watched groups will also be notified as `group:groupname` keys.
|
||||||
* `awards.registered_triggers` - table of trigger name to definition.
|
* awards.register_on_unlock(func(name, def))
|
||||||
|
* name is the player name
|
||||||
|
* def is the award def.
|
||||||
|
* return true to cancel HUD
|
||||||
|
* awards.unlock(name, award)
|
||||||
|
* gives an award to a player
|
||||||
|
* name is the player name
|
||||||
|
|
||||||
## Builtin Trigger Types
|
## Builtin Trigger Types
|
||||||
|
|
||||||
|
8
init.lua
8
init.lua
@ -3,9 +3,7 @@
|
|||||||
-- The global award namespace
|
-- The global award namespace
|
||||||
awards = {
|
awards = {
|
||||||
show_mode = "hud",
|
show_mode = "hud",
|
||||||
registered_awards = {},
|
|
||||||
registered_triggers = {},
|
registered_triggers = {},
|
||||||
on_unlock = {},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Internationalization support.
|
-- Internationalization support.
|
||||||
@ -18,11 +16,7 @@ dofile(minetest.get_modpath("awards").."/src/api_triggers.lua")
|
|||||||
dofile(minetest.get_modpath("awards").."/src/chat_commands.lua")
|
dofile(minetest.get_modpath("awards").."/src/chat_commands.lua")
|
||||||
dofile(minetest.get_modpath("awards").."/src/gui.lua")
|
dofile(minetest.get_modpath("awards").."/src/gui.lua")
|
||||||
dofile(minetest.get_modpath("awards").."/src/triggers.lua")
|
dofile(minetest.get_modpath("awards").."/src/triggers.lua")
|
||||||
|
dofile(minetest.get_modpath("awards").."/src/awards.lua")
|
||||||
-- Optionally add default awards.
|
|
||||||
if minetest.settings:get_bool("awards.add_defaults", true) then
|
|
||||||
dofile(minetest.get_modpath("awards").."/src/awards.lua")
|
|
||||||
end
|
|
||||||
|
|
||||||
awards.load()
|
awards.load()
|
||||||
minetest.register_on_shutdown(awards.save)
|
minetest.register_on_shutdown(awards.save)
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
# Add default achievements from the awards mod
|
|
||||||
awards.add_defaults (Add Default Achievements) bool true
|
|
@ -43,11 +43,6 @@ end
|
|||||||
-- name - the name of the player
|
-- name - the name of the player
|
||||||
-- award - the name of the award to give
|
-- award - the name of the award to give
|
||||||
function awards.unlock(name, award)
|
function awards.unlock(name, award)
|
||||||
-- Ensure the player is online.
|
|
||||||
if not minetest.get_player_by_name(name) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Access Player Data
|
-- Access Player Data
|
||||||
local data = awards.player(name)
|
local data = awards.player(name)
|
||||||
local awdef = awards.registered_awards[award]
|
local awdef = awards.registered_awards[award]
|
||||||
@ -65,7 +60,7 @@ function awards.unlock(name, award)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Unlock Award
|
-- Unlock Award
|
||||||
minetest.log("action", name.." has unlocked award "..award)
|
minetest.log("action", name.." has unlocked award "..name)
|
||||||
data.unlocked[award] = award
|
data.unlocked[award] = award
|
||||||
awards.save()
|
awards.save()
|
||||||
|
|
||||||
@ -96,7 +91,7 @@ function awards.unlock(name, award)
|
|||||||
local title = awdef.title or award
|
local title = awdef.title or award
|
||||||
local desc = awdef.description or ""
|
local desc = awdef.description or ""
|
||||||
local background = awdef.background or "awards_bg_default.png"
|
local background = awdef.background or "awards_bg_default.png"
|
||||||
local icon = (awdef.icon or "awards_unknown.png") .. "^[resize:32x32"
|
local icon = awdef.icon or "awards_unknown.png"
|
||||||
local sound = awdef.sound
|
local sound = awdef.sound
|
||||||
if sound == nil then
|
if sound == nil then
|
||||||
-- Explicit check for nil because sound could be `false` to disable it
|
-- Explicit check for nil because sound could be `false` to disable it
|
||||||
@ -127,6 +122,9 @@ function awards.unlock(name, award)
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = minetest.get_player_by_name(name)
|
||||||
|
if not (player and player.is_player and player:is_player()) then
|
||||||
|
return
|
||||||
|
end
|
||||||
local one = player:hud_add({
|
local one = player:hud_add({
|
||||||
hud_elem_type = "image",
|
hud_elem_type = "image",
|
||||||
name = "award_bg",
|
name = "award_bg",
|
||||||
@ -165,7 +163,7 @@ function awards.unlock(name, award)
|
|||||||
local four = player:hud_add({
|
local four = player:hud_add({
|
||||||
hud_elem_type = "image",
|
hud_elem_type = "image",
|
||||||
name = "award_icon",
|
name = "award_icon",
|
||||||
scale = {x = 2, y = 2}, -- adjusted for 32x32 from x/y = 4
|
scale = {x = 4, y = 4},
|
||||||
text = icon,
|
text = icon,
|
||||||
position = {x = 0.5, y = 0.05},
|
position = {x = 0.5, y = 0.05},
|
||||||
offset = {x = -200.5, y = 126},
|
offset = {x = -200.5, y = 126},
|
||||||
@ -182,71 +180,3 @@ function awards.unlock(name, award)
|
|||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function awards.get_award_states(name)
|
|
||||||
local hash_is_unlocked = {}
|
|
||||||
local retval = {}
|
|
||||||
|
|
||||||
-- Add all unlocked awards
|
|
||||||
local data = awards.player(name)
|
|
||||||
if data and data.unlocked then
|
|
||||||
for awardname, _ in pairs(data.unlocked) do
|
|
||||||
local def = awards.registered_awards[awardname]
|
|
||||||
if def then
|
|
||||||
hash_is_unlocked[awardname] = true
|
|
||||||
local score = -100000
|
|
||||||
|
|
||||||
local difficulty = def.difficulty or 1
|
|
||||||
if def.trigger and def.trigger.target then
|
|
||||||
difficulty = difficulty * def.trigger.target
|
|
||||||
end
|
|
||||||
score = score + difficulty
|
|
||||||
|
|
||||||
retval[#retval + 1] = {
|
|
||||||
name = awardname,
|
|
||||||
def = def,
|
|
||||||
unlocked = true,
|
|
||||||
started = true,
|
|
||||||
score = score,
|
|
||||||
progress = nil,
|
|
||||||
}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Add all locked awards
|
|
||||||
for _, def in pairs(awards.registered_awards) do
|
|
||||||
if not hash_is_unlocked[def.name] and def:can_unlock(data) then
|
|
||||||
local progress = def.get_progress and def:get_progress(data)
|
|
||||||
local started = false
|
|
||||||
local score = def.difficulty or 1
|
|
||||||
if def.secret then
|
|
||||||
score = 1000000
|
|
||||||
elseif def.trigger and def.trigger.target and progress then
|
|
||||||
local perc = progress.current / progress.target
|
|
||||||
score = score * (1 - perc) * def.trigger.target
|
|
||||||
if perc < 0.001 then
|
|
||||||
score = score + 100
|
|
||||||
else
|
|
||||||
started = true
|
|
||||||
end
|
|
||||||
else
|
|
||||||
score = 100
|
|
||||||
end
|
|
||||||
|
|
||||||
retval[#retval + 1] = {
|
|
||||||
name = def.name,
|
|
||||||
def = def,
|
|
||||||
unlocked = false,
|
|
||||||
started = started,
|
|
||||||
score = score,
|
|
||||||
progress = progress,
|
|
||||||
}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
table.sort(retval, function(a, b)
|
|
||||||
return a.score < b.score
|
|
||||||
end)
|
|
||||||
return retval
|
|
||||||
end
|
|
||||||
|
@ -2,7 +2,9 @@
|
|||||||
|
|
||||||
local S, NS = awards.gettext, awards.ngettext
|
local S, NS = awards.gettext, awards.ngettext
|
||||||
|
|
||||||
|
awards.registered_awards = {}
|
||||||
awards.on = {}
|
awards.on = {}
|
||||||
|
awards.on_unlock = {}
|
||||||
|
|
||||||
local default_def = {}
|
local default_def = {}
|
||||||
|
|
||||||
@ -41,12 +43,11 @@ function awards.register_trigger(tname, tdef)
|
|||||||
}
|
}
|
||||||
tdef.register(tmp)
|
tdef.register(tmp)
|
||||||
|
|
||||||
function def.get_progress(_, data)
|
function def.getProgress(_, data)
|
||||||
local current = math.min(data[tname] or 0, tmp.target)
|
local done = math.min(data[tname] or 0, tmp.target)
|
||||||
return {
|
return {
|
||||||
current = current,
|
perc = done / tmp.target,
|
||||||
target = tmp.target,
|
label = S(tdef.progress, done, tmp.target),
|
||||||
label = S(tdef.progress, current, tmp.target),
|
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -101,7 +102,7 @@ function awards.register_trigger(tname, tdef)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Called to get progress values and labels
|
-- Called to get progress values and labels
|
||||||
function def.get_progress(_, data)
|
function def.getProgress(_, data)
|
||||||
data[tname] = data[tname] or {}
|
data[tname] = data[tname] or {}
|
||||||
|
|
||||||
local done
|
local done
|
||||||
@ -113,8 +114,7 @@ function awards.register_trigger(tname, tdef)
|
|||||||
done = math.min(done, tmp.target)
|
done = math.min(done, tmp.target)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
current = done,
|
perc = done / tmp.target,
|
||||||
target = tmp.target,
|
|
||||||
label = S(tdef.progress, done, tmp.target),
|
label = S(tdef.progress, done, tmp.target),
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
@ -144,8 +144,8 @@ function awards.register_trigger(tname, tdef)
|
|||||||
if tdef.key_is_item and key:sub(1, 6) ~= "group:" then
|
if tdef.key_is_item and key:sub(1, 6) ~= "group:" then
|
||||||
local itemdef = minetest.registered_items[key]
|
local itemdef = minetest.registered_items[key]
|
||||||
if itemdef then
|
if itemdef then
|
||||||
for groupname,rating in pairs(itemdef.groups or {}) do
|
for groupname, _ in pairs(itemdef.groups or {}) do
|
||||||
if rating ~= 0 and tdef.watched_groups[groupname] then
|
if tdef.watched_groups[groupname] then
|
||||||
tdef.notify(player, "group:" .. groupname, n)
|
tdef.notify(player, "group:" .. groupname, n)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -160,9 +160,8 @@ function awards.register_trigger(tname, tdef)
|
|||||||
data[tname] = data[tname] or {}
|
data[tname] = data[tname] or {}
|
||||||
local currentVal = (data[tname][key] or 0) + n
|
local currentVal = (data[tname][key] or 0) + n
|
||||||
data[tname][key] = currentVal
|
data[tname][key] = currentVal
|
||||||
data[tname].__total = (data[tname].__total or 0)
|
|
||||||
if key:sub(1, 6) ~= "group:" then
|
if key:sub(1, 6) ~= "group:" then
|
||||||
data[tname].__total = data[tname].__total + n
|
data[tname].__total = (data[tname].__total or 0) + n
|
||||||
end
|
end
|
||||||
|
|
||||||
tdef:run_callbacks(player, data, function(entry)
|
tdef:run_callbacks(player, data, function(entry)
|
||||||
@ -174,6 +173,7 @@ function awards.register_trigger(tname, tdef)
|
|||||||
else
|
else
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
if current >= entry.target then
|
if current >= entry.target then
|
||||||
return entry.award
|
return entry.award
|
||||||
end
|
end
|
||||||
@ -201,7 +201,7 @@ end
|
|||||||
|
|
||||||
function awards.increment_item_counter(data, field, itemname, count)
|
function awards.increment_item_counter(data, field, itemname, count)
|
||||||
itemname = minetest.registered_aliases[itemname] or itemname
|
itemname = minetest.registered_aliases[itemname] or itemname
|
||||||
data[field][itemname] = (data[field][itemname] or 0) + (count or 1)
|
data[field][itemname] = (data[field][itemname] or 0) + 1
|
||||||
end
|
end
|
||||||
|
|
||||||
function awards.get_item_count(data, field, itemname)
|
function awards.get_item_count(data, field, itemname)
|
||||||
|
304
src/awards.lua
304
src/awards.lua
@ -2,13 +2,12 @@
|
|||||||
|
|
||||||
local S = awards.gettext
|
local S = awards.gettext
|
||||||
|
|
||||||
|
|
||||||
-- Saint-Maclou
|
-- Saint-Maclou
|
||||||
if minetest.get_modpath("moreblocks") then
|
if minetest.get_modpath("moreblocks") then
|
||||||
awards.register_award("award_saint_maclou",{
|
awards.register_award("award_saint_maclou",{
|
||||||
title = S("Saint-Maclou"),
|
title = S("Saint-Maclou"),
|
||||||
description = S("Place 20 coal checkers."),
|
description = S("Place 20 coal checkers."),
|
||||||
icon = "awards_saint_maclou.png",
|
icon = "awards_novicebuilder.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "place",
|
type = "place",
|
||||||
node = "moreblocks:coal_checker",
|
node = "moreblocks:coal_checker",
|
||||||
@ -20,7 +19,7 @@ if minetest.get_modpath("moreblocks") then
|
|||||||
awards.register_award("award_castorama",{
|
awards.register_award("award_castorama",{
|
||||||
title = S("Castorama"),
|
title = S("Castorama"),
|
||||||
description = S("Place 20 iron checkers."),
|
description = S("Place 20 iron checkers."),
|
||||||
icon = "awards_castorama.png",
|
icon = "awards_novicebuilder.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "place",
|
type = "place",
|
||||||
node = "moreblocks:iron_checker",
|
node = "moreblocks:iron_checker",
|
||||||
@ -32,7 +31,7 @@ if minetest.get_modpath("moreblocks") then
|
|||||||
awards.register_award("award_sam_the_trapper",{
|
awards.register_award("award_sam_the_trapper",{
|
||||||
title = S("Sam the Trapper"),
|
title = S("Sam the Trapper"),
|
||||||
description = S("Place 2 trap stones."),
|
description = S("Place 2 trap stones."),
|
||||||
icon = "awards_sam_the_trapper.png",
|
icon = "awards_novicebuilder.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "place",
|
type = "place",
|
||||||
node = "moreblocks:trap_stone",
|
node = "moreblocks:trap_stone",
|
||||||
@ -47,7 +46,7 @@ if minetest.get_modpath("unified_inventory") then
|
|||||||
awards.register_award("awards_ui_bags", {
|
awards.register_award("awards_ui_bags", {
|
||||||
title = S("Backpacker"),
|
title = S("Backpacker"),
|
||||||
description = S("Craft 4 large bags."),
|
description = S("Craft 4 large bags."),
|
||||||
icon = "awards_backpacker.png",
|
icon = "awards_ui_bags.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
item = "unified_inventory:bag_large",
|
item = "unified_inventory:bag_large",
|
||||||
@ -61,7 +60,7 @@ if minetest.get_modpath("fire") then
|
|||||||
awards.register_award("awards_pyro", {
|
awards.register_award("awards_pyro", {
|
||||||
title = S("Pyromaniac"),
|
title = S("Pyromaniac"),
|
||||||
description = S("Craft 8 times flint and steel."),
|
description = S("Craft 8 times flint and steel."),
|
||||||
icon = "awards_pyromaniac.png",
|
icon = "fire_flint_steel.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
item = "fire:flint_and_steel",
|
item = "fire:flint_and_steel",
|
||||||
@ -80,68 +79,14 @@ if minetest.get_modpath("fire") then
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-- Burned to death
|
|
||||||
awards.register_award("award_burn", {
|
|
||||||
title = S("You're a witch!"),
|
|
||||||
description = S("Burn to death in a fire."),
|
|
||||||
secret = true,
|
|
||||||
})
|
|
||||||
awards.register_on_death(function(player,data)
|
|
||||||
local pos = player:get_pos()
|
|
||||||
if pos and minetest.find_node_near(pos, 2, "fire:basic_flame") ~= nil then
|
|
||||||
return "award_burn"
|
|
||||||
end
|
|
||||||
return nil
|
|
||||||
end)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- You Suck!
|
|
||||||
awards.register_award("award_you_suck", {
|
|
||||||
title = S("You Suck!"),
|
|
||||||
description = S("Die 100 times."),
|
|
||||||
trigger = {
|
|
||||||
type = "death",
|
|
||||||
target = 100
|
|
||||||
},
|
|
||||||
secret = true,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Die hi
|
|
||||||
awards.register_award("award_deep_down", {
|
|
||||||
title = S("Death in the Deeps"),
|
|
||||||
description = S("Die below -10000"),
|
|
||||||
secret = true,
|
|
||||||
})
|
|
||||||
awards.register_on_death(function(player,data)
|
|
||||||
local pos = player:get_pos()
|
|
||||||
if pos and pos.y < -10000 then
|
|
||||||
return "award_deep_down"
|
|
||||||
end
|
|
||||||
return nil
|
|
||||||
end)
|
|
||||||
|
|
||||||
-- Die near diamond ore
|
|
||||||
awards.register_award("award_no_screen", {
|
|
||||||
title = S("In space, no one can hear you scream"),
|
|
||||||
description = S("Die above 10000"),
|
|
||||||
secret = true,
|
|
||||||
})
|
|
||||||
awards.register_on_death(function(player,data)
|
|
||||||
local pos = player:get_pos()
|
|
||||||
if pos and pos.y > 10000 then
|
|
||||||
return "award_no_screen"
|
|
||||||
end
|
|
||||||
return nil
|
|
||||||
end)
|
|
||||||
|
|
||||||
if minetest.get_modpath("default") then
|
if minetest.get_modpath("default") then
|
||||||
-- Light it up
|
-- Light it up
|
||||||
awards.register_award("award_lightitup",{
|
awards.register_award("award_lightitup",{
|
||||||
title = S("Light It Up"),
|
title = S("Light It Up"),
|
||||||
description = S("Place 100 torches."),
|
description = S("Place 100 torches."),
|
||||||
icon = "awards_light_it_up.png^awards_level1.png",
|
icon = "awards_novicebuilder.png^awards_level1.png",
|
||||||
difficulty = 0.01,
|
difficulty = 0.01,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "place",
|
type = "place",
|
||||||
@ -153,7 +98,7 @@ if minetest.get_modpath("default") then
|
|||||||
-- Light ALL the things!
|
-- Light ALL the things!
|
||||||
awards.register_award("award_well_lit",{
|
awards.register_award("award_well_lit",{
|
||||||
title = S("Well Lit"),
|
title = S("Well Lit"),
|
||||||
icon = "awards_well_lit.png^awards_level2.png",
|
icon = "awards_novicebuilder.png^awards_level2.png",
|
||||||
description = S("Place 1,000 torches."),
|
description = S("Place 1,000 torches."),
|
||||||
difficulty = 0.01,
|
difficulty = 0.01,
|
||||||
trigger = {
|
trigger = {
|
||||||
@ -166,7 +111,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_meselamp",{
|
awards.register_award("award_meselamp",{
|
||||||
title = S("Really Well Lit"),
|
title = S("Really Well Lit"),
|
||||||
description = S("Craft 10 mese lamps."),
|
description = S("Craft 10 mese lamps."),
|
||||||
icon = "awards_really_well_lit.png",
|
icon = "default_meselamp.png",
|
||||||
difficulty = 0.2,
|
difficulty = 0.2,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
@ -178,7 +123,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("awards_stonebrick", {
|
awards.register_award("awards_stonebrick", {
|
||||||
title = S("Outpost"),
|
title = S("Outpost"),
|
||||||
description = S("Craft 200 stone bricks."),
|
description = S("Craft 200 stone bricks."),
|
||||||
icon = "awards_outpost.png^awards_level1.png",
|
icon = "default_stone_brick.png^awards_level1.png",
|
||||||
difficulty = 0.08,
|
difficulty = 0.08,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
@ -190,7 +135,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("awards_stonebrick2", {
|
awards.register_award("awards_stonebrick2", {
|
||||||
title = S("Watchtower"),
|
title = S("Watchtower"),
|
||||||
description = S("Craft 800 stone bricks."),
|
description = S("Craft 800 stone bricks."),
|
||||||
icon = "awards_watchtower.png^awards_level2.png",
|
icon = "default_stone_brick.png^awards_level2.png",
|
||||||
difficulty = 0.08,
|
difficulty = 0.08,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
@ -202,7 +147,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("awards_stonebrick3", {
|
awards.register_award("awards_stonebrick3", {
|
||||||
title = S("Fortress"),
|
title = S("Fortress"),
|
||||||
description = S("Craft 3,200 stone bricks."),
|
description = S("Craft 3,200 stone bricks."),
|
||||||
icon = "awards_fortress.png^awards_level3.png",
|
icon = "default_stone_brick.png^awards_level3.png",
|
||||||
difficulty = 0.08,
|
difficulty = 0.08,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
@ -214,7 +159,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("awards_desert_stonebrick", {
|
awards.register_award("awards_desert_stonebrick", {
|
||||||
title = S("Desert Dweller"),
|
title = S("Desert Dweller"),
|
||||||
description = S("Craft 400 desert stone bricks."),
|
description = S("Craft 400 desert stone bricks."),
|
||||||
icon = "awards_desert_dweller.png",
|
icon = "default_desert_stone_brick.png",
|
||||||
difficulty = 0.09,
|
difficulty = 0.09,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
@ -226,7 +171,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("awards_desertstonebrick", {
|
awards.register_award("awards_desertstonebrick", {
|
||||||
title = S("Pharaoh"),
|
title = S("Pharaoh"),
|
||||||
description = S("Craft 100 sandstone bricks."),
|
description = S("Craft 100 sandstone bricks."),
|
||||||
icon = "awards_pharaoh.png",
|
icon = "default_sandstone_brick.png",
|
||||||
difficulty = 0.09,
|
difficulty = 0.09,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
@ -238,7 +183,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("awards_bookshelf", {
|
awards.register_award("awards_bookshelf", {
|
||||||
title = S("Little Library"),
|
title = S("Little Library"),
|
||||||
description = S("Craft 7 bookshelves."),
|
description = S("Craft 7 bookshelves."),
|
||||||
icon = "awards_little_library.png",
|
icon = "default_bookshelf.png",
|
||||||
difficulty = 0.2,
|
difficulty = 0.2,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
@ -250,7 +195,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("awards_obsidian", {
|
awards.register_award("awards_obsidian", {
|
||||||
title = S("Lava and Water"),
|
title = S("Lava and Water"),
|
||||||
description = S("Mine your first obsidian."),
|
description = S("Mine your first obsidian."),
|
||||||
icon = "awards_lava_and_water.png^awards_level1.png",
|
icon = "default_obsidian.png^awards_level1.png",
|
||||||
background = "awards_bg_mining.png",
|
background = "awards_bg_mining.png",
|
||||||
difficulty = 1.5,
|
difficulty = 1.5,
|
||||||
trigger = {
|
trigger = {
|
||||||
@ -264,7 +209,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_obsessed_with_obsidian",{
|
awards.register_award("award_obsessed_with_obsidian",{
|
||||||
title = S("Obsessed with Obsidian"),
|
title = S("Obsessed with Obsidian"),
|
||||||
description = S("Mine 50 obsidian."),
|
description = S("Mine 50 obsidian."),
|
||||||
icon = "awards_obsessed_with_obsidian.png^awards_level2.png",
|
icon = "default_obsidian.png^awards_level2.png",
|
||||||
background = "awards_bg_mining.png",
|
background = "awards_bg_mining.png",
|
||||||
difficulty = 1.5,
|
difficulty = 1.5,
|
||||||
trigger = {
|
trigger = {
|
||||||
@ -278,8 +223,8 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_lavaminer",{
|
awards.register_award("award_lavaminer",{
|
||||||
title = S("Lava Miner"),
|
title = S("Lava Miner"),
|
||||||
description = S("Mine any block while being very close to lava."),
|
description = S("Mine any block while being very close to lava."),
|
||||||
icon = "awards_lava_miner.png",
|
|
||||||
background = "awards_bg_mining.png",
|
background = "awards_bg_mining.png",
|
||||||
|
icon = "default_lava.png",
|
||||||
difficulty = 1,
|
difficulty = 1,
|
||||||
})
|
})
|
||||||
awards.register_on_dig(function(player,data)
|
awards.register_on_dig(function(player,data)
|
||||||
@ -295,7 +240,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_on_the_way", {
|
awards.register_award("award_on_the_way", {
|
||||||
title = S("On The Way"),
|
title = S("On The Way"),
|
||||||
description = S("Place 100 rails."),
|
description = S("Place 100 rails."),
|
||||||
icon = "awards_on_the_way.png",
|
icon = "carts_rail_straight.png",
|
||||||
difficulty = 0.1,
|
difficulty = 0.1,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "place",
|
type = "place",
|
||||||
@ -307,7 +252,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_lumberjack_firstday", {
|
awards.register_award("award_lumberjack_firstday", {
|
||||||
title = S("First Day in the Woods"),
|
title = S("First Day in the Woods"),
|
||||||
description = S("Dig 6 tree blocks."),
|
description = S("Dig 6 tree blocks."),
|
||||||
icon = "awards_first_day_in_the_woods.png^awards_level1.png",
|
icon = "default_tree.png^awards_level1.png",
|
||||||
difficulty = 0.03,
|
difficulty = 0.03,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "dig",
|
type = "dig",
|
||||||
@ -320,7 +265,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_lumberjack", {
|
awards.register_award("award_lumberjack", {
|
||||||
title = S("Lumberjack"),
|
title = S("Lumberjack"),
|
||||||
description = S("Dig 36 tree blocks."),
|
description = S("Dig 36 tree blocks."),
|
||||||
icon = "awards_lumberjack.png^awards_level2.png",
|
icon = "default_tree.png^awards_level2.png",
|
||||||
difficulty = 0.03,
|
difficulty = 0.03,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "dig",
|
type = "dig",
|
||||||
@ -333,7 +278,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_lumberjack_semipro", {
|
awards.register_award("award_lumberjack_semipro", {
|
||||||
title = S("Semi-pro Lumberjack"),
|
title = S("Semi-pro Lumberjack"),
|
||||||
description = S("Dig 216 tree blocks."),
|
description = S("Dig 216 tree blocks."),
|
||||||
icon = "awards_semi_pro_lumberjack.png^awards_level3.png",
|
icon = "default_tree.png^awards_level3.png",
|
||||||
difficulty = 0.03,
|
difficulty = 0.03,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "dig",
|
type = "dig",
|
||||||
@ -346,7 +291,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_lumberjack_professional", {
|
awards.register_award("award_lumberjack_professional", {
|
||||||
title = S("Professional Lumberjack"),
|
title = S("Professional Lumberjack"),
|
||||||
description = S("Dig 1,296 tree blocks."),
|
description = S("Dig 1,296 tree blocks."),
|
||||||
icon = "awards_professional_lumberjack.png^awards_level4.png",
|
icon = "default_tree.png^awards_level4.png",
|
||||||
difficulty = 0.03,
|
difficulty = 0.03,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "dig",
|
type = "dig",
|
||||||
@ -359,7 +304,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_junglebaby", {
|
awards.register_award("award_junglebaby", {
|
||||||
title = S("Junglebaby"),
|
title = S("Junglebaby"),
|
||||||
description = S("Dig 100 jungle tree blocks."),
|
description = S("Dig 100 jungle tree blocks."),
|
||||||
icon = "awards_junglebaby.png^awards_level1.png",
|
icon = "default_jungletree.png^awards_level1.png",
|
||||||
difficulty = 0.05,
|
difficulty = 0.05,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "dig",
|
type = "dig",
|
||||||
@ -372,7 +317,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_jungleman", {
|
awards.register_award("award_jungleman", {
|
||||||
title = S("Jungleman"),
|
title = S("Jungleman"),
|
||||||
description = S("Dig 1,000 jungle tree blocks."),
|
description = S("Dig 1,000 jungle tree blocks."),
|
||||||
icon = "awards_jungleman.png^awards_level2.png",
|
icon = "default_jungletree.png^awards_level2.png",
|
||||||
difficulty = 0.05,
|
difficulty = 0.05,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "dig",
|
type = "dig",
|
||||||
@ -385,7 +330,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_mesefind", {
|
awards.register_award("award_mesefind", {
|
||||||
title = S("First Mese Find"),
|
title = S("First Mese Find"),
|
||||||
description = S("Mine your first mese ore."),
|
description = S("Mine your first mese ore."),
|
||||||
icon = "awards_first_mese_find.png",
|
icon = "default_stone.png^default_mineral_mese.png",
|
||||||
background = "awards_bg_mining.png",
|
background = "awards_bg_mining.png",
|
||||||
difficulty = 1,
|
difficulty = 1,
|
||||||
trigger = {
|
trigger = {
|
||||||
@ -400,7 +345,7 @@ if minetest.get_modpath("default") then
|
|||||||
secret = true,
|
secret = true,
|
||||||
title = S("Mese Mastery"),
|
title = S("Mese Mastery"),
|
||||||
description = S("Mine a mese block."),
|
description = S("Mine a mese block."),
|
||||||
icon = "awards_mese_mastery.png",
|
icon = "default_mese_block.png",
|
||||||
background = "awards_bg_mining.png",
|
background = "awards_bg_mining.png",
|
||||||
difficulty = 1.1,
|
difficulty = 1.1,
|
||||||
trigger = {
|
trigger = {
|
||||||
@ -414,7 +359,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_youre_a_copper", {
|
awards.register_award("award_youre_a_copper", {
|
||||||
title = S("You’re a copper"),
|
title = S("You’re a copper"),
|
||||||
description = S("Dig 1,000 copper ores."),
|
description = S("Dig 1,000 copper ores."),
|
||||||
icon = "awards_youre_a_copper.png",
|
icon = "default_stone.png^default_mineral_copper.png",
|
||||||
background = "awards_bg_mining.png",
|
background = "awards_bg_mining.png",
|
||||||
difficulty = 0.2,
|
difficulty = 0.2,
|
||||||
trigger = {
|
trigger = {
|
||||||
@ -428,7 +373,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_mine2", {
|
awards.register_award("award_mine2", {
|
||||||
title = S("Mini Miner"),
|
title = S("Mini Miner"),
|
||||||
description = S("Dig 100 stone blocks."),
|
description = S("Dig 100 stone blocks."),
|
||||||
icon = "awards_mini_miner.png^awards_level1.png",
|
icon = "awards_miniminer.png^awards_level1.png",
|
||||||
background = "awards_bg_mining.png",
|
background = "awards_bg_mining.png",
|
||||||
difficulty = 0.02,
|
difficulty = 0.02,
|
||||||
trigger = {
|
trigger = {
|
||||||
@ -442,7 +387,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_mine3", {
|
awards.register_award("award_mine3", {
|
||||||
title = S("Hardened Miner"),
|
title = S("Hardened Miner"),
|
||||||
description = S("Dig 1,000 stone blocks."),
|
description = S("Dig 1,000 stone blocks."),
|
||||||
icon = "awards_hardened_miner.png^awards_level2.png",
|
icon = "awards_miniminer.png^awards_level2.png",
|
||||||
background = "awards_bg_mining.png",
|
background = "awards_bg_mining.png",
|
||||||
difficulty = 0.02,
|
difficulty = 0.02,
|
||||||
trigger = {
|
trigger = {
|
||||||
@ -456,7 +401,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_mine4", {
|
awards.register_award("award_mine4", {
|
||||||
title = S("Master Miner"),
|
title = S("Master Miner"),
|
||||||
description = S("Dig 10,000 stone blocks."),
|
description = S("Dig 10,000 stone blocks."),
|
||||||
icon = "awards_master_miner.png^awards_level3.png",
|
icon = "awards_miniminer.png^awards_level3.png",
|
||||||
background = "awards_bg_mining.png",
|
background = "awards_bg_mining.png",
|
||||||
difficulty = 0.02,
|
difficulty = 0.02,
|
||||||
trigger = {
|
trigger = {
|
||||||
@ -470,7 +415,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_marchand_de_sable", {
|
awards.register_award("award_marchand_de_sable", {
|
||||||
title = S("Marchand De Sable"),
|
title = S("Marchand De Sable"),
|
||||||
description = S("Dig 1,000 sand."),
|
description = S("Dig 1,000 sand."),
|
||||||
icon = "awards_marchand_de_sable.png",
|
icon = "default_sand.png",
|
||||||
background = "awards_bg_mining.png",
|
background = "awards_bg_mining.png",
|
||||||
difficulty = 0.05,
|
difficulty = 0.05,
|
||||||
trigger = {
|
trigger = {
|
||||||
@ -483,7 +428,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("awards_crafter_of_sticks", {
|
awards.register_award("awards_crafter_of_sticks", {
|
||||||
title = S("Crafter of Sticks"),
|
title = S("Crafter of Sticks"),
|
||||||
description = S("Craft 100 sticks."),
|
description = S("Craft 100 sticks."),
|
||||||
icon = "awards_crafter_of_sticks.png",
|
icon = "default_stick.png",
|
||||||
difficulty = 0.01,
|
difficulty = 0.01,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
@ -495,7 +440,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("awards_junglegrass", {
|
awards.register_award("awards_junglegrass", {
|
||||||
title = S("Jungle Discoverer"),
|
title = S("Jungle Discoverer"),
|
||||||
description = S("Mine your first jungle grass."),
|
description = S("Mine your first jungle grass."),
|
||||||
icon = "awards_jungle_discoverer.png",
|
icon = "default_junglegrass.png",
|
||||||
difficulty = 0.009,
|
difficulty = 0.009,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "dig",
|
type = "dig",
|
||||||
@ -507,7 +452,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("awards_grass", {
|
awards.register_award("awards_grass", {
|
||||||
title = S("Grasslands Discoverer"),
|
title = S("Grasslands Discoverer"),
|
||||||
description = S("Mine some grass."),
|
description = S("Mine some grass."),
|
||||||
icon = "awards_grasslands_discoverer.png",
|
icon = "default_grass_3.png",
|
||||||
difficulty = 0.009,
|
difficulty = 0.009,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "dig",
|
type = "dig",
|
||||||
@ -519,7 +464,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("awards_dry_grass", {
|
awards.register_award("awards_dry_grass", {
|
||||||
title = S("Savannah Discoverer"),
|
title = S("Savannah Discoverer"),
|
||||||
description = S("Mine some dry grass."),
|
description = S("Mine some dry grass."),
|
||||||
icon = "awards_savannah_discoverer.png",
|
icon = "default_dry_grass_3.png",
|
||||||
difficulty = 0.009,
|
difficulty = 0.009,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "dig",
|
type = "dig",
|
||||||
@ -531,7 +476,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("awards_cactus", {
|
awards.register_award("awards_cactus", {
|
||||||
title = S("Desert Discoverer"),
|
title = S("Desert Discoverer"),
|
||||||
description = S("Mine your first cactus."),
|
description = S("Mine your first cactus."),
|
||||||
icon = "awards_desert_discoverer.png",
|
icon = "default_cactus_side.png",
|
||||||
difficulty = 0.03,
|
difficulty = 0.03,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "dig",
|
type = "dig",
|
||||||
@ -543,7 +488,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("awards_dry_shrub", {
|
awards.register_award("awards_dry_shrub", {
|
||||||
title = S("Far Lands"),
|
title = S("Far Lands"),
|
||||||
description = S("Mine your first dry shrub."),
|
description = S("Mine your first dry shrub."),
|
||||||
icon = "awards_far_lands.png",
|
icon = "default_dry_shrub.png",
|
||||||
difficulty = 0.009,
|
difficulty = 0.009,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "dig",
|
type = "dig",
|
||||||
@ -555,7 +500,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("awards_ice", {
|
awards.register_award("awards_ice", {
|
||||||
title = S("Glacier Discoverer"),
|
title = S("Glacier Discoverer"),
|
||||||
description = S("Mine your first ice."),
|
description = S("Mine your first ice."),
|
||||||
icon = "awards_glacier_discoverer.png",
|
icon = "default_ice.png",
|
||||||
difficulty = 0.02,
|
difficulty = 0.02,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "dig",
|
type = "dig",
|
||||||
@ -568,7 +513,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("awards_snowblock", {
|
awards.register_award("awards_snowblock", {
|
||||||
title = S("Very Simple Snow Man"),
|
title = S("Very Simple Snow Man"),
|
||||||
description = S("Place two snow blocks."),
|
description = S("Place two snow blocks."),
|
||||||
icon = "awards_very_simple_snow_man.png",
|
icon = "default_snow.png",
|
||||||
difficulty = 0.02,
|
difficulty = 0.02,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "place",
|
type = "place",
|
||||||
@ -580,7 +525,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("awards_gold_ore", {
|
awards.register_award("awards_gold_ore", {
|
||||||
title = S("First Gold Find"),
|
title = S("First Gold Find"),
|
||||||
description = S("Mine your first gold ore."),
|
description = S("Mine your first gold ore."),
|
||||||
icon = "awards_first_gold_find.png^awards_level1.png",
|
icon = "default_stone.png^default_mineral_gold.png^awards_level1.png",
|
||||||
background = "awards_bg_mining.png",
|
background = "awards_bg_mining.png",
|
||||||
difficulty = 0.9,
|
difficulty = 0.9,
|
||||||
trigger = {
|
trigger = {
|
||||||
@ -593,7 +538,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("awards_gold_rush", {
|
awards.register_award("awards_gold_rush", {
|
||||||
title = S("Gold Rush"),
|
title = S("Gold Rush"),
|
||||||
description = S("Mine 45 gold ores."),
|
description = S("Mine 45 gold ores."),
|
||||||
icon = "awards_gold_rush.png^awards_level2.png",
|
icon = "default_stone.png^default_mineral_gold.png^awards_level2.png",
|
||||||
background = "awards_bg_mining.png",
|
background = "awards_bg_mining.png",
|
||||||
difficulty = 0.9,
|
difficulty = 0.9,
|
||||||
trigger = {
|
trigger = {
|
||||||
@ -606,7 +551,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("awards_diamond_ore", {
|
awards.register_award("awards_diamond_ore", {
|
||||||
title = S("Wow, I am Diamonds!"),
|
title = S("Wow, I am Diamonds!"),
|
||||||
description = S("Mine your first diamond ore."),
|
description = S("Mine your first diamond ore."),
|
||||||
icon = "awards_wow_i_am_diamonds.png^awards_level1.png",
|
icon = "default_stone.png^default_mineral_diamond.png^awards_level1.png",
|
||||||
difficulty = 1,
|
difficulty = 1,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "dig",
|
type = "dig",
|
||||||
@ -618,7 +563,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("awards_diamond_rush", {
|
awards.register_award("awards_diamond_rush", {
|
||||||
title = S("Girl's Best Friend"),
|
title = S("Girl's Best Friend"),
|
||||||
description = S("Mine 18 diamond ores."),
|
description = S("Mine 18 diamond ores."),
|
||||||
icon = "awards_girls_best_friend.png^awards_level2.png",
|
icon = "default_stone.png^default_mineral_diamond.png^awards_level2.png",
|
||||||
background = "awards_bg_mining.png",
|
background = "awards_bg_mining.png",
|
||||||
difficulty = 1,
|
difficulty = 1,
|
||||||
trigger = {
|
trigger = {
|
||||||
@ -631,7 +576,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("awards_diamondblock", {
|
awards.register_award("awards_diamondblock", {
|
||||||
title = S("Hardest Block on Earth"),
|
title = S("Hardest Block on Earth"),
|
||||||
description = S("Craft a diamond block."),
|
description = S("Craft a diamond block."),
|
||||||
icon = "awards_hardest_block_on_earth.png",
|
icon = "default_diamond_block.png",
|
||||||
difficulty = 1.1,
|
difficulty = 1.1,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
@ -643,7 +588,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("awards_mossycobble", {
|
awards.register_award("awards_mossycobble", {
|
||||||
title = S("In the Dungeon"),
|
title = S("In the Dungeon"),
|
||||||
description = S("Mine a mossy cobblestone."),
|
description = S("Mine a mossy cobblestone."),
|
||||||
icon = "awards_in_the_dungeon.png",
|
icon = "default_mossycobble.png",
|
||||||
difficulty = 0.9,
|
difficulty = 0.9,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "dig",
|
type = "dig",
|
||||||
@ -655,7 +600,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_furnace", {
|
awards.register_award("award_furnace", {
|
||||||
title = S("Smelter"),
|
title = S("Smelter"),
|
||||||
description = S("Craft 10 furnaces."),
|
description = S("Craft 10 furnaces."),
|
||||||
icon = "awards_smelter.png",
|
icon = "default_furnace_front.png",
|
||||||
difficulty = 0.08,
|
difficulty = 0.08,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
@ -667,7 +612,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_chest", {
|
awards.register_award("award_chest", {
|
||||||
title = S("Treasurer"),
|
title = S("Treasurer"),
|
||||||
description = S("Craft 15 chests."),
|
description = S("Craft 15 chests."),
|
||||||
icon = "awards_treasurer.png",
|
icon = "default_chest_front.png",
|
||||||
difficulty = 0.08,
|
difficulty = 0.08,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
@ -677,9 +622,9 @@ if minetest.get_modpath("default") then
|
|||||||
})
|
})
|
||||||
|
|
||||||
awards.register_award("award_chest2", {
|
awards.register_award("award_chest2", {
|
||||||
title = S("Banker"),
|
title = S("Bankier"),
|
||||||
description = S("Craft 30 locked chests."),
|
description = S("Craft 30 locked chests."),
|
||||||
icon = "awards_banker.png",
|
icon = "default_chest_lock.png",
|
||||||
difficulty = 0.08,
|
difficulty = 0.08,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
@ -691,7 +636,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_brick", {
|
awards.register_award("award_brick", {
|
||||||
title = S("Bricker"),
|
title = S("Bricker"),
|
||||||
description = S("Craft 200 brick blocks."),
|
description = S("Craft 200 brick blocks."),
|
||||||
icon = "awards_bricker.png",
|
icon = "default_brick.png",
|
||||||
difficulty = 0.03,
|
difficulty = 0.03,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
@ -703,7 +648,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_obsidianbrick", {
|
awards.register_award("award_obsidianbrick", {
|
||||||
title = S("House of Obsidian"),
|
title = S("House of Obsidian"),
|
||||||
description = S("Craft 100 obsidian bricks."),
|
description = S("Craft 100 obsidian bricks."),
|
||||||
icon = "awards_house_of_obsidian.png",
|
icon = "default_obsidian_brick.png",
|
||||||
difficulty = 0.4,
|
difficulty = 0.4,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
@ -715,7 +660,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_placestone", {
|
awards.register_award("award_placestone", {
|
||||||
title = S("Build a Cave"),
|
title = S("Build a Cave"),
|
||||||
description = S("Place 100 stone."),
|
description = S("Place 100 stone."),
|
||||||
icon = "awards_build_a_cave.png",
|
icon = "default_stone.png",
|
||||||
difficulty = 0.1,
|
difficulty = 0.1,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "place",
|
type = "place",
|
||||||
@ -727,7 +672,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_woodladder", {
|
awards.register_award("award_woodladder", {
|
||||||
title = S("Long Ladder"),
|
title = S("Long Ladder"),
|
||||||
description = S("Place 400 wooden ladders."),
|
description = S("Place 400 wooden ladders."),
|
||||||
icon = "awards_long_ladder.png",
|
icon = "default_ladder_wood.png",
|
||||||
difficulty = 0.1,
|
difficulty = 0.1,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "place",
|
type = "place",
|
||||||
@ -739,7 +684,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_steelladder", {
|
awards.register_award("award_steelladder", {
|
||||||
title = S("Industrial Age"),
|
title = S("Industrial Age"),
|
||||||
description = S("Place 40 steel ladders."),
|
description = S("Place 40 steel ladders."),
|
||||||
icon = "awards_industrial_age.png",
|
icon = "default_ladder_steel.png",
|
||||||
difficulty = 1,
|
difficulty = 1,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "place",
|
type = "place",
|
||||||
@ -751,7 +696,7 @@ if minetest.get_modpath("default") then
|
|||||||
awards.register_award("award_apples", {
|
awards.register_award("award_apples", {
|
||||||
title = S("Yummy!"),
|
title = S("Yummy!"),
|
||||||
description = S("Eat 80 apples."),
|
description = S("Eat 80 apples."),
|
||||||
icon = "awards_yummy.png",
|
icon = "default_apple.png",
|
||||||
difficulty = 0.1,
|
difficulty = 0.1,
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "eat",
|
type = "eat",
|
||||||
@ -759,57 +704,12 @@ if minetest.get_modpath("default") then
|
|||||||
target = 80
|
target = 80
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Died in flowing lava
|
|
||||||
awards.register_award("award_in_the_flow", {
|
|
||||||
title = S("In the Flow"),
|
|
||||||
description = S("Die in flowing lava."),
|
|
||||||
secret = true,
|
|
||||||
})
|
|
||||||
awards.register_on_death(function(player,data)
|
|
||||||
local pos = player:get_pos()
|
|
||||||
if pos and (minetest.find_node_near(pos, 2, "default:lava_flowing") ~= nil or
|
|
||||||
minetest.find_node_near(pos, 2, "default:lava_source") ~= nil) then
|
|
||||||
return "award_in_the_flow"
|
|
||||||
end
|
|
||||||
return nil
|
|
||||||
end)
|
|
||||||
|
|
||||||
-- Die near diamond ore
|
|
||||||
awards.register_award("award_this_is_sad", {
|
|
||||||
title = S("This is Sad"),
|
|
||||||
description = S("Die near diamond ore."),
|
|
||||||
secret = true,
|
|
||||||
})
|
|
||||||
awards.register_on_death(function(player,data)
|
|
||||||
local pos = player:get_pos()
|
|
||||||
if pos and minetest.find_node_near(pos, 5, "default:stone_with_diamond") ~= nil then
|
|
||||||
return "award_this_is_sad"
|
|
||||||
end
|
|
||||||
return nil
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("bones") then
|
|
||||||
-- Die near bones
|
|
||||||
awards.register_award("award_the_stack", {
|
|
||||||
title = S("Graveyard"),
|
|
||||||
description = S("Die near bones."),
|
|
||||||
secret = true,
|
|
||||||
})
|
|
||||||
awards.register_on_death(function(player,data)
|
|
||||||
local pos = player:get_pos()
|
|
||||||
if pos and minetest.find_node_near(pos, 5, "bones:bones") ~= nil then
|
|
||||||
return "award_the_stack"
|
|
||||||
end
|
|
||||||
return nil
|
|
||||||
end)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if minetest.get_modpath("vessels") then
|
if minetest.get_modpath("vessels") then
|
||||||
awards.register_award("award_vessels_shelf", {
|
awards.register_award("award_vessels_shelf", {
|
||||||
title = S("Glasser"),
|
title = S("Glasser"),
|
||||||
icon = "awards_glasser.png",
|
icon = "vessels_shelf.png",
|
||||||
description = S("Craft 14 vessels shelves."),
|
description = S("Craft 14 vessels shelves."),
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
@ -823,7 +723,7 @@ if minetest.get_modpath("farming") then
|
|||||||
awards.register_award("awards_farmer", {
|
awards.register_award("awards_farmer", {
|
||||||
title = S("Farming Skills Acquired"),
|
title = S("Farming Skills Acquired"),
|
||||||
description = S("Harvest a fully grown wheat plant."),
|
description = S("Harvest a fully grown wheat plant."),
|
||||||
icon = "awards_farming_skills_acquired.png^awards_level1.png",
|
icon = "farming_wheat_8.png^awards_level1.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "dig",
|
type = "dig",
|
||||||
node = "farming:wheat_8",
|
node = "farming:wheat_8",
|
||||||
@ -833,7 +733,7 @@ if minetest.get_modpath("farming") then
|
|||||||
awards.register_award("awards_farmer2", {
|
awards.register_award("awards_farmer2", {
|
||||||
title = S("Field Worker"),
|
title = S("Field Worker"),
|
||||||
description = S("Harvest 25 fully grown wheat plants."),
|
description = S("Harvest 25 fully grown wheat plants."),
|
||||||
icon = "awards_field_worker.png^awards_level2.png",
|
icon = "farming_wheat_8.png^awards_level2.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "dig",
|
type = "dig",
|
||||||
node = "farming:wheat_8",
|
node = "farming:wheat_8",
|
||||||
@ -844,7 +744,7 @@ if minetest.get_modpath("farming") then
|
|||||||
awards.register_award("awards_farmer3", {
|
awards.register_award("awards_farmer3", {
|
||||||
title = S("Aspiring Farmer"),
|
title = S("Aspiring Farmer"),
|
||||||
description = S("Harvest 125 fully grown wheat plants."),
|
description = S("Harvest 125 fully grown wheat plants."),
|
||||||
icon = "awards_aspiring_farmer.png^awards_level3.png",
|
icon = "farming_wheat_8.png^awards_level3.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "dig",
|
type = "dig",
|
||||||
node = "farming:wheat_8",
|
node = "farming:wheat_8",
|
||||||
@ -855,7 +755,7 @@ if minetest.get_modpath("farming") then
|
|||||||
awards.register_award("awards_farmer4", {
|
awards.register_award("awards_farmer4", {
|
||||||
title = S("Wheat Magnate"),
|
title = S("Wheat Magnate"),
|
||||||
description = S("Harvest 625 fully grown wheat plants."),
|
description = S("Harvest 625 fully grown wheat plants."),
|
||||||
icon = "awards_wheat_magnate.png^awards_level4.png",
|
icon = "farming_wheat_8.png^awards_level4.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "dig",
|
type = "dig",
|
||||||
node = "farming:wheat_8",
|
node = "farming:wheat_8",
|
||||||
@ -866,7 +766,7 @@ if minetest.get_modpath("farming") then
|
|||||||
awards.register_award("award_bread", {
|
awards.register_award("award_bread", {
|
||||||
title = S("Baker"),
|
title = S("Baker"),
|
||||||
description = S("Eat 10 loaves of bread."),
|
description = S("Eat 10 loaves of bread."),
|
||||||
icon = "awards_baker.png",
|
icon = "farming_bread.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "eat",
|
type = "eat",
|
||||||
item = "farming:bread",
|
item = "farming:bread",
|
||||||
@ -880,7 +780,7 @@ if minetest.get_modpath("wool") and minetest.get_modpath("farming") then
|
|||||||
awards.register_award("awards_wool", {
|
awards.register_award("awards_wool", {
|
||||||
title = S("Wool Over Your Eyes"),
|
title = S("Wool Over Your Eyes"),
|
||||||
description = S("Craft 250 white wool."),
|
description = S("Craft 250 white wool."),
|
||||||
icon = "awards_wool_over_your_eyes.png",
|
icon = "wool_white.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
item = "wool:white",
|
item = "wool:white",
|
||||||
@ -893,7 +793,7 @@ if minetest.get_modpath("beds") then
|
|||||||
awards.register_award("award_bed", {
|
awards.register_award("award_bed", {
|
||||||
title = S("Hotelier"),
|
title = S("Hotelier"),
|
||||||
description = S("Craft 15 fancy beds."),
|
description = S("Craft 15 fancy beds."),
|
||||||
icon = "awards_hotelier.png",
|
icon = "beds_bed_fancy.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
item= "beds:fancy_bed_bottom",
|
item= "beds:fancy_bed_bottom",
|
||||||
@ -906,7 +806,7 @@ if minetest.get_modpath("stairs") then
|
|||||||
awards.register_award("award_stairs_goldblock", {
|
awards.register_award("award_stairs_goldblock", {
|
||||||
title = S("Filthy Rich"),
|
title = S("Filthy Rich"),
|
||||||
description = S("Craft 24 gold block stairs."),
|
description = S("Craft 24 gold block stairs."),
|
||||||
icon = "awards_filthy_rich.png",
|
icon = "default_gold_block.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
item= "stairs:stair_goldblock",
|
item= "stairs:stair_goldblock",
|
||||||
@ -919,7 +819,7 @@ if minetest.get_modpath("dye") then
|
|||||||
awards.register_award("awards_dye_red", {
|
awards.register_award("awards_dye_red", {
|
||||||
title = S("Roses Are Red"),
|
title = S("Roses Are Red"),
|
||||||
description = S("Craft 400 red dyes."),
|
description = S("Craft 400 red dyes."),
|
||||||
icon = "awards_roses_are_red.png",
|
icon = "dye_red.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
item = "dye:red",
|
item = "dye:red",
|
||||||
@ -930,7 +830,7 @@ if minetest.get_modpath("dye") then
|
|||||||
awards.register_award("awards_dye_yellow", {
|
awards.register_award("awards_dye_yellow", {
|
||||||
title = S("Dandelions are Yellow"),
|
title = S("Dandelions are Yellow"),
|
||||||
description = S("Craft 400 yellow dyes."),
|
description = S("Craft 400 yellow dyes."),
|
||||||
icon = "awards_dandelions_are_yellow.png",
|
icon = "dye_yellow.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
item = "dye:yellow",
|
item = "dye:yellow",
|
||||||
@ -941,7 +841,7 @@ if minetest.get_modpath("dye") then
|
|||||||
awards.register_award("awards_dye_blue", {
|
awards.register_award("awards_dye_blue", {
|
||||||
title = S("Geraniums are Blue"),
|
title = S("Geraniums are Blue"),
|
||||||
description = S("Craft 400 blue dyes."),
|
description = S("Craft 400 blue dyes."),
|
||||||
icon = "awards_geraniums_are_blue.png",
|
icon = "dye_blue.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
item= "dye:blue",
|
item= "dye:blue",
|
||||||
@ -952,7 +852,7 @@ if minetest.get_modpath("dye") then
|
|||||||
awards.register_award("awards_dye_white", {
|
awards.register_award("awards_dye_white", {
|
||||||
title = S("White Color Stock"),
|
title = S("White Color Stock"),
|
||||||
description = S("Craft 100 white dyes."),
|
description = S("Craft 100 white dyes."),
|
||||||
icon = "awards_white_color_stock.png",
|
icon = "dye_white.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
item= "dye:white",
|
item= "dye:white",
|
||||||
@ -965,7 +865,7 @@ if minetest.get_modpath("flowers") then
|
|||||||
awards.register_award("awards_brown_mushroom1", {
|
awards.register_award("awards_brown_mushroom1", {
|
||||||
title = S("Tasty Mushrooms"),
|
title = S("Tasty Mushrooms"),
|
||||||
description = S("Eat 3 brown mushrooms."),
|
description = S("Eat 3 brown mushrooms."),
|
||||||
icon = "awards_tasty_mushrooms.png^awards_level1.png",
|
icon = "flowers_mushroom_brown.png^awards_level1.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "eat",
|
type = "eat",
|
||||||
item= "flowers:mushroom_brown",
|
item= "flowers:mushroom_brown",
|
||||||
@ -975,7 +875,7 @@ if minetest.get_modpath("flowers") then
|
|||||||
awards.register_award("awards_brown_mushroom2", {
|
awards.register_award("awards_brown_mushroom2", {
|
||||||
title = S("Mushroom Lover"),
|
title = S("Mushroom Lover"),
|
||||||
description = S("Eat 33 brown mushrooms."),
|
description = S("Eat 33 brown mushrooms."),
|
||||||
icon = "awards_mushroom_lover.png^awards_level2.png",
|
icon = "flowers_mushroom_brown.png^awards_level2.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "eat",
|
type = "eat",
|
||||||
item= "flowers:mushroom_brown",
|
item= "flowers:mushroom_brown",
|
||||||
@ -985,7 +885,7 @@ if minetest.get_modpath("flowers") then
|
|||||||
awards.register_award("awards_brown_mushroom3", {
|
awards.register_award("awards_brown_mushroom3", {
|
||||||
title = S("Underground Mushroom Farmer"),
|
title = S("Underground Mushroom Farmer"),
|
||||||
description = S("Eat 333 brown mushrooms."),
|
description = S("Eat 333 brown mushrooms."),
|
||||||
icon = "awards_underground_mushroom_farmer.png^awards_level3.png",
|
icon = "flowers_mushroom_brown.png^awards_level3.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "eat",
|
type = "eat",
|
||||||
item= "flowers:mushroom_brown",
|
item= "flowers:mushroom_brown",
|
||||||
@ -1012,15 +912,15 @@ minetest.after(0, function()
|
|||||||
|
|
||||||
awards.register_award("awards_builder1", {
|
awards.register_award("awards_builder1", {
|
||||||
title = S("Builder"),
|
title = S("Builder"),
|
||||||
icon = "awards_builder.png^awards_level1.png",
|
icon = "awards_house.png^awards_level1.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "place",
|
type = "place",
|
||||||
target = 1000,
|
target = 1000,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
awards.register_award("awards_builder2", {
|
awards.register_award("awards_builder2", {
|
||||||
title = S("Engineer"),
|
title = S("Constructor"),
|
||||||
icon = "awards_engineer.png^awards_level2.png",
|
icon = "awards_house.png^awards_level2.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "place",
|
type = "place",
|
||||||
target = 5000,
|
target = 5000,
|
||||||
@ -1028,7 +928,7 @@ minetest.after(0, function()
|
|||||||
})
|
})
|
||||||
awards.register_award("awards_builder3", {
|
awards.register_award("awards_builder3", {
|
||||||
title = S("Architect"),
|
title = S("Architect"),
|
||||||
icon = "awards_architect.png^awards_level3.png",
|
icon = "awards_house.png^awards_level3.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "place",
|
type = "place",
|
||||||
target = 10000,
|
target = 10000,
|
||||||
@ -1036,7 +936,7 @@ minetest.after(0, function()
|
|||||||
})
|
})
|
||||||
awards.register_award("awards_builder4", {
|
awards.register_award("awards_builder4", {
|
||||||
title = S("Master Architect"),
|
title = S("Master Architect"),
|
||||||
icon = "awards_master_architect.png^awards_level4.png",
|
icon = "awards_house.png^awards_level4.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "place",
|
type = "place",
|
||||||
target = 25000,
|
target = 25000,
|
||||||
@ -1050,7 +950,7 @@ if minetest.get_modpath("nyancat") then
|
|||||||
secret = true,
|
secret = true,
|
||||||
title = S("A Cat in a Pop-Tart?!"),
|
title = S("A Cat in a Pop-Tart?!"),
|
||||||
description = S("Mine a nyan cat."),
|
description = S("Mine a nyan cat."),
|
||||||
icon = "awards_a_cat_in_a_pop_tart.png",
|
icon = "nyancat_front.png",
|
||||||
trigger = {
|
trigger = {
|
||||||
type = "dig",
|
type = "dig",
|
||||||
node = "nyancat:nyancat",
|
node = "nyancat:nyancat",
|
||||||
@ -1058,53 +958,3 @@ if minetest.get_modpath("nyancat") then
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
if minetest.get_modpath("pipeworks") then
|
|
||||||
awards.register_award("award_pipeworks_transporter", {
|
|
||||||
title = S("Item transporter"),
|
|
||||||
description = S("Place 10000 tubes."),
|
|
||||||
difficulty = 0.05,
|
|
||||||
trigger = {
|
|
||||||
type = "place",
|
|
||||||
node = "pipeworks:tube_1",
|
|
||||||
target = 2000,
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
awards.register_award("award_pipeworks_automator", {
|
|
||||||
title = S("Factory"),
|
|
||||||
description = S("Place 5 autocrafters."),
|
|
||||||
difficulty = 3,
|
|
||||||
trigger = {
|
|
||||||
type = "place",
|
|
||||||
node = "pipeworks:autocrafter",
|
|
||||||
target = 5,
|
|
||||||
}
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("mesecons") then
|
|
||||||
awards.register_award("awards_mesecons", {
|
|
||||||
title = S("Electical Engineer"),
|
|
||||||
description = S("Place 500 mesecon wires."),
|
|
||||||
difficulty = 0.2,
|
|
||||||
trigger = {
|
|
||||||
type = "place",
|
|
||||||
node = "mesecons:wire_00000000_off",
|
|
||||||
target = 500,
|
|
||||||
}
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("basic_materials") then
|
|
||||||
awards.register_award("awards_oil", {
|
|
||||||
title = S("Oil Typhoon"),
|
|
||||||
description = S("Craft 500 times oil extract."),
|
|
||||||
|
|
||||||
trigger = {
|
|
||||||
type = "craft",
|
|
||||||
item = "basic_materials:oil_extract",
|
|
||||||
target = 500,
|
|
||||||
}
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
@ -2,28 +2,39 @@
|
|||||||
|
|
||||||
local S = awards.gettext
|
local S = awards.gettext
|
||||||
|
|
||||||
|
minetest.register_privilege("awards_admin", { description = "Can manage awards of given player" })
|
||||||
|
|
||||||
minetest.register_chatcommand("awards", {
|
minetest.register_chatcommand("awards", {
|
||||||
params = S("[c|clear|disable|enable]"),
|
params = "[c|clear|disable|enable] [player_name]",
|
||||||
description = S("Show, clear, disable or enable your awards"),
|
description = "Show, clear, disable or enable player's awards",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
if param == "clear" then
|
if not minetest.check_player_privs(name, { awards_admin = true }) then
|
||||||
awards.clear_player(name)
|
return false, "You need awards_admin privilege!"
|
||||||
minetest.chat_send_player(name,
|
end
|
||||||
S("All your awards and statistics have been cleared. You can now start again."))
|
local action, playern = param:split(" ")[1], param:split(" ")[2] or name
|
||||||
elseif param == "disable" then
|
if action == "clear" then
|
||||||
awards.disable(name)
|
awards.clear_player(playern)
|
||||||
minetest.chat_send_player(name, S("You have disabled awards."))
|
minetest.chat_send_player(playern,
|
||||||
elseif param == "enable" then
|
S("All your awards and statistics have been cleared. You can now start again."))
|
||||||
awards.enable(name)
|
minetest.chat_send_player(name, "All awards and statistics of "..playern.." have been cleared.")
|
||||||
minetest.chat_send_player(name, S("You have enabled awards."))
|
elseif action == "disable" then
|
||||||
elseif param == "c" then
|
awards.disable(playern)
|
||||||
awards.show_to(name, name, nil, true)
|
minetest.chat_send_player(playern, "Your awards are disabled.")
|
||||||
else
|
minetest.chat_send_player(name, "You have disabled awards of "..playern..".")
|
||||||
|
elseif action == "enable" then
|
||||||
|
awards.enable(playern)
|
||||||
|
minetest.chat_send_player(playern, "Your awards are enabled.")
|
||||||
|
minetest.chat_send_player(name, "You have enabled awards of "..playern..".")
|
||||||
|
elseif action == "c" then
|
||||||
|
awards.show_to(playern, name, nil, true)
|
||||||
|
elseif not action then
|
||||||
awards.show_to(name, name, nil, false)
|
awards.show_to(name, name, nil, false)
|
||||||
|
else
|
||||||
|
awards.show_to(action, name, nil, true)
|
||||||
end
|
end
|
||||||
|
|
||||||
if (param == "disable" or param == "enable") and minetest.global_exists("sfinv") then
|
if (action == "disable" or action == "enable") and minetest.global_exists("sfinv") and not minetest.get_modpath("unified_inventory") then
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = minetest.get_player_by_name(playern)
|
||||||
if player then
|
if player then
|
||||||
sfinv.set_player_inventory_formspec(player)
|
sfinv.set_player_inventory_formspec(player)
|
||||||
end
|
end
|
||||||
|
87
src/gui.lua
87
src/gui.lua
@ -2,9 +2,73 @@
|
|||||||
|
|
||||||
local S = awards.gettext
|
local S = awards.gettext
|
||||||
|
|
||||||
|
local function order_awards(name)
|
||||||
|
local hash_is_unlocked = {}
|
||||||
|
local retval = {}
|
||||||
|
|
||||||
|
local data = awards.player(name)
|
||||||
|
if data and data.unlocked then
|
||||||
|
for awardname, _ in pairs(data.unlocked) do
|
||||||
|
local def = awards.registered_awards[awardname]
|
||||||
|
if def then
|
||||||
|
hash_is_unlocked[awardname] = true
|
||||||
|
local score = -100000
|
||||||
|
|
||||||
|
local difficulty = def.difficulty or 1
|
||||||
|
if def.trigger and def.trigger.target then
|
||||||
|
difficulty = difficulty * def.trigger.target
|
||||||
|
end
|
||||||
|
score = score + difficulty
|
||||||
|
|
||||||
|
retval[#retval + 1] = {
|
||||||
|
name = awardname,
|
||||||
|
def = def,
|
||||||
|
unlocked = true,
|
||||||
|
started = true,
|
||||||
|
score = score,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
for _, def in pairs(awards.registered_awards) do
|
||||||
|
if not hash_is_unlocked[def.name] and def:can_unlock(data) then
|
||||||
|
local started = false
|
||||||
|
local score = def.difficulty or 1
|
||||||
|
if def.secret then
|
||||||
|
score = 1000000
|
||||||
|
elseif def.trigger and def.trigger.target and def.getProgress then
|
||||||
|
local progress = def:getProgress(data).perc
|
||||||
|
score = score * (1 - progress) * def.trigger.target
|
||||||
|
if progress < 0.001 then
|
||||||
|
score = score + 100
|
||||||
|
else
|
||||||
|
started = true
|
||||||
|
end
|
||||||
|
else
|
||||||
|
score = 100
|
||||||
|
end
|
||||||
|
|
||||||
|
retval[#retval + 1] = {
|
||||||
|
name = def.name,
|
||||||
|
def = def,
|
||||||
|
unlocked = false,
|
||||||
|
started = started,
|
||||||
|
score = score,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
table.sort(retval, function(a, b)
|
||||||
|
return a.score < b.score
|
||||||
|
end)
|
||||||
|
return retval
|
||||||
|
end
|
||||||
|
|
||||||
function awards.get_formspec(name, to, sid)
|
function awards.get_formspec(name, to, sid)
|
||||||
local formspec = ""
|
local formspec = ""
|
||||||
local awards_list = awards.get_award_states(name)
|
local awards_list = order_awards(name)
|
||||||
|
local data = awards.player(name)
|
||||||
|
|
||||||
if #awards_list == 0 then
|
if #awards_list == 0 then
|
||||||
formspec = formspec .. "label[3.9,1.5;"..minetest.formspec_escape(S("Error: No achivements available.")).."]"
|
formspec = formspec .. "label[3.9,1.5;"..minetest.formspec_escape(S("Error: No achivements available.")).."]"
|
||||||
@ -40,13 +104,17 @@ function awards.get_formspec(name, to, sid)
|
|||||||
";]"
|
";]"
|
||||||
|
|
||||||
if sdef and sdef.icon then
|
if sdef and sdef.icon then
|
||||||
formspec = formspec .. "image[0.45,0;3.5,3.5;" .. sdef.icon .. "]" -- adjusted values from 0.6,0;3,3
|
formspec = formspec .. "image[0.6,0;3,3;" .. sdef.icon .. "]"
|
||||||
end
|
end
|
||||||
|
local barwidth = 3.95
|
||||||
if sitem.progress then
|
local perc = nil
|
||||||
local barwidth = 3.95
|
local label = nil
|
||||||
local perc = sitem.progress.current / sitem.progress.target
|
if sdef.getProgress and data then
|
||||||
local label = sitem.progress.label
|
local res = sdef:getProgress(data)
|
||||||
|
perc = res.perc
|
||||||
|
label = res.label
|
||||||
|
end
|
||||||
|
if perc then
|
||||||
if perc > 1 then
|
if perc > 1 then
|
||||||
perc = 1
|
perc = 1
|
||||||
end
|
end
|
||||||
@ -56,7 +124,6 @@ function awards.get_formspec(name, to, sid)
|
|||||||
formspec = formspec .. "label[1.6,8.15;" .. minetest.formspec_escape(label) .. "]"
|
formspec = formspec .. "label[1.6,8.15;" .. minetest.formspec_escape(label) .. "]"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if sdef and sdef.description then
|
if sdef and sdef.description then
|
||||||
formspec = formspec .. "box[-0.05,3.75;3.9,4.2;#000]"
|
formspec = formspec .. "box[-0.05,3.75;3.9,4.2;#000]"
|
||||||
formspec = formspec .. "textarea[0.25,3.75;3.9,4.2;;" ..
|
formspec = formspec .. "textarea[0.25,3.75;3.9,4.2;;" ..
|
||||||
@ -101,13 +168,13 @@ function awards.show_to(name, to, sid, text)
|
|||||||
if name == "" or name == nil then
|
if name == "" or name == nil then
|
||||||
name = to
|
name = to
|
||||||
end
|
end
|
||||||
local data = awards.player(to)
|
local data = awards.player(name)
|
||||||
if name == to and data.disabled then
|
if name == to and data.disabled then
|
||||||
minetest.chat_send_player(name, S("You've disabled awards. Type /awards enable to reenable."))
|
minetest.chat_send_player(name, S("You've disabled awards. Type /awards enable to reenable."))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
if text then
|
if text then
|
||||||
local awards_list = awards.get_award_states(name)
|
local awards_list = order_awards(name)
|
||||||
if #awards_list == 0 then
|
if #awards_list == 0 then
|
||||||
minetest.chat_send_player(to, S("Error: No award available."))
|
minetest.chat_send_player(to, S("Error: No award available."))
|
||||||
return
|
return
|
||||||
|
@ -14,10 +14,6 @@
|
|||||||
-- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
-- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
--
|
--
|
||||||
|
|
||||||
-- Check if a player object is valid for awards.
|
|
||||||
local function player_ok(player)
|
|
||||||
return player and player.is_player and player:is_player() and not player.is_fake_player
|
|
||||||
end
|
|
||||||
|
|
||||||
awards.register_trigger("chat", {
|
awards.register_trigger("chat", {
|
||||||
type = "counted",
|
type = "counted",
|
||||||
@ -26,7 +22,7 @@ awards.register_trigger("chat", {
|
|||||||
})
|
})
|
||||||
minetest.register_on_chat_message(function(name, message)
|
minetest.register_on_chat_message(function(name, message)
|
||||||
local player = minetest.get_player_by_name(name)
|
local player = minetest.get_player_by_name(name)
|
||||||
if not player_ok(player) or string.find(message, "/") then
|
if not player or string.find(message, "/") then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -72,7 +68,7 @@ awards.register_trigger("dig", {
|
|||||||
key_is_item = true,
|
key_is_item = true,
|
||||||
})
|
})
|
||||||
minetest.register_on_dignode(function(pos, node, player)
|
minetest.register_on_dignode(function(pos, node, player)
|
||||||
if not player_ok(player) or not pos or not node then
|
if not player or not pos or not node then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -93,7 +89,7 @@ awards.register_trigger("place", {
|
|||||||
key_is_item = true,
|
key_is_item = true,
|
||||||
})
|
})
|
||||||
minetest.register_on_placenode(function(pos, node, player)
|
minetest.register_on_placenode(function(pos, node, player)
|
||||||
if not player_ok(player) or not pos or not node then
|
if not player or not pos or not node then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -113,15 +109,15 @@ awards.register_trigger("craft", {
|
|||||||
end,
|
end,
|
||||||
key_is_item = true,
|
key_is_item = true,
|
||||||
})
|
})
|
||||||
minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv)
|
--minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv)
|
||||||
if not player_ok(player) or itemstack:is_empty() then
|
-- if not player or itemstack:is_empty() then
|
||||||
return
|
-- return
|
||||||
end
|
-- end
|
||||||
|
--
|
||||||
local itemname = itemstack:get_name()
|
-- local itemname = itemstack:get_name()
|
||||||
itemname = minetest.registered_aliases[itemname] or itemname
|
-- itemname = minetest.registered_aliases[itemname] or itemname
|
||||||
awards.notify_craft(player, itemname, itemstack:get_count())
|
-- awards.notify_craft(player, itemname, itemstack:get_count())
|
||||||
end)
|
--end)
|
||||||
|
|
||||||
|
|
||||||
awards.register_trigger("eat", {
|
awards.register_trigger("eat", {
|
||||||
@ -135,11 +131,11 @@ awards.register_trigger("eat", {
|
|||||||
key_is_item = true,
|
key_is_item = true,
|
||||||
})
|
})
|
||||||
minetest.register_on_item_eat(function(_, _, itemstack, player, _)
|
minetest.register_on_item_eat(function(_, _, itemstack, player, _)
|
||||||
if not player_ok(player) or itemstack:is_empty() then
|
if not player or itemstack:is_empty() then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local itemname = itemstack:get_name()
|
local itemname = itemstack:get_name()
|
||||||
itemname = minetest.registered_aliases[itemname] or itemname
|
itemname = minetest.registered_aliases[itemname] or itemname
|
||||||
awards.notify_eat(player, itemname)
|
awards.notify_craft(player, itemname, itemstack:get_count())
|
||||||
end)
|
end)
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,428 +0,0 @@
|
|||||||
__________ .___ _____
|
|
||||||
\______ \ ____ _____ __| _/ / \ ____
|
|
||||||
| _// __ \\__ \ / __ | / \ / \_/ __ \
|
|
||||||
| | \ ___/ / __ \_/ /_/ | / Y \ ___/
|
|
||||||
|____|_ /\___ >____ /\____ | \____|__ /\___ >
|
|
||||||
\/ \/ \/ \/ \/ \/
|
|
||||||
|
|
||||||
and license info
|
|
||||||
|
|
||||||
Below is a listing of the Award icon source and attribution/licence info.
|
|
||||||
CC BY-SA 3.0 - https://creativecommons.org/licenses/by-sa/3.0/
|
|
||||||
CC0 - https://creativecommons.org/share-your-work/public-domain/cc0/
|
|
||||||
|
|
||||||
A Cat in a Pop Tart?! -- CC0
|
|
||||||
Inspiration art RinRinDaishi on Deviant art
|
|
||||||
https://www.deviantart.com/rinrindaishi/art/Nyancat-Bed-335515771
|
|
||||||
see _RinrinDaishi_message.png
|
|
||||||
Icon drawn by Sirrobzeroone from scratch
|
|
||||||
|
|
||||||
Architect -- CC BY-SA 3.0
|
|
||||||
Tree Wood (default_wood.png) - BlockMen
|
|
||||||
Stone Wall (cobble) texture - Neuromancer/Brane Praefect
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Aspiring Farmer -- CC BY-SA 3.0
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Dirt Texture (default_dirt.png) - Random-Geek/Neuromancer
|
|
||||||
Fence texture - Paramat/Blockmen
|
|
||||||
Wheat Texture - PilzAdam/BlockMen/MasterGollum/Gambit
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Backpacker -- CC BY-SA 3.0
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Binoculars - Paramat
|
|
||||||
Wool Texture - Cisoun
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Baker -- CC BY-SA 3.0
|
|
||||||
Tree Wood (default_wood.png) - BlockMen
|
|
||||||
Stone Wall texture - Neuromancer/Brane Praefect
|
|
||||||
Furnace - Neuromancer
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Banker -- CC BY-SA 3.0
|
|
||||||
Wood Pine Floor (default_pinewood.png) - Paramat
|
|
||||||
Chest - BlockMen
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Bricker -- CC BY-SA 3.0
|
|
||||||
Brick Texture - Calinou
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Build a Cave -- CC BY-SA 3.0
|
|
||||||
Stone (default_stone.png) - Cisoun
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Builder -- CC BY-SA 3.0
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Wool Texture - Cisoun
|
|
||||||
Cobble Wall (default_cobble.png) - Neuromancer/Brane Praefect
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Castorama -- CC0 (Public Domain)
|
|
||||||
All - Sirrobzeroone
|
|
||||||
|
|
||||||
Crafter of Sticks -- CC BY-SA 3.0
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Grass Tall (default_grass_*.png) - Gambit
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Dandelions are Yellow -- CC0 (Public Domain)
|
|
||||||
All - Openclipart Library/Sirrobzeroone
|
|
||||||
|
|
||||||
Desert Discoverer -- CC BY-SA 3.0
|
|
||||||
Sand (default_desert_sand.png) - VanessaE
|
|
||||||
Dry Shrub (default_dry_shrub.png) - celeron55
|
|
||||||
Sun () - Celeron55
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Desert Dweller -- CC BY-SA 3.0
|
|
||||||
Sand (default_desert_sand.png) - VanessaE
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Engineer -- CC BY-SA 3.0
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Cobble Wall (default_cobble.png) - Neuromancer/Brane Praefect
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Far Lands -- CC BY-SA 3.0
|
|
||||||
Water (default_water.png) - Cisoun
|
|
||||||
Tree Bark (default_tree.png) - Cisoun
|
|
||||||
Tree Wood (default_wood.png) - BlockMen
|
|
||||||
Tree Leaves (default_leaves.png) - Cisoun
|
|
||||||
Sun () - Celeron55
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Farming Skills Acquired -- CC BY-SA 3.0
|
|
||||||
Wheat Texture - PilzAdam/BlockMen/MasterGollum/Gambit
|
|
||||||
Dirt Texture (default_dirt.png) - Random-Geek/Neuromancer
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Sun () - Celeron55
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Field Worker -- CC BY-SA 3.0
|
|
||||||
Wheat Texture - PilzAdam/BlockMen/MasterGollum/Gambit
|
|
||||||
Dirt Texture (default_dirt.png) - Random-Geek/Neuromancer
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Filthy Rich -- CC BY-SA 3.0
|
|
||||||
Tree Wood (default_wood.png) - BlockMen
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Firefighter -- CC0 (Public Domain)
|
|
||||||
All - Sirrobzeroone
|
|
||||||
|
|
||||||
First Day in the Woods -- CC BY-SA 3.0
|
|
||||||
Tree Bark (default_tree.png) - Cisoun
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Grass Tall (default_grass_*.png) - Gambit
|
|
||||||
Axe (default_tool_*.png) - BlockMen
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
First Gold Find -- CC BY-SA 3.0
|
|
||||||
Gold Nugget (default_gold_lump.png) - Gambit
|
|
||||||
Stone (default_stone.png) - Cisoun
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
First Mese Find -- CC BY-SA 3.0
|
|
||||||
Stone (default_stone.png) - Cisoun
|
|
||||||
Mese Crystal (default_mese_crystal.png) - VanessaE
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Fortress -- CC BY-SA 3.0
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Cobble Wall (default_cobble.png) - Neuromancer/Brane Praefect
|
|
||||||
Tree Bark (default_tree.png) - Cisoun
|
|
||||||
Tree Leaves (default_leaves.png) - Cisoun
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Geraniums are Blue -- CC BY-SA 3.0
|
|
||||||
Geranium (flowers_geranium.png)
|
|
||||||
Wool Texture - Cisoun
|
|
||||||
Cobble Wall (default_cobble.png) - Neuromancer/Brane Praefect
|
|
||||||
Tree Wood (default_wood.png) - BlockMen
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Girl's Best Friend -- CC BY-SA 3.0
|
|
||||||
Diamond (default_diamond.png) - BlockMen
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Glacier Discoverer -- CC BY-SA 3.0
|
|
||||||
Ice (default_ice.png) - as197
|
|
||||||
Snow (default_snow.png) - Gambit
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Glasser -- CC BY-SA 3.0
|
|
||||||
Cobble Wall (default_cobble.png) - Neuromancer/Brane Praefect
|
|
||||||
Tree Wood (default_wood.png) - BlockMen
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Gold Rush -- CC BY-SA 3.0
|
|
||||||
Stone Blocks (default_stone_block.png) - Paramat
|
|
||||||
Tree Bark (default_tree.png) - Cisoun
|
|
||||||
Stone (default_stone.png) - Cisoun
|
|
||||||
Gold Nugget (default_gold_lump.png) - Gambit
|
|
||||||
Torch (default_torch_on_floor.png) - VanessaE
|
|
||||||
Rail (carts_rail_*) - Hexafraction/Sofar
|
|
||||||
Cart (carts_cart_side.png) - Gambit
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Grasslands Discoverer -- CC BY-SA 3.0
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Dirt Texture (default_dirt.png) - Random-Geek/Neuromancer
|
|
||||||
Sun () - Celeron55
|
|
||||||
Bluberry (default_blueberries.png) - Random-Geek
|
|
||||||
Viola (flowers_viola.png) - RHRhino/Gambit/yyt16384/Paramat
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Hardened Miner -- CC BY-SA 3.0
|
|
||||||
Cobble Wall (default_cobble.png) - Neuromancer/Brane Praefect
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Hardest Block on Earth -- CC BY-SA 3.0
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Tree Bark (default_tree.png) - Cisoun
|
|
||||||
Tree Leaves (default_leaves.png) - Cisoun
|
|
||||||
Diamond Block (default_diamond_block.png) - Gambit
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Hotelier -- CC BY-SA 3.0
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Cobble Wall (default_cobble.png) - Neuromancer/Brane Praefect
|
|
||||||
Tree Wood (default_wood.png) - BlockMen
|
|
||||||
Tree Bark (default_tree.png) - Cisoun
|
|
||||||
Wood Pine Floor (default_pinewood.png) - Paramat
|
|
||||||
Wood Acacia Floor (default_acacia_wood.png) - Paramat
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
House of Obsidian -- CC BY-SA 3.0
|
|
||||||
Wood Acacia Floor (default_acacia_wood.png) - Paramat
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Tree Bark (default_tree.png) - Cisoun
|
|
||||||
Obsidian (default_obsidian.png) - Jojoa1997
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
In the Dungeon -- CC BY-SA 3.0
|
|
||||||
Wood Pine Floor (default_pinewood.png) - Paramat
|
|
||||||
Cobble Wall (default_cobble.png) - Neuromancer/Brane Praefect
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Industrial Age -- CC BY-SA 3.0
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Wood Pine Floor (default_pinewood.png) - Paramat
|
|
||||||
Cobble Wall (default_cobble.png) - Neuromancer/Brane Praefect
|
|
||||||
Sun () - Celeron55
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Jungle Discoverer -- CC BY-SA 3.0
|
|
||||||
Jungle Bark (default_jungletree.png) - Cisoun
|
|
||||||
Jungle Leaves (default_jungleleaves.png) - PilzAdam
|
|
||||||
Jungle Litter (default_rainforest_litter.png) - npx
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Junglebaby -- CC BY-SA 3.0
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Jungle Bark (default_jungletree.png) - Cisoun
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Jungleman -- CC BY-SA 3.0
|
|
||||||
Jungle Bark (default_jungletree.png) - Cisoun
|
|
||||||
Jungle Leaves (default_jungleleaves.png) - PilzAdam
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Lava and Water -- CC BY-SA 3.0
|
|
||||||
Water (default_water.png) - Cisoun
|
|
||||||
Lava (default_lava.png) - Cisoun
|
|
||||||
Obsidian (default_obsidian.png) - Jojoa1997
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Lava Miner -- CC BY-SA 3.0
|
|
||||||
Lava (default_lava.png) - Cisoun
|
|
||||||
Stone (default_stone.png) - Cisoun
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Light It Up -- CC BY-SA 3.0
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Torch (default_torch_on_floor.png) - VanessaE
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Little Library -- CC BY-SA 3.0
|
|
||||||
BookShelf (default_bookshelf.png) - Celeron55
|
|
||||||
Tree Wood (default_wood.png) - BlockMen
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Long Ladder -- CC BY-SA 3.0
|
|
||||||
Ladder (default_ladder_wood.png) - Celeron55
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Lumberjack -- CC BY-SA 3.0
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Tree Bark (default_tree.png) - Cisoun
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Marchand De Sable -- CC BY-SA 3.0
|
|
||||||
Sand ( default_desert_sand.png) - VanessaE
|
|
||||||
Sand Block (default_desert_stone.png) - VanessaE
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Master Miner -- CC BY-SA 3.0
|
|
||||||
Cobble Wall (default_cobble.png) - Neuromancer/Brane Praefect
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Mese Mastery -- CC BY-SA 3.0
|
|
||||||
Stone (default_stone.png) - Cisoun
|
|
||||||
Mese block (default_mese_block.png) - Paramat
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Mini Miner -- CC BY-SA 3.0
|
|
||||||
Stone (default_stone.png) - Cisoun
|
|
||||||
Iron Ore (default_mineral_iron.png) - Celeron55
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Mushroom Lover -- CC BY-SA 3.0
|
|
||||||
Tree Wood (default_wood.png) - BlockMen
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Obsessed with Obsidian -- CC BY-SA 3.0
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Tree Bark (default_tree.png) - Cisoun
|
|
||||||
Tree Leaves (default_leaves.png) - Cisoun
|
|
||||||
Dirt Texture (default_dirt.png) - Random-Geek/Neuromancer
|
|
||||||
Obsidian (default_obsidian.png) - Jojoa1997
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
On The Way -- CC BY-SA 3.0
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Tree Bark (default_tree.png) - Cisoun
|
|
||||||
Tree Leaves (default_leaves.png) - Cisoun
|
|
||||||
Rail (carts_rail_*) - Hexafraction/Sofar
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Outpost -- CC BY-SA 3.0
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Cobble Wall (default_cobble.png) - Neuromancer/Brane Praefect
|
|
||||||
Tree Bark (default_tree.png) - Cisoun
|
|
||||||
Tree Leaves (default_leaves.png) - Cisoun
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Pharaoh -- CC BY-SA 3.0
|
|
||||||
Sand (default_desert_sand.png) - VanessaE
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Professional Lumberjack -- CC BY-SA 3.0
|
|
||||||
Cobble Wall (default_cobble.png) - Neuromancer/Brane Praefect
|
|
||||||
Tree Wood (default_wood.png) - BlockMen
|
|
||||||
Axe (default_tool_*.png) - BlockMen
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Pyromaniac -- CC0 (Public Domain)
|
|
||||||
All - Sirrobzeroone
|
|
||||||
|
|
||||||
Really Well Lit -- CC BY-SA 3.0
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Cobble Wall (default_cobble.png) - Neuromancer/Brane Praefect
|
|
||||||
Wheat Texture - PilzAdam/BlockMen/MasterGollum/Gambit
|
|
||||||
Tree Wood (default_wood.png) - BlockMen
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Roses Are Red -- CC0 (Public Domain)
|
|
||||||
All - Sirrobzeroone
|
|
||||||
|
|
||||||
Saint-Maclou -- CC0 (Public Domain)
|
|
||||||
All - Sirrobzeroone
|
|
||||||
|
|
||||||
Sam the Trapper -- CC BY-SA 3.0
|
|
||||||
Tree Wood (default_wood.png) - BlockMen
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Savannah Discoverer -- CC BY-SA 3.0
|
|
||||||
Dry grass (default_dry_grass.png) - Paramat
|
|
||||||
Dirt Texture (default_dirt.png) - Random-Geek/Neuromancer
|
|
||||||
Sun () - Celeron55
|
|
||||||
Acacia Leaves (default_acacia_leaves.png) - Paramat
|
|
||||||
Acacia Bark (default_acacia_tree.png) - Paramat
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Semi-pro Lumberjack -- CC BY-SA 3.0
|
|
||||||
Tree Wood (default_wood.png) - BlockMen
|
|
||||||
Tree Bark (default_tree.png) - Cisoun
|
|
||||||
Axe (default_tool_*.png) - BlockMen
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Smelter -- CC0 (Public Domain)
|
|
||||||
All - Openclipart library/Sirrobzeroone
|
|
||||||
|
|
||||||
Tasty Mushrooms -- CC0 (Public Domain)
|
|
||||||
All - Openclipart library/Sirrobzeroone
|
|
||||||
|
|
||||||
Treasurer -- CC BY-SA 3.0
|
|
||||||
Tree Wood (default_wood.png) - BlockMen
|
|
||||||
Wood Pine Floor (default_pinewood.png) - Paramat
|
|
||||||
Cobble Wall (default_cobble.png) - Neuromancer/Brane Praefect
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Underground Mushroom Farmer -- CC BY-SA 3.0
|
|
||||||
Dirt Texture (default_dirt.png) - Random-Geek/Neuromancer
|
|
||||||
Stone (default_stone.png) - Cisoun
|
|
||||||
Mushroom (flowers_mushroom_brown.png) - RHRhino/Gambit/yyt16384/Paramat
|
|
||||||
Torch (default_torch_on_floor.png) - VanessaE
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Very Simple Snow Man -- CC BY-SA 3.0
|
|
||||||
Snow (default_snow.png) - Gambit
|
|
||||||
Stick (default_stick.png) - BlockMen
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Watchtower -- CC BY-SA 3.0
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Cobble Wall (default_cobble.png) - Neuromancer/Brane Praefect
|
|
||||||
Tree Bark (default_tree.png) - Cisoun
|
|
||||||
Tree Leaves (default_leaves.png) - Cisoun
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Well Lit -- CC BY-SA 3.0
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Cobble Wall (default_cobble.png) - Neuromancer/Brane Praefect
|
|
||||||
Wood Pine Floor (default_pinewood.png) - Paramat
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Wheat Magnate -- CC BY-SA 3.0
|
|
||||||
Tree Wood (default_wood.png) - BlockMen
|
|
||||||
Cobble Wall (default_cobble.png) - Neuromancer/Brane Praefect
|
|
||||||
Sun () - Celeron55
|
|
||||||
Wheat Texture - PilzAdam/BlockMen/MasterGollum/Gambit
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
White Color Stock -- CC BY-SA 3.0
|
|
||||||
Tree Wood (default_wood.png) - BlockMen
|
|
||||||
Cobble Wall (default_cobble.png) - Neuromancer/Brane Praefect
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Wool Over Your Eyes -- CC BY-SA 3.0
|
|
||||||
Sun () - Celeron55
|
|
||||||
Grass texture (default_grass.png) - Paramat
|
|
||||||
Dirt Texture (default_dirt.png) - Random-Geek/Neuromancer
|
|
||||||
Bluberry (default_blueberries.png) - Random-Geek
|
|
||||||
Viola (flowers_viola.png) - RHRhino/Gambit/yyt16384/Paramat
|
|
||||||
Grass Tall (default_grass_*.png) - Gambit
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
Wow, I am Diamonds! -- CC BY-SA 3.0
|
|
||||||
Diamond (default_diamond.png) - BlockMen
|
|
||||||
Stone (default_stone.png) - Cisoun
|
|
||||||
Rest - Sirrobzeroone
|
|
||||||
|
|
||||||
You<EFBFBD>re a copper -- CC0 (Public Domain)
|
|
||||||
All - Sirrobzeroone
|
|
||||||
|
|
||||||
Yummy! -- CC0 (Public Domain)
|
|
||||||
All - Openclipart library/Sirrobzeroone
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 45 KiB |
Binary file not shown.
Before Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
Before Width: | Height: | Size: 1.3 KiB |
Binary file not shown.
Before Width: | Height: | Size: 2.0 KiB |
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user