updated cool_trees, basic_materials, bonemeal, castles, cblocks,
currency, facade, farming redo, item_drop, mesecons, pipeworks, technic, titanium, and worldedit. Switched to cheapie's display_blocks redo mod (replaces jojo1997's old version).
200
baldcypress/init.lua
Normal file
@ -0,0 +1,200 @@
|
||||
--
|
||||
-- Bald Cypress
|
||||
--
|
||||
local modname = "baldcypress"
|
||||
local modpath = minetest.get_modpath(modname)
|
||||
local mg_name = minetest.get_mapgen_setting("mg_name")
|
||||
|
||||
-- internationalization boilerplate
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
-- Bald Cypress
|
||||
|
||||
local function grow_new_baldcypress_tree(pos)
|
||||
if not default.can_grow(pos) then
|
||||
-- try a bit later again
|
||||
minetest.get_node_timer(pos):start(math.random(240, 600))
|
||||
return
|
||||
end
|
||||
minetest.remove_node(pos)
|
||||
minetest.place_schematic({x = pos.x-4, y = pos.y, z = pos.z-4}, modpath.."/schematics/baldcypress.mts", "0", nil, false)
|
||||
end
|
||||
|
||||
--
|
||||
-- Decoration
|
||||
--
|
||||
|
||||
if mg_name ~= "v6" and mg_name ~= "singlenode" then
|
||||
minetest.register_decoration({
|
||||
deco_type = "schematic",
|
||||
place_on = {"default:sand"},
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = 0.0005,
|
||||
scale = 0.0005,
|
||||
spread = {x = 250, y = 250, z = 250},
|
||||
seed = 2,
|
||||
octaves = 3,
|
||||
persist = 0.66
|
||||
},
|
||||
biomes = {"coniferous_forest_ocean"},
|
||||
height = 2,
|
||||
y_min = 0,
|
||||
y_max = 0,
|
||||
schematic = modpath.."/schematics/baldcypress.mts",
|
||||
flags = "place_center_x, place_center_z, force_placement",
|
||||
rotation = "random",
|
||||
})
|
||||
end
|
||||
|
||||
--
|
||||
-- Nodes
|
||||
--
|
||||
|
||||
minetest.register_node("baldcypress:sapling", {
|
||||
description = S("Bald Cypress Tree Sapling"),
|
||||
drawtype = "plantlike",
|
||||
visual_scale = 1.0,
|
||||
tiles = {"baldcypress_sapling.png"},
|
||||
inventory_image = "baldcypress_sapling.png",
|
||||
wield_image = "baldcypress_sapling.png",
|
||||
paramtype = "light",
|
||||
--sunlight_propagates = true,
|
||||
walkable = false,
|
||||
on_timer = grow_new_baldcypress_tree,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
||||
attached_node = 1, sapling = 1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(2400,4800))
|
||||
end,
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
|
||||
"baldcypress:sapling",
|
||||
-- minp, maxp to be checked, relative to sapling pos
|
||||
-- minp_relative.y = 1 because sapling pos has been checked
|
||||
{x = -2, y = 1, z = -2},
|
||||
{x = 2, y = 6, z = 2},
|
||||
-- maximum interval of interior volume check
|
||||
4)
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("baldcypress:trunk", {
|
||||
description = S("Bald Cypress Trunk"),
|
||||
tiles = {
|
||||
"baldcypress_trunk_top.png",
|
||||
"baldcypress_trunk_top.png",
|
||||
"baldcypress_trunk.png"
|
||||
},
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
on_place = minetest.rotate_node,
|
||||
})
|
||||
|
||||
-- baldcypress wood
|
||||
minetest.register_node("baldcypress:wood", {
|
||||
description = S("Bald Cypress Wood"),
|
||||
tiles = {"baldcypress_wood.png"},
|
||||
paramtype2 = "facedir",
|
||||
place_param2 = 0,
|
||||
is_ground_content = false,
|
||||
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
|
||||
-- baldcypress tree leaves
|
||||
minetest.register_node("baldcypress:leaves", {
|
||||
description = S("Bald Cypress Leaves"),
|
||||
drawtype = "allfaces_optional",
|
||||
visual_scale = 1.2,
|
||||
tiles = {"baldcypress_leaves.png"},
|
||||
inventory_image = "baldcypress_leaves.png",
|
||||
wield_image = "baldcypress_leaves.png",
|
||||
paramtype = "light",
|
||||
walkable = true,
|
||||
waving = 1,
|
||||
groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2},
|
||||
drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
{items = {"baldcypress:sapling"}, rarity = 20},
|
||||
{items = {"baldcypress:leaves"}}
|
||||
}
|
||||
},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
after_place_node = default.after_place_leaves,
|
||||
})
|
||||
|
||||
--
|
||||
-- Craftitems
|
||||
--
|
||||
|
||||
--
|
||||
-- Recipes
|
||||
--
|
||||
|
||||
minetest.register_craft({
|
||||
output = "baldcypress:wood 4",
|
||||
recipe = {{"baldcypress:trunk"}}
|
||||
})
|
||||
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "baldcypress:trunk",
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "baldcypress:wood",
|
||||
burntime = 7,
|
||||
})
|
||||
|
||||
|
||||
minetest.register_lbm({
|
||||
name = "baldcypress:convert_baldcypress_saplings_to_node_timer",
|
||||
nodenames = {"baldcypress:sapling"},
|
||||
action = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(1200, 2400))
|
||||
end
|
||||
})
|
||||
|
||||
default.register_leafdecay({
|
||||
trunks = {"baldcypress:trunk"},
|
||||
leaves = {"baldcypress:leaves"},
|
||||
radius = 3,
|
||||
})
|
||||
|
||||
--Stairs
|
||||
|
||||
if minetest.get_modpath("stairs") ~= nil then
|
||||
stairs.register_stair_and_slab(
|
||||
"baldcypress_trunk",
|
||||
"baldcypress:trunk",
|
||||
{choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
{"baldcypress_wood.png"},
|
||||
S("Bald Cypress Stair"),
|
||||
S("Bald Cypress Slab"),
|
||||
default.node_sound_wood_defaults()
|
||||
)
|
||||
end
|
||||
|
||||
--Support for bonemeal
|
||||
|
||||
if minetest.get_modpath("bonemeal") ~= nil then
|
||||
bonemeal:add_sapling({
|
||||
{"baldcypress:sapling", grow_new_baldcypress_tree, "soil"},
|
||||
})
|
||||
end
|
10
baldcypress/locale/baldcypress.es.tr
Normal file
@ -0,0 +1,10 @@
|
||||
# textdomain: baldcypress
|
||||
Bald Cypress Trunk=Madera de criprés calvo
|
||||
Bald Cypress Wood=Tablas de criprés calvo
|
||||
Bald Cypress Leaves=Hojas de criprés calvo
|
||||
Bald Cypress Tree Sapling=Retoño de criprés calvo
|
||||
Bald Cypress Tree Stair=Escaleras de criprés calvo
|
||||
Bald Cypress Slab=Losa de de criprés calvo
|
||||
Inner Bald Cypress Stair=Escaleras de de criprés calvo interior
|
||||
Outer Bald Cypress Stair=Escaleras de criprés calvo exterior
|
||||
Bald Cypress Slab=Losa de criprés calvo
|
4
baldcypress/mod.conf
Normal file
@ -0,0 +1,4 @@
|
||||
name = baldcypress
|
||||
description = Blad Cypress for Swamps
|
||||
depends = default
|
||||
optional_depends = stairs, bonemeal
|
1554
baldcypress/schematics/baldcypress.lua
Normal file
BIN
baldcypress/schematics/baldcypress.mts
Normal file
BIN
baldcypress/textures/baldcypress_leaves.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
baldcypress/textures/baldcypress_sapling.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
baldcypress/textures/baldcypress_trunk.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
baldcypress/textures/baldcypress_trunk_top.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
baldcypress/textures/baldcypress_wood.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
33
basic_materials/locale/basic_materials.ru.tr
Normal file
@ -0,0 +1,33 @@
|
||||
# textdomain: basic_materials
|
||||
Silicon lump=Кусок Кремния
|
||||
Simple Integrated Circuit=Микросхема
|
||||
Simple Motor=Мотор
|
||||
Heating element=Нить Накала
|
||||
Simple energy crystal=Энергетический Кристалл
|
||||
|
||||
Spool of steel wire=Катушка Стальной Проволоки
|
||||
Spool of copper wire=Катушка Медной Проволоки
|
||||
Spool of silver wire=Катушка Серебрянной Проволоки
|
||||
Spool of gold wire=Катушка Золотой Проволоки
|
||||
Steel Strip=Стальная Полоса
|
||||
Copper Strip=Медная Полоса
|
||||
Steel Bar=Стальной Прут
|
||||
Chainlinks (brass)=Латунные Звенья
|
||||
Chainlinks (steel)=Стальные Звенья
|
||||
Brass Ingot=Латунный Брусок
|
||||
Steel gear=Стальная Шестерня
|
||||
Padlock=Навесной Замок
|
||||
Chain (steel, hanging)=Стальная Цепь
|
||||
Chain (brass, hanging)=Латунная Цепь
|
||||
Brass Block=Латунный Блок
|
||||
|
||||
Oil extract=Масляный Экстракт
|
||||
Unprocessed paraffin=Необработанный Парафин
|
||||
Uncooked Terracotta Base=Ком Мокрого Терракота
|
||||
Wet Cement=Ком Мокрого Цемента
|
||||
Cement=Цемент
|
||||
Concrete Block=Железобетон
|
||||
|
||||
Plastic sheet=Пластиковый Лист
|
||||
Plastic strips=Пластиковая Полоса
|
||||
Empty wire spool=Пустая Катушка
|
@ -646,7 +646,7 @@ minetest.override_item("default:dirt", {
|
||||
items = {
|
||||
{
|
||||
items = {"bonemeal:bone"},
|
||||
rarity = 30
|
||||
rarity = 40
|
||||
},
|
||||
{
|
||||
items = {"default:dirt"}
|
||||
|
@ -38,7 +38,8 @@ if farming and farming.mod and farming.mod == "redo" then
|
||||
{"farming:beetroot_", 5},
|
||||
{"farming:rye_", 8},
|
||||
{"farming:oat_", 8},
|
||||
{"farming:rice_", 8}
|
||||
{"farming:rice_", 8},
|
||||
{"farming:mint_", 4}
|
||||
})
|
||||
end
|
||||
|
||||
|
@ -67,7 +67,7 @@ if minetest.get_modpath("xpanes") then
|
||||
tiles = {"castle_jailbars.png"},
|
||||
drawtype = "airlike",
|
||||
paramtype = "light",
|
||||
textures = {"castle_jailbars.png", "castle_jailbars.png", "xpanes_space.png"},
|
||||
textures = {"castle_jailbars.png", "castle_jailbars.png", "castle_jailbars.png"},
|
||||
inventory_image = "castle_jailbars.png",
|
||||
wield_image = "castle_jailbars.png",
|
||||
sounds = default.node_sound_metal_defaults(),
|
||||
|
@ -10,5 +10,6 @@ Change log:
|
||||
- 0.1 - Initial release
|
||||
- 0.2 - Added coloured glass and fixed violet
|
||||
- 0.3 - Added stairsplus and stairs mod support
|
||||
- 0.4 - Glass stairs created with transparency if stairs redo active
|
||||
|
||||
Lucky Blocks: 4
|
||||
|
127
cblocks/init.lua
@ -1,4 +1,9 @@
|
||||
|
||||
local stairs_mod = minetest.get_modpath("stairs")
|
||||
local stairsplus_mod = minetest.global_exists("stairsplus")
|
||||
local ethereal_mod = minetest.get_modpath("ethereal")
|
||||
|
||||
|
||||
local colours = {
|
||||
{"black", "Black", "#000000b0"},
|
||||
{"blue", "Blue", "#015dbb70"},
|
||||
@ -17,9 +22,6 @@ local colours = {
|
||||
{"yellow", "Yellow", "#e3ff0070"},
|
||||
}
|
||||
|
||||
local stairs_mod = minetest.get_modpath("stairs")
|
||||
local stairsplus_mod = minetest.get_modpath("moreblocks")
|
||||
and minetest.global_exists("stairsplus")
|
||||
|
||||
local function cblocks_stairs(nodename, def)
|
||||
|
||||
@ -48,17 +50,17 @@ local function cblocks_stairs(nodename, def)
|
||||
groups = def.groups,
|
||||
sounds = def.sounds,
|
||||
})
|
||||
--[[
|
||||
elseif stairs_mod and stairs.mod then
|
||||
|
||||
elseif stairs_mod and stairs
|
||||
and stairs.mod and stairs.mod == "redo" then
|
||||
|
||||
stairs.register_all(name, nodename,
|
||||
def.groups,
|
||||
def.tiles,
|
||||
def.description,
|
||||
def.sounds,
|
||||
def.alpha
|
||||
def.sounds
|
||||
)
|
||||
]]
|
||||
|
||||
elseif stairs_mod and not stairs.mod then
|
||||
|
||||
stairs.register_stair_and_slab(name, nodename,
|
||||
@ -72,26 +74,28 @@ local function cblocks_stairs(nodename, def)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
local function set_alias(col, name)
|
||||
|
||||
minetest.register_alias("stairs:stair_" .. col .. "_" .. name,
|
||||
"stairs:stair_" .. name .. "_" .. col)
|
||||
|
||||
minetest.register_alias("stairs:slab_" .. col .. "_" .. name,
|
||||
"stairs:slab_" .. name .. "_" .. col)
|
||||
|
||||
minetest.register_alias("stairs:stair_inner_" .. col .. "_" .. name,
|
||||
"stairs:stair_inner_" .. name .. "_" .. col)
|
||||
|
||||
minetest.register_alias("stairs:stair_outer_" .. col .. "_" .. name,
|
||||
"stairs:stair_outer_" .. name .. "_" .. col)
|
||||
|
||||
minetest.register_alias("stairs:slope_" .. col .. "_" .. name,
|
||||
"stairs:slope_" .. name .. "_" .. col)
|
||||
end
|
||||
|
||||
|
||||
for i = 1, #colours, 1 do
|
||||
|
||||
-- wood
|
||||
|
||||
cblocks_stairs("cblocks:wood_" .. colours[i][1], {
|
||||
description = colours[i][2] .. " Wooden Planks",
|
||||
tiles = {"default_wood.png^[colorize:" .. colours[i][3]},
|
||||
paramtype = "light",
|
||||
is_ground_content = false,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, wood = 1},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "cblocks:wood_".. colours[i][1] .. " 2",
|
||||
recipe = {
|
||||
{"group:wood","group:wood", "dye:" .. colours[i][1]},
|
||||
}
|
||||
})
|
||||
|
||||
-- stone brick
|
||||
|
||||
cblocks_stairs("cblocks:stonebrick_" .. colours[i][1], {
|
||||
@ -110,19 +114,37 @@ minetest.register_craft({
|
||||
}
|
||||
})
|
||||
|
||||
-- glass (no stairs because they dont support transparant nodes)
|
||||
-- glass (no stairs unless stairs redo active because default stairs mod
|
||||
-- does not support transparent stairs)
|
||||
|
||||
minetest.register_node("cblocks:glass_" .. colours[i][1], {
|
||||
description = colours[i][2] .. " Glass",
|
||||
tiles = {"cblocks.png^[colorize:" .. colours[i][3]},
|
||||
drawtype = "glasslike",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
use_texture_alpha = true,
|
||||
is_ground_content = false,
|
||||
groups = {cracky = 3, oddly_breakable_by_hand = 3},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
if stairs_mod and stairs and stairs.mod and stairs.mod == "redo" then
|
||||
|
||||
cblocks_stairs("cblocks:glass_" .. colours[i][1], {
|
||||
description = colours[i][2] .. " Glass",
|
||||
tiles = {"cblocks.png^[colorize:" .. colours[i][3]},
|
||||
drawtype = "glasslike",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
use_texture_alpha = true,
|
||||
is_ground_content = false,
|
||||
groups = {cracky = 3, oddly_breakable_by_hand = 3},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
|
||||
set_alias(colours[i][1], "glass")
|
||||
else
|
||||
minetest.register_node("cblocks:glass_" .. colours[i][1], {
|
||||
description = colours[i][2] .. " Glass",
|
||||
tiles = {"cblocks.png^[colorize:" .. colours[i][3]},
|
||||
drawtype = "glasslike",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
use_texture_alpha = true,
|
||||
is_ground_content = false,
|
||||
groups = {cracky = 3, oddly_breakable_by_hand = 3},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_craft({
|
||||
output = "cblocks:glass_".. colours[i][1] .. " 2",
|
||||
@ -131,8 +153,36 @@ minetest.register_craft({
|
||||
}
|
||||
})
|
||||
|
||||
-- wood
|
||||
|
||||
local col = colours[i][1]
|
||||
|
||||
-- ethereal already has yellow wood so rename to yellow2
|
||||
if ethereal_mod and col == "yellow" then
|
||||
col = "yellow2"
|
||||
end
|
||||
|
||||
cblocks_stairs("cblocks:wood_" .. col, {
|
||||
description = colours[i][2] .. " Wooden Planks",
|
||||
tiles = {"default_wood.png^[colorize:" .. colours[i][3]},
|
||||
paramtype = "light",
|
||||
is_ground_content = false,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, wood = 1},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
|
||||
set_alias(colours[i][1], "wood")
|
||||
|
||||
minetest.register_craft({
|
||||
output = "cblocks:wood_".. col .. " 2",
|
||||
recipe = {
|
||||
{"group:wood","group:wood", "dye:" .. colours[i][1]},
|
||||
}
|
||||
})
|
||||
|
||||
end
|
||||
|
||||
|
||||
-- add lucky blocks
|
||||
if minetest.get_modpath("lucky_block") then
|
||||
lucky_block:add_blocks({
|
||||
@ -143,4 +193,5 @@ lucky_block:add_blocks({
|
||||
})
|
||||
end
|
||||
|
||||
|
||||
print ("[MOD] Cblocks loaded")
|
||||
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 6.4 KiB |
@ -161,3 +161,4 @@ schematic = {
|
||||
{name="air", prob=0, param2=0},
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -9,8 +9,7 @@ if minetest.get_modpath("hopper") and hopper ~= nil and hopper.add_container ~=
|
||||
end
|
||||
|
||||
|
||||
local crafting_rate = minetest.settings:get("crafting_bench_crafting_rate")
|
||||
if crafting_rate == nil then crafting_rate = 5 end
|
||||
local crafting_rate = tonumber(minetest.settings:get("crafting_bench_crafting_rate")) or 5
|
||||
|
||||
|
||||
minetest.register_node("crafting_bench:workbench",{
|
||||
|
@ -67,7 +67,11 @@ barter.chest.give_inventory = function(inv,list,playername)
|
||||
player = minetest.get_player_by_name(playername)
|
||||
if player then
|
||||
for k,v in ipairs(inv:get_list(list)) do
|
||||
player:get_inventory():add_item("main",v)
|
||||
if player:get_inventory():room_for_item("main",v) then
|
||||
player:get_inventory():add_item("main",v)
|
||||
else
|
||||
minetest.add_item(player:get_pos(),v)
|
||||
end
|
||||
inv:remove_item(list,v)
|
||||
end
|
||||
end
|
||||
|
@ -1,23 +1,41 @@
|
||||
local players_income = {}
|
||||
|
||||
local income_enabled = minetest.settings:get_bool("currency.income_enabled", true)
|
||||
local creative_income_enabled = minetest.settings:get_bool("currency.creative_income_enabled", true)
|
||||
local income_item = minetest.settings:get("currency.income_item") or "currency:minegeld_10"
|
||||
local income_count = tonumber(minetest.settings:get("currency.income_count")) or 1
|
||||
local income_period = tonumber(minetest.settings:get("currency.income_period")) or 720
|
||||
|
||||
if income_enabled then
|
||||
local timer = 0
|
||||
minetest.register_globalstep(function(dtime)
|
||||
timer = timer + dtime;
|
||||
if timer >= income_period then
|
||||
timer = 0
|
||||
for _, player in ipairs(minetest.get_connected_players()) do
|
||||
local name = player:get_player_name()
|
||||
players_income[name] = income_count
|
||||
minetest.log("info", "[Currency] basic income for "..name)
|
||||
if creative_income_enabled then
|
||||
minetest.register_globalstep(function(dtime)
|
||||
timer = timer + dtime;
|
||||
if timer >= income_period then
|
||||
timer = 0
|
||||
for _, player in ipairs(minetest.get_connected_players()) do
|
||||
local name = player:get_player_name()
|
||||
players_income[name] = income_count
|
||||
minetest.log("info", "[Currency] basic income for "..name)
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
end)
|
||||
else
|
||||
minetest.register_globalstep(function(dtime)
|
||||
timer = timer + dtime;
|
||||
if timer >= income_period then
|
||||
timer = 0
|
||||
for _, player in ipairs(minetest.get_connected_players()) do
|
||||
local name = player:get_player_name()
|
||||
local privs = minetest.get_player_privs(name)
|
||||
if not (privs.creative or privs.give) then
|
||||
players_income[name] = income_count
|
||||
minetest.log("info", "[Currency] basic income for "..name)
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
local function earn_income(player)
|
||||
if not player or player.is_fake_player then return end
|
||||
|
@ -1,6 +1,9 @@
|
||||
# Is income enabled?
|
||||
currency.income_enabled (Is currency income enabled?) bool true
|
||||
|
||||
# Is income enabled for creative players?
|
||||
currency.creative_income_enabled (Is income enabled for creative players?) bool true
|
||||
|
||||
# Item that is given as income by the currency mod
|
||||
currency.income_item (Currency income item) string currency:minegeld_10
|
||||
|
||||
|
@ -1,29 +0,0 @@
|
||||
|
||||
License:
|
||||
|
||||
Copyright (C) 2016 - VanessaE, cheapie, jojoa1997
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject
|
||||
to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
|
||||
KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
||||
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of the authors shall
|
||||
not be used in advertising or otherwise to promote the sale, use or
|
||||
other dealings in this Software without prior written authorization
|
||||
from the authors.
|
||||
|
@ -1,4 +0,0 @@
|
||||
display_blocks
|
||||
==============
|
||||
This mod adds blocks that create crystals on top.
|
||||
Some have different light levels others can be seen through and i hope i can make them do other things too.
|
@ -1,6 +0,0 @@
|
||||
-- Disable to make the uranium only be "technic"uranium". Enable to add "display_blocks:uranium"
|
||||
enable_display_uranium = false
|
||||
--Enable to make "technic:uranium" spawning like "display_blocks:uranium".
|
||||
technic_uranium_new_ore_gen = true
|
||||
--Enable to add a recipe that uses "technic:uranium"
|
||||
enable_technic_recipe = true
|
@ -1,2 +0,0 @@
|
||||
default
|
||||
technic?
|
@ -1 +0,0 @@
|
||||
This mod adds blocks that create crystals on top. Some have different light levels others can be seen through and i hope i can make them do other things too.
|
@ -1,267 +0,0 @@
|
||||
local PATH = minetest.get_modpath("display_blocks")
|
||||
|
||||
dofile(PATH.."/config.lua")
|
||||
dofile(PATH.."/technic.lua")
|
||||
|
||||
if enable_display_uranium == true then
|
||||
dofile(minetest.get_modpath("display_blocks").."/uranium.lua")
|
||||
end
|
||||
|
||||
local Scale = 0.9
|
||||
|
||||
function disp(base, name, light, rec, rp)
|
||||
minetest.register_node( "display_blocks:"..base.."_base", {
|
||||
description = name.."Display Base",
|
||||
tiles = { "display_blocks_"..base.."_block.png" },
|
||||
is_ground_content = true,
|
||||
groups = {cracky=3,},
|
||||
light_source = light,
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
drawtype = "glasslike",
|
||||
})
|
||||
|
||||
minetest.register_node( "display_blocks:"..base.."_crystal", {
|
||||
drawtype = "plantlike",
|
||||
description = name.." Display Crystal",
|
||||
tiles = { "display_blocks_"..base.."_crystal.png" },
|
||||
is_ground_content = true,
|
||||
paramtype = "light",
|
||||
visual_scale = Scale,
|
||||
groups = {immortal=1, not_in_creative_inventory=1},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 },
|
||||
},
|
||||
walkable = false,
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"display_blocks:"..base.."_base"},
|
||||
interval = 2.0,
|
||||
chance = 1.0,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
pos.y = pos.y + 1
|
||||
local n = minetest.get_node(pos)
|
||||
if n and n.name == "air" then
|
||||
minetest.add_node(pos, {name="display_blocks:"..base.."_crystal"})
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
function remove_crystal(pos, node, active_object_count, active_object_count_wider)
|
||||
if node.name == "display_blocks:"..base.."_base" then
|
||||
pos.y = pos.y + 1
|
||||
local n = minetest.get_node(pos)
|
||||
if n and n.name == "display_blocks:"..base.."_crystal" then
|
||||
minetest.remove_node(pos)
|
||||
end
|
||||
end
|
||||
end
|
||||
minetest.register_on_dignode(remove_crystal)
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'display_blocks:'..base..'_base 5',
|
||||
recipe = {
|
||||
{'', 'default:mese_crystal_fragment', ''},
|
||||
{rec, 'display_blocks:empty_display', rec},
|
||||
{'', rec, ''},
|
||||
},
|
||||
replacements = {{rec, rp}, {rec, rp},{rec, rp}},
|
||||
})
|
||||
end
|
||||
|
||||
-- disp(base, name, rec, rp)
|
||||
disp("mese", "Mese", 0, "default:mese_block", "")
|
||||
disp("glass", "Glass", 0, "default:sand", "")
|
||||
disp("fire", "Fire", 12, "bucket:bucket_lava" ,"bucket:bucket_empty")
|
||||
disp("air", "Air", 5, "bucket:bucket_empty", "bucket:bucket_empty")
|
||||
disp("water", "Water", 0, "bucket:bucket_water", "bucket:bucket_empty")
|
||||
disp("uranium", "Uranium", 10, "display_blocks:uranium_block", "")
|
||||
disp("earth", "Earth", 0, "display_blocks:compressed_earth", "")
|
||||
disp("metal", "Metal", 2, "default:steelblock", "")
|
||||
|
||||
|
||||
if minetest.get_modpath("titanium") then
|
||||
disp("titanium", "Titanium", 0, "titanium:block", "")
|
||||
end
|
||||
|
||||
--
|
||||
-- Universia Display
|
||||
--
|
||||
|
||||
minetest.register_node( "display_blocks:universia_base", {
|
||||
description = "Universia Display Base",
|
||||
tiles = {"display_blocks_universia_block.png"},
|
||||
is_ground_content = true,
|
||||
groups = {cracky=3,},
|
||||
light_source = 15,
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
drawtype = "glasslike",
|
||||
})
|
||||
|
||||
minetest.register_node( "display_blocks:universia_crystal", {
|
||||
description = "Universia Display Crystal",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"display_blocks_universia_crystal.png"},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 },
|
||||
},
|
||||
walkable = false,
|
||||
is_ground_content = true,
|
||||
paramtype = "light",
|
||||
visual_scale = Scale,
|
||||
groups = {immortal=1, not_in_creative_inventory=1},
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"display_blocks:universia_base"},
|
||||
interval = 1.0,
|
||||
chance = 1.0,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name="display_blocks:universia_crystal"})
|
||||
end
|
||||
})
|
||||
|
||||
function remove_crystal(pos, node, active_object_count, active_object_count_wider)
|
||||
if
|
||||
node.name == "display_blocks:universia_base"
|
||||
then
|
||||
pos.y = pos.y + 1
|
||||
minetest.remove_node(pos, {name="display_blocks:universia_crystal"})
|
||||
end
|
||||
end
|
||||
minetest.register_on_dignode(remove_crystal)
|
||||
|
||||
minetest.register_craft({
|
||||
output = "display_blocks:universia_base",
|
||||
recipe = {
|
||||
{'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'},
|
||||
{'display_blocks:natura_cube', 'default:mese_block', 'display_blocks:industria_cube'},
|
||||
{'default:obsidian', 'default:obsidian', 'default:obsidian'},
|
||||
},
|
||||
})
|
||||
|
||||
--
|
||||
-- Other Blocks
|
||||
--
|
||||
|
||||
minetest.register_node("display_blocks:compressed_earth", {
|
||||
description = "Compressed Earth",
|
||||
tiles = {"display_blocks_compressed_earth.png"},
|
||||
groups = {crumbly=3,soil=1},
|
||||
sounds = default.node_sound_dirt_defaults({
|
||||
footstep = {name="default_grass_footstep", gain=0.25},
|
||||
}),
|
||||
})
|
||||
|
||||
minetest.register_node("display_blocks:empty_display", {
|
||||
description = "Empty Display",
|
||||
tiles = {"display_blocks_empty_display.png"},
|
||||
groups = {cracky=3,oddly_breakable_by_hand=3},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
drawtype = "glasslike",
|
||||
is_ground_content = true,
|
||||
})
|
||||
|
||||
minetest.register_node("display_blocks:industria_cube", {
|
||||
description = "Industria Cube",
|
||||
tiles = {"display_blocks_industria_cube.png"},
|
||||
groups = {cracky=3,oddly_breakable_by_hand=3},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
drawtype = "glasslike",
|
||||
is_ground_content = true,
|
||||
})
|
||||
|
||||
minetest.register_node("display_blocks:natura_cube", {
|
||||
description = "Natura Cube",
|
||||
tiles = {"display_blocks_natura_cube.png"},
|
||||
groups = {cracky=3,oddly_breakable_by_hand=3},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
drawtype = "glasslike",
|
||||
is_ground_content = true,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output= "display_blocks:compressed_earth",
|
||||
recipe = {
|
||||
{'default:gravel', 'default:dirt', 'default:gravel'},
|
||||
{'default:dirt', 'default:gravel', 'default:dirt'},
|
||||
{'default:gravel', 'default:dirt', 'default:gravel'},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "display_blocks:empty_display",
|
||||
recipe = {
|
||||
{'default:desert_sand', 'default:glass', 'default:sand'},
|
||||
{'default:glass', '', 'default:glass'},
|
||||
{'default:sand', 'default:glass', 'default:desert_sand'},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "display_blocks:natura_cube",
|
||||
recipe = {
|
||||
{'', 'display_blocks:air_base', ''},
|
||||
{'display_blocks:fire_base', '', 'display_blocks:water_base'},
|
||||
{'', 'display_blocks:earth_base', ''},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "display_blocks:industria_cube",
|
||||
recipe = {
|
||||
{'', 'display_blocks:mese_base', ''},
|
||||
{'display_blocks:metal_base', '', 'display_blocks:glass_base'},
|
||||
{'', 'display_blocks:uranium_base', ''},
|
||||
},
|
||||
})
|
||||
|
||||
--
|
||||
-- Compressed Earth Ore Gen
|
||||
--
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "display_blocks:compressed_earth",
|
||||
wherein = "default:dirt",
|
||||
clust_scarcity = 25*25*25,
|
||||
clust_num_ores = 20,
|
||||
clust_size = 5,
|
||||
y_max = -5,
|
||||
y_min = -15,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "display_blocks:compressed_earth",
|
||||
wherein = "default:dirt",
|
||||
clust_scarcity = 20*20*20,
|
||||
clust_num_ores = 50,
|
||||
clust_size = 5,
|
||||
y_max = -16,
|
||||
y_min = -29,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "display_blocks:compressed_earth",
|
||||
wherein = "default:dirt",
|
||||
clust_scarcity = 15*15*15,
|
||||
clust_num_ores = 80,
|
||||
clust_size = 5,
|
||||
y_max = -30,
|
||||
y_min = -100,
|
||||
})
|
||||
|
||||
print("[Display Blocks] Loaded! by jojoa1997 :-)")
|
@ -1 +0,0 @@
|
||||
name = display_blocks
|
@ -1,40 +0,0 @@
|
||||
if enable_display_uranium == false then
|
||||
minetest.register_alias("display_blocks:uranium_dust", "technic:uranium_block")
|
||||
minetest.register_alias("display_blocks:uranium_block", "technic:uranium_block")
|
||||
minetest.register_alias("display_blocks:uranium_ore", "technic:mineral_uranium")
|
||||
end
|
||||
|
||||
if technic_uranium_new_ore_gen == true then
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "technic:mineral_uranium",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 20*20*20,
|
||||
clust_num_ores = 18,
|
||||
clust_size = 3,
|
||||
y_min = -3000,
|
||||
y_max = -2000,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "technic:mineral_uranium",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity =30*30*30,
|
||||
clust_num_ores = 40,
|
||||
clust_size = 4,
|
||||
y_min = -7000,
|
||||
y_max = -5000,
|
||||
})
|
||||
end
|
||||
|
||||
if enable_technic_recipe == true then
|
||||
minetest.register_craft({
|
||||
output = 'display_blocks:uranium_base 5',
|
||||
recipe = {
|
||||
{'', 'default:mese_crystal_fragment', ''},
|
||||
{'technic:uranium_block', 'display_blocks:empty_display', 'technic:uranium_block'},
|
||||
{'', 'technic:uranium_block', ''},
|
||||
}
|
||||
})
|
||||
end
|
Before Width: | Height: | Size: 158 B |
@ -1,56 +0,0 @@
|
||||
minetest.register_node( "display_blocks:uranium_ore", {
|
||||
description = "Uranium Ore",
|
||||
tiles = { "default_stone.png^uranium_ore.png" },
|
||||
is_ground_content = true,
|
||||
groups = {cracky=3},
|
||||
drop = 'craft "display_blocks:uranium_dust" 3',
|
||||
})
|
||||
|
||||
minetest.register_craftitem( "display_blocks:uranium_dust", {
|
||||
description = "Uranium Dust",
|
||||
inventory_image = "uranium_dust.png",
|
||||
on_place_on_ground = minetest.craftitem_place_item,
|
||||
})
|
||||
|
||||
minetest.register_node( "display_blocks:uranium_block", {
|
||||
description = "Uranium Block",
|
||||
tiles = { "uranium_block.png" },
|
||||
light_propagates = true,
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
light_source = 15,
|
||||
is_ground_content = true,
|
||||
groups = {snappy=1,bendy=2,cracky=1,melty=2,level=2},
|
||||
})
|
||||
|
||||
|
||||
minetest.register_craft( {
|
||||
output = 'node "display_blocks:uranium_block" 1',
|
||||
recipe = {
|
||||
{ 'display_blocks:uranium_dust', 'display_blocks:uranium_dust', 'display_blocks:uranium_dust' },
|
||||
{ 'display_blocks:uranium_dust', 'display_blocks:uranium_dust', 'display_blocks:uranium_dust' },
|
||||
{ 'display_blocks:uranium_dust', 'display_blocks:uranium_dust', 'display_blocks:uranium_dust' },
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "display_blocks:uranium_ore",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 10*10*10,
|
||||
clust_num_ores =18,
|
||||
clust_size = 3,
|
||||
y_min = -3000,
|
||||
y_max = -2000,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "display_blocks:uranium_ore",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity =20*20*20,
|
||||
clust_num_ores =40,
|
||||
clust_size = 4,
|
||||
y_min = -7000,
|
||||
y_max = -5000,
|
||||
})
|
63
display_blocks_redo/COPYING
Normal file
@ -0,0 +1,63 @@
|
||||
The code in this mod is licensed under the following terms:
|
||||
|
||||
This is free and unencumbered software released into the public domain.
|
||||
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||
distribute this software, either in source code form or as a compiled
|
||||
binary, for any purpose, commercial or non-commercial, and by any
|
||||
means.
|
||||
|
||||
In jurisdictions that recognize copyright laws, the author or authors
|
||||
of this software dedicate any and all copyright interest in the
|
||||
software to the public domain. We make this dedication for the benefit
|
||||
of the public at large and to the detriment of our heirs and
|
||||
successors. We intend this dedication to be an overt act of
|
||||
relinquishment in perpetuity of all present and future rights to this
|
||||
software under copyright law.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
For more information, please refer to <http://unlicense.org/>
|
||||
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
The textures in this mod are from the original display_blocks mod and are licensed under the same terms as the original.
|
||||
The contents of the original LICENSE.txt file are as follows:
|
||||
|
||||
|
||||
License:
|
||||
|
||||
Copyright (C) 2016 - VanessaE, cheapie, jojoa1997
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject
|
||||
to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
|
||||
KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
||||
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of the authors shall
|
||||
not be used in advertising or otherwise to promote the sale, use or
|
||||
other dealings in this Software without prior written authorization
|
||||
from the authors.
|
||||
|
302
display_blocks_redo/init.lua
Normal file
@ -0,0 +1,302 @@
|
||||
local disptypes = {
|
||||
{
|
||||
name = "Mese",
|
||||
light_source = 0,
|
||||
craft_type = "normal",
|
||||
craft_item = "default:mese",
|
||||
},
|
||||
{
|
||||
name = "Glass",
|
||||
light_source = 0,
|
||||
craft_type = "normal",
|
||||
craft_item = "default:glass",
|
||||
},
|
||||
{
|
||||
name = "Fire",
|
||||
light_source = 12,
|
||||
craft_type = "normal",
|
||||
craft_item = "bucket:bucket_lava",
|
||||
},
|
||||
{
|
||||
name = "Air",
|
||||
light_source = 5,
|
||||
craft_type = "normal",
|
||||
craft_item = "bucket:bucket_empty",
|
||||
},
|
||||
{
|
||||
name = "Water",
|
||||
light_source = 0,
|
||||
craft_type = "normal",
|
||||
craft_item = "bucket:bucket_water",
|
||||
},
|
||||
{
|
||||
name = "Uranium",
|
||||
light_source = 10,
|
||||
craft_type = "normal",
|
||||
craft_item = "group:uranium_block",
|
||||
},
|
||||
{
|
||||
name = "Earth",
|
||||
light_source = 0,
|
||||
craft_type = "normal",
|
||||
craft_item = "default:dirt",
|
||||
},
|
||||
{
|
||||
name = "Metal",
|
||||
light_source = 2,
|
||||
craft_type = "normal",
|
||||
craft_item = "default:steelblock",
|
||||
},
|
||||
{
|
||||
name = "Empty",
|
||||
light_source = 0,
|
||||
suppress_crystal = true,
|
||||
craft_type = "special",
|
||||
craft_recipe = {
|
||||
{"default:desert_sand","default:glass","default:sand",},
|
||||
{"default:glass","","default:glass",},
|
||||
{"default:sand","default:glass","default:desert_sand",},
|
||||
},
|
||||
},
|
||||
{
|
||||
name = "Universia",
|
||||
light_source = 14,
|
||||
craft_type = "special",
|
||||
craft_recipe = {
|
||||
{"default:mese_crystal","default:mese_crystal","default:mese_crystal",},
|
||||
{"display_blocks_redo:natura_cube","default:mese","display_blocks_redo:industria_cube",},
|
||||
{"default:obsidian","default:obsidian","default:obsidian",},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
if minetest.get_modpath("titanium") then
|
||||
table.insert(disptypes,{
|
||||
name = "Titanium",
|
||||
light_source = 0,
|
||||
craft_type = "normal",
|
||||
craft_item = "titanium:block",
|
||||
})
|
||||
end
|
||||
|
||||
local function regcraft(def)
|
||||
local lname = string.lower(def.name)
|
||||
if def.craft_type == "normal" then
|
||||
local craft = {}
|
||||
craft.output = string.format("display_blocks_redo:%s_base",lname)
|
||||
craft.recipe = {
|
||||
{"","default:mese_crystal_fragment","",},
|
||||
{def.craft_item,"display_blocks_redo:empty_base",def.craft_item,},
|
||||
{"",def.craft_item,"",},
|
||||
}
|
||||
if string.sub(def.craft_item,1,7) == "bucket:" then
|
||||
craft.replacements = {}
|
||||
for i=1,3,1 do
|
||||
table.insert(craft.replacements,{def.craft_item,"bucket:bucket_empty",})
|
||||
end
|
||||
end
|
||||
minetest.register_craft(craft)
|
||||
elseif def.craft_type == "special" then
|
||||
local craft = {}
|
||||
craft.output = string.format("display_blocks_redo:%s_base",lname)
|
||||
craft.recipe = def.craft_recipe
|
||||
minetest.register_craft(craft)
|
||||
end
|
||||
end
|
||||
|
||||
for _,def in ipairs(disptypes) do
|
||||
local lname = string.lower(def.name)
|
||||
if not def.suppress_crystal then
|
||||
minetest.register_node(string.format("display_blocks_redo:%s_crystal",lname),{
|
||||
description = string.format("%s Display Crystal (you hacker you!)",def.name),
|
||||
drawtype = "plantlike",
|
||||
drop = "",
|
||||
groups = {
|
||||
not_in_creative_inventory = 1,
|
||||
},
|
||||
paramtype = "light",
|
||||
tiles = {
|
||||
string.format("display_blocks_redo_%s_crystal.png",lname),
|
||||
},
|
||||
light_source = def.light_source,
|
||||
visual_scale = 0.9,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.15,-0.5,-0.15,0.15,0.2,0.15},
|
||||
},
|
||||
walkable = false,
|
||||
})
|
||||
minetest.register_alias(string.format("display_blocks:%s_crystal",lname),string.format("display_blocks_redo:%s_crystal",lname))
|
||||
end
|
||||
minetest.register_node(string.format("display_blocks_redo:%s_base",lname),{
|
||||
description = string.format("%s Display Base",def.name),
|
||||
groups = {
|
||||
cracky = 3,
|
||||
},
|
||||
sounds = minetest.global_exists("default") and default.node_sound_glass_defaults(),
|
||||
paramtype = "light",
|
||||
light_source = def.light_source,
|
||||
tiles = {
|
||||
string.format("display_blocks_redo_%s_base.png",lname),
|
||||
},
|
||||
drawtype = "glasslike",
|
||||
after_place_node = function(pos,_,stack)
|
||||
if def.suppress_crystal then return end
|
||||
local crystalpos = vector.add(pos,vector.new(0,1,0))
|
||||
if minetest.get_node(crystalpos).name == "air" then
|
||||
local node = {}
|
||||
node.name = string.format("display_blocks_redo:%s_crystal",lname)
|
||||
minetest.set_node(crystalpos,node)
|
||||
stack:take_item(1)
|
||||
return stack
|
||||
else
|
||||
minetest.set_node(pos,{name = "air"})
|
||||
return stack
|
||||
end
|
||||
end,
|
||||
after_destruct = function(pos)
|
||||
if def.suppress_crystal then return end
|
||||
local crystalpos = vector.add(pos,vector.new(0,1,0))
|
||||
if minetest.get_node(crystalpos).name == string.format("display_blocks_redo:%s_crystal",lname) then
|
||||
minetest.set_node(crystalpos,{name = "air"})
|
||||
end
|
||||
end,
|
||||
})
|
||||
regcraft(def)
|
||||
minetest.register_alias(string.format("display_blocks:%s_base",lname),string.format("display_blocks_redo:%s_base",lname))
|
||||
end
|
||||
|
||||
minetest.register_alias("display_blocks:empty_display","display_blocks_redo:empty_base")
|
||||
minetest.register_alias("display_blocks:compressed_earth","default:dirt")
|
||||
|
||||
minetest.register_node("display_blocks_redo:natura_cube",{
|
||||
description = "Natura Cube",
|
||||
tiles = {
|
||||
"display_blocks_redo_natura_cube.png",
|
||||
},
|
||||
groups = {
|
||||
cracky = 3,
|
||||
oddly_breakable_by_hand = 3,
|
||||
},
|
||||
paramtype = "light",
|
||||
drawtype = "glasslike",
|
||||
sounds = minetest.global_exists("default") and default.node_sound_glass_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_alias("display_blocks:natura_cube","display_blocks_redo:natura_cube")
|
||||
|
||||
minetest.register_node("display_blocks_redo:industria_cube",{
|
||||
description = "Industria Cube",
|
||||
tiles = {
|
||||
"display_blocks_redo_industria_cube.png",
|
||||
},
|
||||
groups = {
|
||||
cracky = 3,
|
||||
oddly_breakable_by_hand = 3,
|
||||
},
|
||||
paramtype = "light",
|
||||
drawtype = "glasslike",
|
||||
sounds = minetest.global_exists("default") and default.node_sound_glass_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_alias("display_blocks:industria_cube","display_blocks_redo:industria_cube")
|
||||
|
||||
minetest.register_craft({
|
||||
output = "display_blocks_redo:natura_cube",
|
||||
recipe = {
|
||||
{"","display_blocks:air_base","",},
|
||||
{"display_blocks:fire_base","","display_blocks:water_base",},
|
||||
{"","display_blocks:earth_base","",},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "display_blocks_redo:industria_cube",
|
||||
recipe = {
|
||||
{"","display_blocks:mese_base","",},
|
||||
{"display_blocks:metal_base","","display_blocks:glass_base",},
|
||||
{"","display_blocks:uranium_base","",},
|
||||
},
|
||||
})
|
||||
|
||||
if minetest.get_modpath("technic_worldgen") then
|
||||
minetest.register_alias("display_blocks:uranium_ore","technic:mineral_uranium")
|
||||
minetest.register_alias("display_blocks:uranium_dust","technic:uranium_dust")
|
||||
minetest.register_alias("display_blocks:uranium_block","technic:uranium_block")
|
||||
minetest.register_alias("display_blocks_redo:uranium_ore","technic:mineral_uranium")
|
||||
minetest.register_alias("display_blocks_redo:uranium_dust","technic:uranium_dust")
|
||||
minetest.register_alias("display_blocks_redo:uranium_block","technic:uranium_block")
|
||||
else
|
||||
minetest.register_node("display_blocks_redo:uranium_ore",{
|
||||
description = "Uranium Ore",
|
||||
drop = "display_blocks_redo:uranium_dust 3",
|
||||
paramtype = "light",
|
||||
light_source = 2,
|
||||
groups = {
|
||||
cracky = 3,
|
||||
},
|
||||
tiles = {
|
||||
"default_stone.png^display_blocks_redo_uranium_ore.png",
|
||||
},
|
||||
is_ground_content = true,
|
||||
})
|
||||
|
||||
minetest.register_node("display_blocks_redo:uranium_block",{
|
||||
description = "Uranium Block",
|
||||
paramtype = "light",
|
||||
light_source = 7,
|
||||
groups = {
|
||||
snappy = 1,
|
||||
},
|
||||
tiles = {
|
||||
"display_blocks_redo_uranium_block.png",
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craftitem("display_blocks_redo:uranium_dust",{
|
||||
description = "Uranium Dust",
|
||||
inventory_image = "display_blocks_redo_uranium_dust.png",
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "display_blocks_redo:uranium_block",
|
||||
recipe = {
|
||||
"display_blocks_redo:uranium_dust",
|
||||
"display_blocks_redo:uranium_dust",
|
||||
"display_blocks_redo:uranium_dust",
|
||||
"display_blocks_redo:uranium_dust",
|
||||
"display_blocks_redo:uranium_dust",
|
||||
"display_blocks_redo:uranium_dust",
|
||||
"display_blocks_redo:uranium_dust",
|
||||
"display_blocks_redo:uranium_dust",
|
||||
"display_blocks_redo:uranium_dust",
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "display_blocks_redo:uranium_ore",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 10*10*10,
|
||||
clust_num_ores = 18,
|
||||
clust_size = 3,
|
||||
y_min = -3000,
|
||||
y_max = -2000,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "display_blocks_redo:uranium_ore",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 20*20*20,
|
||||
clust_num_ores = 40,
|
||||
clust_size = 4,
|
||||
y_min = -31000,
|
||||
y_max = -5000,
|
||||
})
|
||||
|
||||
minetest.register_alias("display_blocks:uranium_ore","display_blocks_redo:uranium_ore")
|
||||
minetest.register_alias("display_blocks:uranium_dust","display_blocks_redo:uranium_dust")
|
||||
minetest.register_alias("display_blocks:uranium_block","display_blocks_redo:uranium_block")
|
||||
end
|
3
display_blocks_redo/mod.conf
Normal file
@ -0,0 +1,3 @@
|
||||
name = display_blocks_redo
|
||||
description = Rewrite of the old display_blocks mod for Minetest
|
||||
optional_depends = default
|
Before Width: | Height: | Size: 211 B After Width: | Height: | Size: 211 B |
Before Width: | Height: | Size: 238 B After Width: | Height: | Size: 238 B |
Before Width: | Height: | Size: 888 B After Width: | Height: | Size: 888 B |
Before Width: | Height: | Size: 498 B After Width: | Height: | Size: 498 B |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 351 B After Width: | Height: | Size: 351 B |
Before Width: | Height: | Size: 185 B After Width: | Height: | Size: 185 B |
Before Width: | Height: | Size: 228 B After Width: | Height: | Size: 228 B |
Before Width: | Height: | Size: 157 B After Width: | Height: | Size: 157 B |
Before Width: | Height: | Size: 164 B After Width: | Height: | Size: 164 B |
Before Width: | Height: | Size: 315 B After Width: | Height: | Size: 315 B |
Before Width: | Height: | Size: 260 B After Width: | Height: | Size: 260 B |
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 406 B |
Before Width: | Height: | Size: 359 B After Width: | Height: | Size: 359 B |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 289 B After Width: | Height: | Size: 289 B |
Before Width: | Height: | Size: 268 B After Width: | Height: | Size: 268 B |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 325 B After Width: | Height: | Size: 325 B |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 260 B After Width: | Height: | Size: 260 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 228 B After Width: | Height: | Size: 228 B |
Before Width: | Height: | Size: 254 B After Width: | Height: | Size: 254 B |
Before Width: | Height: | Size: 209 B After Width: | Height: | Size: 209 B |
@ -16,8 +16,10 @@ if [ ! -d "$upstream_mods_path" ] ; then
|
||||
fi
|
||||
|
||||
modpack_path=$upstream_mods_path"/my_mods/dreambuilder_modpack"
|
||||
gitrefs_path=$upstream_mods_path"/my_mods/dreambuilder_git_refs"
|
||||
|
||||
rm -rf $modpack_path/*
|
||||
rm -rf $modpack_path
|
||||
mkdir $modpack_path
|
||||
touch $modpack_path/modpack.txt
|
||||
|
||||
echo -e "\nBring all mods up-to-date from "$upstream_mods_path
|
||||
@ -62,6 +64,7 @@ cheapies_mods/rgblightstone \
|
||||
cheapies_mods/solidcolor \
|
||||
cheapies_mods/arrowboards \
|
||||
cheapies_mods/digidisplay \
|
||||
cheapies_mods/display_blocks_redo \
|
||||
Jeijas_mods/digilines \
|
||||
Jeijas_mods/jumping \
|
||||
TenPlus1s_mods/farming \
|
||||
@ -75,7 +78,6 @@ DonBatmans_mods/mymillwork \
|
||||
quartz \
|
||||
stained_glass \
|
||||
titanium \
|
||||
display_blocks \
|
||||
gardening \
|
||||
caverealms_lite \
|
||||
deezls_mods/extra_stairsplus \
|
||||
@ -183,6 +185,8 @@ done <<< "$LIST"
|
||||
|
||||
ln -s $upstream_mods_path"/my_mods/dreambuilder_mp_extras/readme.md" $modpack_path
|
||||
|
||||
cp -a $gitrefs_path/.git* $modpack_path
|
||||
|
||||
echo -e "\nCustomization completed. Here's what will be included in the modpack:\n"
|
||||
|
||||
ls $modpack_path
|
||||
ls -a $modpack_path
|
||||
|
@ -7,18 +7,29 @@ echo -e "=================================================================\n"
|
||||
|
||||
timestamp=`date +%Y%m%d-%H%M`
|
||||
|
||||
echo -e "\nCopy the Dreambuilder to /home/vanessa/.minetest/mods..."
|
||||
echo -e "\nCopy Dreambuilder to /home/vanessa/.minetest/mods..."
|
||||
echo -e "=================================================================\n"
|
||||
|
||||
rsync -a --exclude=".git/" \
|
||||
/home/vanessa/Minetest-related/mods/my_mods/dreambuilder_modpack \
|
||||
/home/vanessa/.minetest/mods/
|
||||
rm -rf /home/vanessa/.minetest/mods/dreambuilder_modpack
|
||||
|
||||
cp -a /home/vanessa/Minetest-related/mods/my_mods/dreambuilder_modpack \
|
||||
/home/vanessa/.minetest/mods/
|
||||
|
||||
echo -e "\nUpdate git repos..."
|
||||
echo -e "=================================================================\n"
|
||||
|
||||
rm -rf /run/shm/dreambuilder_modpack
|
||||
rsync -aL /home/vanessa/Minetest-related/mods/my_mods/dreambuilder_modpack /run/shm/
|
||||
rm -rf /run/shm/dreambuilder_modpack*
|
||||
|
||||
rsync -aL \
|
||||
/home/vanessa/Minetest-related/mods/my_mods/dreambuilder_modpack/* \
|
||||
/run/shm/dreambuilder_modpack_raw
|
||||
|
||||
rsync -a --exclude ".git*" \
|
||||
/run/shm/dreambuilder_modpack_raw/* \
|
||||
/run/shm/dreambuilder_modpack
|
||||
|
||||
cp -a /home/vanessa/Minetest-related/mods/my_mods/dreambuilder_git_refs/.git* \
|
||||
/run/shm/dreambuilder_modpack
|
||||
|
||||
cd /run/shm/dreambuilder_modpack
|
||||
git add .
|
||||
@ -28,24 +39,24 @@ git tag $timestamp
|
||||
git push --tags
|
||||
cd ~
|
||||
|
||||
rsync -aL --delete /run/shm/dreambuilder_modpack/.git /home/vanessa/Minetest-related/mods/my_mods/dreambuilder_modpack
|
||||
rm -rf /run/shm/dreambuilder_modpack
|
||||
|
||||
echo -e "\nRecreate secondary game archive ..."
|
||||
echo -e "=================================================================\n"
|
||||
|
||||
echo "Build timestamp: $timestamp" > \
|
||||
/home/vanessa/Minetest-related/mods/my_mods/dreambuilder_modpack/build-date.txt
|
||||
/run/shm/dreambuilder_modpack/build-date.txt
|
||||
|
||||
rm -f /home/vanessa/Minetest-related/Dreambuilder_Modpack.tar.bz2
|
||||
cd /home/vanessa/Minetest-related/mods/my_mods/
|
||||
cd /run/shm
|
||||
|
||||
tar -jcf /home/vanessa/Digital-Audio-Concepts-Website/vanessa/hobbies/minetest/Dreambuilder_Modpack.tar.bz2 \
|
||||
--exclude=".git/*" \
|
||||
dreambuilder_modpack
|
||||
|
||||
rm /home/vanessa/Minetest-related/mods/my_mods/dreambuilder_modpack/build-date.txt
|
||||
|
||||
/home/vanessa/Scripts/sync-website.sh
|
||||
|
||||
rm -rf /run/shm/dreambuilder_modpack*
|
||||
|
||||
echo -e "\nDone. Build timestamp: $timestamp \n"
|
||||
|
||||
|
@ -265,7 +265,7 @@ default.register_leafdecay({
|
||||
|
||||
--Stairs
|
||||
|
||||
if minetest.get_modpath("stairs") ~= nil then
|
||||
if minetest.get_modpath("stairs") ~= nil then
|
||||
stairs.register_stair_and_slab(
|
||||
"ebony_trunk",
|
||||
"ebony:trunk",
|
||||
@ -277,7 +277,7 @@ if minetest.get_modpath("stairs") ~= nil then
|
||||
)
|
||||
end
|
||||
|
||||
if minetest.get_modpath("bonemeal") ~= nil then
|
||||
if minetest.get_modpath("bonemeal") ~= nil then
|
||||
bonemeal:add_sapling({
|
||||
{"ebony:sapling", grow_new_ebony_tree, "soil"},
|
||||
})
|
||||
|
11
facade/.github/workflows/check-release.yml
vendored
@ -1,11 +0,0 @@
|
||||
on: [push, pull_request]
|
||||
name: Check & Release
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: lint
|
||||
uses: Roang-zero1/factorio-mod-luacheck@master
|
||||
with:
|
||||
luacheckrc_url: https://raw.githubusercontent.com/TumeniNodes/facade/master/.luacheckrc
|
@ -13,7 +13,7 @@ This mod works by adding your new plant to the {growing=1} group and numbering t
|
||||
|
||||
### Changelog:
|
||||
|
||||
- 1.45 - Dirt and Hoes are more in line with default by using dry/wet/base options
|
||||
- 1.45 - Dirt and Hoes are more in line with default by using dry/wet/base options, onion soup added (thanks edcrypt)
|
||||
- 1.44 - Added 'farming_stage_length' in mod settings for speed of crop growth, also thanks to TheDarkTiger for translation updates
|
||||
- 1.43 - Scythe works on use instead of right-click, added seed=1 groups to actual seeds and seed=2 group for plantable food items.
|
||||
- 1.42 - Soil needs water to be present within 3 blocks horizontally and 1 below to make wet soil, Jack 'o Lanterns now check protection, add chocolate block.
|
||||
|
91
farming/crops/mint.lua
Normal file
@ -0,0 +1,91 @@
|
||||
|
||||
local S = farming.intllib
|
||||
|
||||
-- mint seed
|
||||
minetest.register_craftitem("farming:seed_mint", {
|
||||
description = S("Mint Seeds"),
|
||||
inventory_image = "farming_mint_seeds.png",
|
||||
groups = {seed = 2, flammable = 2},
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
return farming.place_seed(
|
||||
itemstack, placer, pointed_thing, "farming:mint_1")
|
||||
end
|
||||
})
|
||||
|
||||
-- mint leaf
|
||||
minetest.register_craftitem("farming:mint_leaf", {
|
||||
description = S("Mint Leaf"),
|
||||
inventory_image = "farming_mint_leaf.png",
|
||||
groups = {food_mint = 1, flammable = 4},
|
||||
})
|
||||
|
||||
-- mint tea
|
||||
minetest.register_craftitem("farming:mint_tea", {
|
||||
description = S("Mint Tea"),
|
||||
inventory_image = "farming_mint_tea.png",
|
||||
on_use = minetest.item_eat(2, "vessels:drinking_glass"),
|
||||
groups = {flammable = 4},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "farming:mint_tea",
|
||||
type = "shapeless",
|
||||
recipe = {
|
||||
"vessels:drinking_glass", "group:food_mint",
|
||||
"group:food_mint", "group:food_mint",
|
||||
"farming:juicer", "bucket:bucket_water"
|
||||
},
|
||||
replacements = {
|
||||
{"group:food_juicer", "farming:juicer"},
|
||||
{"bucket:bucket_water", "bucket:bucket_empty"},
|
||||
},
|
||||
})
|
||||
|
||||
-- mint definition
|
||||
local crop_def = {
|
||||
drawtype = "plantlike",
|
||||
tiles = {"farming_mint_1.png"},
|
||||
paramtype = "light",
|
||||
walkable = false,
|
||||
buildable_to = true,
|
||||
drop = "",
|
||||
selection_box = farming.select,
|
||||
groups = {
|
||||
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
|
||||
not_in_creative_inventory = 1, growing = 1
|
||||
},
|
||||
sounds = default.node_sound_leaves_defaults()
|
||||
}
|
||||
|
||||
-- stage 1
|
||||
minetest.register_node("farming:mint_1", table.copy(crop_def))
|
||||
|
||||
-- stage 2
|
||||
crop_def.tiles = {"farming_mint_2.png"}
|
||||
minetest.register_node("farming:mint_2", table.copy(crop_def))
|
||||
|
||||
-- stage 3
|
||||
crop_def.tiles = {"farming_mint_3.png"}
|
||||
minetest.register_node("farming:mint_3", table.copy(crop_def))
|
||||
|
||||
-- stage 4 (final)
|
||||
crop_def.tiles = {"farming_mint_4.png"}
|
||||
crop_def.groups.growing = 0
|
||||
crop_def.drop = {
|
||||
items = {
|
||||
{items = {"farming:mint_leaf 2"}, rarity = 1},
|
||||
{items = {"farming:mint_leaf 2"}, rarity = 2},
|
||||
{items = {"farming:seed_mint 1"}, rarity = 1},
|
||||
{items = {"farming:seed_mint 2"}, rarity = 2},
|
||||
}
|
||||
}
|
||||
minetest.register_node("farming:mint_4", table.copy(crop_def))
|
||||
|
||||
-- add to registered_plants
|
||||
farming.registered_plants["farming:mint"] = {
|
||||
crop = "farming:mint",
|
||||
seed = "farming:seed_mint",
|
||||
minlight = 13,
|
||||
maxlight = 15,
|
||||
steps = 4
|
||||
}
|
@ -7,7 +7,7 @@
|
||||
|
||||
local S = farming.intllib
|
||||
|
||||
-- potato
|
||||
-- onion
|
||||
minetest.register_craftitem("farming:onion", {
|
||||
description = S("Onion"),
|
||||
inventory_image = "crops_onion.png",
|
||||
@ -18,6 +18,25 @@ minetest.register_craftitem("farming:onion", {
|
||||
on_use = minetest.item_eat(1),
|
||||
})
|
||||
|
||||
-- onion soup
|
||||
minetest.register_craftitem("farming:onion_soup", {
|
||||
description = S("Onion Soup"),
|
||||
inventory_image = "farming_onion_soup.png",
|
||||
groups = {flammable = 2},
|
||||
on_use = minetest.item_eat(6, "farming:bowl"),
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "farming:onion_soup",
|
||||
recipe = {
|
||||
"group:food_onion", "group:food_onion", "group:food_pot",
|
||||
"group:food_onion", "group:food_onion",
|
||||
"group:food_onion", "group:food_onion", "group:food_bowl"
|
||||
},
|
||||
replacements = {{"farming:pot", "farming:pot"}}
|
||||
})
|
||||
|
||||
-- crop definition
|
||||
local crop_def = {
|
||||
drawtype = "plantlike",
|
||||
|
@ -29,6 +29,7 @@ farming.pepper = 0.002
|
||||
farming.pineapple = 0.001
|
||||
farming.peas = 0.001
|
||||
farming.beetroot = 0.001
|
||||
farming.mint = 0.005
|
||||
farming.grains = true -- true or false only
|
||||
|
||||
-- default rarety of crops on map (higher number = more crops)
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
farming = {
|
||||
mod = "redo",
|
||||
version = "20200430",
|
||||
version = "20200527",
|
||||
path = minetest.get_modpath("farming"),
|
||||
select = {
|
||||
type = "fixed",
|
||||
@ -624,6 +624,7 @@ farming.pepper = 0.002
|
||||
farming.pineapple = 0.001
|
||||
farming.peas = 0.001
|
||||
farming.beetroot = 0.001
|
||||
farming.mint = 0.005
|
||||
farming.grains = true
|
||||
farming.rarety = 0.002
|
||||
|
||||
@ -688,6 +689,7 @@ ddoo("peas.lua", farming.peas)
|
||||
ddoo("beetroot.lua", farming.beetroot)
|
||||
ddoo("chili.lua", farming.chili)
|
||||
ddoo("ryeoatrice.lua", farming.grains)
|
||||
ddoo("mint.lua", farming.mint)
|
||||
|
||||
dofile(farming.path.."/food.lua")
|
||||
dofile(farming.path.."/mapgen.lua")
|
||||
|
@ -47,6 +47,8 @@ register_plant("onion_5", 5, 22, nil, "", -1, farming.onion)
|
||||
register_plant("garlic_5", 3, 30, nil, "group:tree", 1, farming.garlic)
|
||||
register_plant("pea_5", 25, 50, nil, "", -1, farming.peas)
|
||||
register_plant("beetroot_5", 1, 15, nil, "", -1, farming.beetroot)
|
||||
register_plant("mint_4", 1, 75, {"default:dirt_with_grass",
|
||||
"default:dirt_with_coniferous_litter"}, "group:water", 1, farming.mint)
|
||||
|
||||
|
||||
if minetest.get_mapgen_setting("mg_name") == "v6" then
|
||||
|
BIN
farming/textures/farming_mint_1.png
Normal file
After Width: | Height: | Size: 114 B |
BIN
farming/textures/farming_mint_2.png
Normal file
After Width: | Height: | Size: 122 B |
BIN
farming/textures/farming_mint_3.png
Normal file
After Width: | Height: | Size: 132 B |
BIN
farming/textures/farming_mint_4.png
Normal file
After Width: | Height: | Size: 174 B |
BIN
farming/textures/farming_mint_leaf.png
Normal file
After Width: | Height: | Size: 158 B |
BIN
farming/textures/farming_mint_seeds.png
Normal file
After Width: | Height: | Size: 143 B |
BIN
farming/textures/farming_mint_tea.png
Normal file
After Width: | Height: | Size: 166 B |
BIN
farming/textures/farming_onion_soup.png
Normal file
After Width: | Height: | Size: 161 B |
19
item_drop/.luacheckrc
Normal file
@ -0,0 +1,19 @@
|
||||
unused_args = false
|
||||
allow_defined_top = true
|
||||
max_line_length = 999
|
||||
|
||||
ignore = {
|
||||
"name", "drops", "i",
|
||||
}
|
||||
|
||||
globals = {
|
||||
"minetest",
|
||||
}
|
||||
|
||||
read_globals = {
|
||||
string = {fields = {"split", "trim"}},
|
||||
table = {fields = {"copy", "getn"}},
|
||||
|
||||
"vector", "ItemStack",
|
||||
"dump",
|
||||
}
|
@ -1,15 +1,14 @@
|
||||
# item_drop
|
||||
# Item Drop [](https://github.com/minetest-mods/item_drop/actions) [](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html)
|
||||
|
||||
A highly configurable mod providing item magnet and in-world node drops\
|
||||
By [PilzAdam](https://github.com/PilzAdam),
|
||||
[texmex](https://github.com/tacotexmex/), [hybriddog](https://github.com/hybriddog/).
|
||||
|
||||
## Description
|
||||
A highly configurable mod providing item magnet and in-world node drops
|
||||
|
||||
## Licensing
|
||||
LGPLv2.1/CC BY-SA 3.0. Particle code from WCILA mod by Aurailus, originally licensed MIT.
|
||||
|
||||
## Notes
|
||||
item_drop can be played with Minetest 0.4.16 or above. It was originally
|
||||
`item_drop` can be played with Minetest 0.4.16 or above. It was originally
|
||||
developed by [PilzAdam](https://github.com/PilzAdam/item_drop).
|
||||
|
||||
## List of features
|
||||
|
@ -103,7 +103,7 @@ if legacy_setting_getbool("item_drop.enable_item_pickup",
|
||||
if pickup_particle then
|
||||
local item = minetest.registered_nodes[
|
||||
ent.itemstring:gsub("(.*)%s.*$", "%1")]
|
||||
local image = ""
|
||||
local image
|
||||
if item and item.tiles and item.tiles[1] then
|
||||
if inventorycube_drawtypes[item.drawtype] then
|
||||
local tiles = item.tiles
|
||||
@ -201,9 +201,9 @@ if legacy_setting_getbool("item_drop.enable_item_pickup",
|
||||
local itemdef = minetest.registered_entities["__builtin:item"]
|
||||
local old_on_step = itemdef.on_step
|
||||
local function do_nothing() end
|
||||
function itemdef.on_step(self, dtime)
|
||||
function itemdef.on_step(self, ...)
|
||||
if not self.is_magnet_item then
|
||||
return old_on_step(self, dtime)
|
||||
return old_on_step(self, ...)
|
||||
end
|
||||
ObjectRef = ObjectRef or getmetatable(self.object)
|
||||
local old_funcs = {}
|
||||
@ -212,7 +212,7 @@ if legacy_setting_getbool("item_drop.enable_item_pickup",
|
||||
old_funcs[method] = ObjectRef[method]
|
||||
ObjectRef[method] = do_nothing
|
||||
end
|
||||
old_on_step(self, dtime)
|
||||
old_on_step(self, ...)
|
||||
for i = 1, #blocked_methods do
|
||||
local method = blocked_methods[i]
|
||||
ObjectRef[method] = old_funcs[method]
|
||||
@ -252,6 +252,13 @@ if legacy_setting_getbool("item_drop.enable_item_pickup",
|
||||
return keys_pressed ~= key_invert
|
||||
end
|
||||
|
||||
local function is_inside_map(pos)
|
||||
local bound = 31000
|
||||
return -bound < pos.x and pos.x < bound
|
||||
and -bound < pos.y and pos.y < bound
|
||||
and -bound < pos.z and pos.z < bound
|
||||
end
|
||||
|
||||
-- called for each player to possibly collect an item, returns true if so
|
||||
local function pickupfunc(player)
|
||||
if not has_keys_pressed(player)
|
||||
@ -261,6 +268,10 @@ if legacy_setting_getbool("item_drop.enable_item_pickup",
|
||||
end
|
||||
|
||||
local pos = player:get_pos()
|
||||
if not is_inside_map(pos) then
|
||||
-- get_objects_inside_radius crashes for too far positions
|
||||
return
|
||||
end
|
||||
pos.y = pos.y+0.5
|
||||
local inv = player:get_inventory()
|
||||
|
||||
|
@ -1,6 +1,14 @@
|
||||
local selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -8/16, -8/16, -8/16, 8/16, -6/16, 8/16 }
|
||||
}
|
||||
|
||||
local nodebox = {
|
||||
type = "fixed",
|
||||
fixed = {{-8/16, -8/16, -8/16, 8/16, -7/16, 8/16 }},
|
||||
fixed = {
|
||||
{ -8/16, -8/16, -8/16, 8/16, -7/16, 8/16 }, -- bottom slab
|
||||
{ -6/16, -7/16, -6/16, 6/16, -6/16, 6/16 }
|
||||
},
|
||||
}
|
||||
|
||||
local function gate_rotate_rules(node, rules)
|
||||
@ -68,7 +76,7 @@ local function register_gate(name, inputnumber, assess, recipe, description)
|
||||
is_ground_content = false,
|
||||
drawtype = "nodebox",
|
||||
drop = basename.."_off",
|
||||
selection_box = nodebox,
|
||||
selection_box = selection_box,
|
||||
node_box = nodebox,
|
||||
walkable = true,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
@ -78,8 +86,16 @@ local function register_gate(name, inputnumber, assess, recipe, description)
|
||||
inputnumber = inputnumber,
|
||||
after_dig_node = mesecon.do_cooldown,
|
||||
},{
|
||||
tiles = {"jeija_microcontroller_bottom.png^".."jeija_gate_off.png^"..
|
||||
"jeija_gate_"..name..".png"},
|
||||
tiles = {
|
||||
"jeija_microcontroller_bottom.png^".."jeija_gate_off.png^"..
|
||||
"jeija_gate_output_off.png^".."jeija_gate_"..name..".png",
|
||||
"jeija_microcontroller_bottom.png^".."jeija_gate_output_off.png^"..
|
||||
"[transformFY",
|
||||
"jeija_gate_side.png^".."jeija_gate_side_output_off.png",
|
||||
"jeija_gate_side.png",
|
||||
"jeija_gate_side.png",
|
||||
"jeija_gate_side.png"
|
||||
},
|
||||
groups = {dig_immediate = 2, overheat = 1},
|
||||
mesecons = { receptor = {
|
||||
state = "off",
|
||||
@ -89,8 +105,16 @@ local function register_gate(name, inputnumber, assess, recipe, description)
|
||||
action_change = update_gate
|
||||
}}
|
||||
},{
|
||||
tiles = {"jeija_microcontroller_bottom.png^".."jeija_gate_on.png^"..
|
||||
"jeija_gate_"..name..".png"},
|
||||
tiles = {
|
||||
"jeija_microcontroller_bottom.png^".."jeija_gate_on.png^"..
|
||||
"jeija_gate_output_on.png^".."jeija_gate_"..name..".png",
|
||||
"jeija_microcontroller_bottom.png^".."jeija_gate_output_on.png^"..
|
||||
"[transformFY",
|
||||
"jeija_gate_side.png^".."jeija_gate_side_output_on.png",
|
||||
"jeija_gate_side.png",
|
||||
"jeija_gate_side.png",
|
||||
"jeija_gate_side.png"
|
||||
},
|
||||
groups = {dig_immediate = 2, not_in_creative_inventory = 1, overheat = 1},
|
||||
mesecons = { receptor = {
|
||||
state = "on",
|
||||
|
BIN
mesecons_gates/textures/jeija_gate_output_off.png
Normal file
After Width: | Height: | Size: 98 B |
BIN
mesecons_gates/textures/jeija_gate_output_on.png
Normal file
After Width: | Height: | Size: 99 B |
BIN
mesecons_gates/textures/jeija_gate_side.png
Normal file
After Width: | Height: | Size: 136 B |
BIN
mesecons_gates/textures/jeija_gate_side_output_off.png
Normal file
After Width: | Height: | Size: 109 B |
BIN
mesecons_gates/textures/jeija_gate_side_output_on.png
Normal file
After Width: | Height: | Size: 110 B |
@ -40,7 +40,7 @@ local can_tool_dig_node = function(nodename, toolcaps, toolname)
|
||||
-- but a player holding one can - the game seems to fall back to the hand.
|
||||
-- fall back to checking the hand's properties if the tool isn't the correct one.
|
||||
local hand_caps = minetest.registered_items[""].tool_capabilities
|
||||
diggable = minetest.get_dig_params(nodegroups, hand_caps)
|
||||
diggable = minetest.get_dig_params(nodegroups, hand_caps).diggable
|
||||
end
|
||||
return diggable
|
||||
end
|
||||
|
@ -162,7 +162,7 @@ minetest.register_node("pomegranate:leaves", {
|
||||
|
||||
minetest.register_craftitem("pomegranate:section", {
|
||||
description = S("Pomegranate Section"),
|
||||
inventory_image = "pomegranate_section.png",
|
||||
inventory_image = "pomegranate_section.png",
|
||||
on_use = minetest.item_eat(3),
|
||||
groups = {flammable = 2, food = 2},
|
||||
})
|
||||
@ -221,7 +221,7 @@ if minetest.get_modpath("stairs") ~= nil then
|
||||
)
|
||||
end
|
||||
|
||||
if minetest.get_modpath("bonemeal") ~= nil then
|
||||
if minetest.get_modpath("bonemeal") ~= nil then
|
||||
bonemeal:add_sapling({
|
||||
{"pomegranate:sapling", grow_new_pomegranate_tree, "soil"},
|
||||
})
|
||||
|
@ -16,7 +16,7 @@ local function inject_items (pos)
|
||||
if stack then
|
||||
local item0=stack:to_table()
|
||||
if item0 then
|
||||
item0["count"] = "1"
|
||||
item0["count"] = 1
|
||||
technic.tube_inject_item(pos, pos, vector.new(0, -1, 0), item0)
|
||||
stack:take_item(1)
|
||||
inv:set_stack("main", i, stack)
|
||||
|
@ -12,14 +12,14 @@ function technic.register_alloy_recipe(data)
|
||||
end
|
||||
|
||||
local recipes = {
|
||||
{"technic:copper_dust 3", "technic:tin_dust", "technic:bronze_dust 4"},
|
||||
{"default:copper_ingot 3", "default:tin_ingot", "default:bronze_ingot 4"},
|
||||
{"technic:wrought_iron_dust", "technic:coal_dust", "technic:carbon_steel_dust", 3},
|
||||
{"technic:wrought_iron_ingot", "technic:coal_dust", "technic:carbon_steel_ingot", 3},
|
||||
{"technic:carbon_steel_dust", "technic:coal_dust", "technic:cast_iron_dust", 3},
|
||||
{"technic:carbon_steel_ingot", "technic:coal_dust", "technic:cast_iron_ingot", 3},
|
||||
{"technic:carbon_steel_dust 3", "technic:chromium_dust", "technic:stainless_steel_dust 4"},
|
||||
{"technic:carbon_steel_ingot 3", "technic:chromium_ingot", "technic:stainless_steel_ingot 4"},
|
||||
{"technic:copper_dust 7", "technic:tin_dust", "technic:bronze_dust 8", 12},
|
||||
{"default:copper_ingot 7", "default:tin_ingot", "default:bronze_ingot 8", 12},
|
||||
{"technic:wrought_iron_dust 2", "technic:coal_dust", "technic:carbon_steel_dust 2", 6},
|
||||
{"technic:wrought_iron_ingot 2", "technic:coal_dust", "technic:carbon_steel_ingot 2", 6},
|
||||
{"technic:carbon_steel_dust 2", "technic:coal_dust", "technic:cast_iron_dust 2", 6},
|
||||
{"technic:carbon_steel_ingot 2", "technic:coal_dust", "technic:cast_iron_ingot 2", 6},
|
||||
{"technic:carbon_steel_dust 4", "technic:chromium_dust", "technic:stainless_steel_dust 5", 7.5},
|
||||
{"technic:carbon_steel_ingot 4", "technic:chromium_ingot", "technic:stainless_steel_ingot 5", 7.5},
|
||||
{"technic:copper_dust 2", "technic:zinc_dust", "technic:brass_dust 3"},
|
||||
{"default:copper_ingot 2", "technic:zinc_ingot", "basic_materials:brass_ingot 3"},
|
||||
{"default:sand 2", "technic:coal_dust 2", "technic:silicon_wafer"},
|
||||
|
@ -11,8 +11,8 @@ function technic.register_separating_recipe(data)
|
||||
end
|
||||
|
||||
local recipes = {
|
||||
{ "technic:bronze_dust 4", "technic:copper_dust 3", "technic:tin_dust" },
|
||||
{ "technic:stainless_steel_dust 4", "technic:wrought_iron_dust 3", "technic:chromium_dust" },
|
||||
{ "technic:bronze_dust 8", "technic:copper_dust 7", "technic:tin_dust" },
|
||||
{ "technic:stainless_steel_dust 5", "technic:wrought_iron_dust 4", "technic:chromium_dust" },
|
||||
{ "technic:brass_dust 3", "technic:copper_dust 2", "technic:zinc_dust" },
|
||||
{ "technic:chernobylite_dust", "default:sand", "technic:uranium3_dust" },
|
||||
{ "default:dirt 4", "default:sand", "default:gravel", "default:clay_lump 2" },
|
||||
|
@ -74,7 +74,7 @@ function technic.send_items(pos, x_velocity, z_velocity, output_name)
|
||||
if stack then
|
||||
local item0 = stack:to_table()
|
||||
if item0 then
|
||||
item0["count"] = "1"
|
||||
item0["count"] = 1
|
||||
technic.tube_inject_item(pos, pos, vector.new(x_velocity, 0, z_velocity), item0)
|
||||
stack:take_item(1)
|
||||
inv:set_stack(output_name, i, stack)
|
||||
|
@ -24,48 +24,81 @@ local nodes = {
|
||||
{"default:jungleleaves", false},
|
||||
{"default:pine_needles", false},
|
||||
|
||||
-- The default bushes
|
||||
{"default:acacia_bush_stem", true},
|
||||
{"default:bush_stem", true},
|
||||
{"default:pine_bush_stem", true},
|
||||
{"default:acacia_bush_leaves", false},
|
||||
{"default:blueberry_bush_leaves", false},
|
||||
{"default:blueberry_bush_leaves_with_berries", false},
|
||||
{"default:bush_leaves", false},
|
||||
{"default:pine_bush_needles", false},
|
||||
|
||||
-- Rubber trees from moretrees or technic_worldgen if moretrees isn't installed
|
||||
{"moretrees:rubber_tree_trunk_empty", true},
|
||||
{"moretrees:rubber_tree_trunk", true},
|
||||
{"moretrees:rubber_tree_leaves", false},
|
||||
|
||||
-- Support moretrees
|
||||
-- Support moretrees (trunk)
|
||||
{"moretrees:acacia_trunk", true},
|
||||
{"moretrees:apple_tree_trunk", true},
|
||||
{"moretrees:beech_trunk", true},
|
||||
{"moretrees:birch_trunk", true},
|
||||
{"moretrees:cedar_trunk", true},
|
||||
{"moretrees:date_palm_ffruit_trunk", true},
|
||||
{"moretrees:date_palm_fruit_trunk", true},
|
||||
{"moretrees:date_palm_mfruit_trunk", true},
|
||||
{"moretrees:date_palm_trunk", true},
|
||||
{"moretrees:fir_trunk", true},
|
||||
{"moretrees:jungletree_trunk", true},
|
||||
{"moretrees:oak_trunk", true},
|
||||
{"moretrees:palm_trunk", true},
|
||||
{"moretrees:palm_fruit_trunk", true},
|
||||
{"moretrees:palm_fruit_trunk_gen", true},
|
||||
{"moretrees:pine_trunk", true},
|
||||
{"moretrees:poplar_trunk", true},
|
||||
{"moretrees:sequoia_trunk", true},
|
||||
{"moretrees:spruce_trunk", true},
|
||||
{"moretrees:willow_trunk", true},
|
||||
{"moretrees:jungletree_trunk", true},
|
||||
{"moretrees:poplar_trunk", true},
|
||||
-- Support moretrees (leaves)
|
||||
{"moretrees:acacia_leaves", false},
|
||||
{"moretrees:apple_tree_leaves", false},
|
||||
{"moretrees:oak_leaves", false},
|
||||
{"moretrees:beech_leaves", false},
|
||||
{"moretrees:birch_leaves", false},
|
||||
{"moretrees:cedar_leaves", false},
|
||||
{"moretrees:date_palm_leaves", false},
|
||||
{"moretrees:fir_leaves", false},
|
||||
{"moretrees:fir_leaves_bright", false},
|
||||
{"moretrees:sequoia_leaves", false},
|
||||
{"moretrees:birch_leaves", false},
|
||||
{"moretrees:birch_leaves", false},
|
||||
{"moretrees:palm_leaves", false},
|
||||
{"moretrees:spruce_leaves", false},
|
||||
{"moretrees:spruce_leaves", false},
|
||||
{"moretrees:pine_leaves", false},
|
||||
{"moretrees:willow_leaves", false},
|
||||
{"moretrees:jungletree_leaves_green", false},
|
||||
{"moretrees:jungletree_leaves_yellow", false},
|
||||
{"moretrees:jungletree_leaves_red", false},
|
||||
{"moretrees:acorn", false},
|
||||
{"moretrees:coconut", false},
|
||||
{"moretrees:spruce_cone", false},
|
||||
{"moretrees:pine_cone", false},
|
||||
{"moretrees:fir_cone", false},
|
||||
{"moretrees:apple_blossoms", false},
|
||||
{"moretrees:oak_leaves", false},
|
||||
{"moretrees:palm_leaves", false},
|
||||
{"moretrees:poplar_leaves", false},
|
||||
{"moretrees:pine_leaves", false},
|
||||
{"moretrees:sequoia_leaves", false},
|
||||
{"moretrees:spruce_leaves", false},
|
||||
{"moretrees:willow_leaves", false},
|
||||
-- Support moretrees (fruit)
|
||||
{"moretrees:acorn", false},
|
||||
{"moretrees:apple_blossoms", false},
|
||||
{"moretrees:cedar_cone", false},
|
||||
{"moretrees:coconut", false},
|
||||
{"moretrees:coconut_0", false},
|
||||
{"moretrees:coconut_1", false},
|
||||
{"moretrees:coconut_2", false},
|
||||
{"moretrees:coconut_3", false},
|
||||
{"moretrees:dates_f0", false},
|
||||
{"moretrees:dates_f1", false},
|
||||
{"moretrees:dates_f2", false},
|
||||
{"moretrees:dates_f3", false},
|
||||
{"moretrees:dates_f4", false},
|
||||
{"moretrees:dates_fn", false},
|
||||
{"moretrees:dates_m0", false},
|
||||
{"moretrees:dates_n", false},
|
||||
{"moretrees:fir_cone", false},
|
||||
{"moretrees:pine_cone", false},
|
||||
{"moretrees:spruce_cone", false},
|
||||
|
||||
-- Support growing_trees
|
||||
{"growing_trees:trunk", true},
|
||||
@ -161,6 +194,18 @@ local S = technic.getter
|
||||
|
||||
technic.register_power_tool("technic:chainsaw", chainsaw_max_charge)
|
||||
|
||||
-- This function checks if the specified node should be sawed
|
||||
local function check_if_node_sawed(pos)
|
||||
local node_name = minetest.get_node(pos).name
|
||||
if timber_nodenames[node_name]
|
||||
or (chainsaw_leaves and minetest.get_item_group(node_name, "leaves") ~= 0)
|
||||
or minetest.get_item_group(node_name, "tree") ~= 0 then
|
||||
return true
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
-- Table for saving what was sawed down
|
||||
local produced = {}
|
||||
|
||||
@ -237,7 +282,7 @@ local function recursive_dig(pos, remaining_charge)
|
||||
end
|
||||
local node = minetest.get_node(pos)
|
||||
|
||||
if not timber_nodenames[node.name] then
|
||||
if not check_if_node_sawed(pos) then
|
||||
return remaining_charge
|
||||
end
|
||||
|
||||
@ -251,8 +296,10 @@ local function recursive_dig(pos, remaining_charge)
|
||||
if remaining_charge < chainsaw_charge_per_node then
|
||||
break
|
||||
end
|
||||
if timber_nodenames[minetest.get_node(npos).name] then
|
||||
if check_if_node_sawed(npos) then
|
||||
remaining_charge = recursive_dig(npos, remaining_charge)
|
||||
else
|
||||
minetest.check_for_falling(npos)
|
||||
end
|
||||
end
|
||||
return remaining_charge
|
||||
|
@ -105,10 +105,10 @@ minetest.register_tool("titanium:sword", {
|
||||
full_punch_interval = 1.0,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
fleshy={times={[1]=2.00, [2]=0.60, [3]=0.20}, uses=100, maxlevel=2},
|
||||
snappy={times={[2]=0.60, [3]=0.20}, uses=100, maxlevel=1},
|
||||
choppy={times={[3]=0.70}, uses=100, maxlevel=0}
|
||||
}
|
||||
snappy={times={[2]=0.60, [3]=0.20}, uses=1000, maxlevel=1},
|
||||
choppy={times={[3]=0.70}, uses=1000, maxlevel=0}
|
||||
},
|
||||
damage_groups = {fleshy=6},
|
||||
}
|
||||
})
|
||||
|
||||
|
@ -161,7 +161,8 @@ minetest.register_on_placenode(
|
||||
|
||||
if not def
|
||||
or not def.palette
|
||||
or def.after_place_node then
|
||||
or def.after_place_node
|
||||
or not placer then
|
||||
return false
|
||||
end
|
||||
|
||||
@ -192,6 +193,7 @@ minetest.register_on_placenode(
|
||||
-- The complementary function: strip-off the color if the node being dug is still white/neutral
|
||||
|
||||
local function move_item(item, pos, inv, digger)
|
||||
if not digger then return end
|
||||
local creative = creative_mode or minetest.check_player_privs(digger, "creative")
|
||||
if inv:room_for_item("main", item)
|
||||
and (not creative or not inv:contains_item("main", item, true)) then
|
||||
@ -203,7 +205,7 @@ local function move_item(item, pos, inv, digger)
|
||||
end
|
||||
|
||||
function unifieddyes.on_dig(pos, node, digger)
|
||||
|
||||
if not digger then return end
|
||||
local playername = digger:get_player_name()
|
||||
if minetest.is_protected(pos, playername) then
|
||||
minetest.record_protection_violation(pos, playername)
|
||||
|
@ -28,17 +28,17 @@ end
|
||||
if mg_name ~= "v6" and mg_name ~= "singlenode" then
|
||||
minetest.register_decoration({
|
||||
deco_type = "schematic",
|
||||
place_on = {"default:dirt_with_rainforest_litter"},
|
||||
place_on = {"default:dirt"},
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = 0.005,
|
||||
scale = 0.002,
|
||||
offset = 0.0005,
|
||||
scale = 0.0002,
|
||||
spread = {x = 250, y = 250, z = 250},
|
||||
seed = 2,
|
||||
octaves = 3,
|
||||
persist = 0.66
|
||||
},
|
||||
biomes = {"savanna_shore"},
|
||||
biomes = {"deciduous_forest_shore"},
|
||||
height = 2,
|
||||
y_min = -1,
|
||||
y_max = 62,
|
||||
|