Compare commits
4 Commits
master
...
world_alig
Author | SHA1 | Date |
---|---|---|
Mikita Wiśniewski | f5327375e6 | |
Mikita Wiśniewski | 7679263aeb | |
Mikita Wiśniewski | f6a0b8f1bb | |
Mikita Wiśniewski | 81c4723520 |
6
LEGAL.md
|
@ -46,6 +46,12 @@ Armor trim models were created by Aeonix_Aeon
|
|||
Source: <https://www.curseforge.com/minecraft/texture-packs/ozocraft-remix>
|
||||
License: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)
|
||||
|
||||
The world texture for grass block top was made out of grass block top variations
|
||||
from the PixelPerfection Legacy texture pack, which were made by
|
||||
[Nova_Wostra](https://www.curseforge.com/members/nova_wostra)
|
||||
Source: <https://www.curseforge.com/minecraft/texture-packs/pixel-perfection-legacy>
|
||||
License: [CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/)
|
||||
|
||||
The main menu images are released under: [CC0](https://creativecommons.org/publicdomain/zero/1.0/)
|
||||
|
||||
All other files, unless mentioned otherwise, fall under:
|
||||
|
|
|
@ -1099,3 +1099,23 @@ function mcl_util.is_it_christmas()
|
|||
return false
|
||||
end
|
||||
end
|
||||
|
||||
-- Get tile (texture) for a block that supports world-alignment
|
||||
local world_aligned = minetest.settings:get_bool("mcl_world_aligned_textures", false)
|
||||
function mcl_util.get_texture(name, scale)
|
||||
local nscale
|
||||
if scale == nil then
|
||||
nscale = 5
|
||||
else
|
||||
nscale = scale
|
||||
end
|
||||
if world_aligned then
|
||||
return {
|
||||
name = name.."_world.png",
|
||||
align_style = "world",
|
||||
scale = nscale
|
||||
}
|
||||
else
|
||||
return name..".png"
|
||||
end
|
||||
end
|
||||
|
|
|
@ -168,7 +168,7 @@ end
|
|||
|
||||
|
||||
function boat.on_activate(self, staticdata, dtime_s)
|
||||
self.object:set_armor_groups({fleshy = 125})
|
||||
self.object:set_armor_groups({fleshy = 100})
|
||||
local data = minetest.deserialize(staticdata)
|
||||
if type(data) == "table" then
|
||||
self._v = data.v
|
||||
|
|
|
@ -1989,17 +1989,6 @@ local trade_inventory = {
|
|||
-- Otherwise, 20% chance to unlock if used freshly reset trade
|
||||
unlock_stuff = true
|
||||
end
|
||||
-- calculate xp based on the price
|
||||
local emeralds = 0
|
||||
if wanted1:get_name() == "mcl_core:emerald" then
|
||||
emeralds = wanted1:get_count()
|
||||
elseif wanted2:get_name() == "mcl_core:emerald" then
|
||||
emeralds = wanted2:get_count()
|
||||
else
|
||||
local offered = inv:get_stack("offered", 1)
|
||||
emeralds = offered:get_name() == "mcl_core:emerald" and offered:get_count() or 0
|
||||
end
|
||||
local xp = 2 + math.ceil(emeralds / (64/4)) -- 1..64 emeralds = 3..6 xp
|
||||
local update_formspec = false
|
||||
if unlock_stuff then
|
||||
-- First-time trade unlock all trades and unlock next trade tier
|
||||
|
@ -2011,7 +2000,6 @@ local trade_inventory = {
|
|||
set_textures(trader)
|
||||
update_max_tradenum(trader)
|
||||
update_formspec = true
|
||||
xp = xp + 5
|
||||
end
|
||||
for t=1, #trades do
|
||||
trades[t].locked = false
|
||||
|
@ -2022,7 +2010,6 @@ local trade_inventory = {
|
|||
-- TODO: Replace by Regeneration I
|
||||
trader.health = math.min(trader.hp_max, trader.health + 4)
|
||||
end
|
||||
mcl_experience.add_xp(player, xp)
|
||||
trade.trade_counter = trade.trade_counter + 1
|
||||
mcl_log("Trade counter is: ".. trade.trade_counter)
|
||||
-- Semi-randomly lock trade for repeated trade (not if there's only 1 trade)
|
||||
|
@ -2060,7 +2047,6 @@ local trade_inventory = {
|
|||
if update_formspec then
|
||||
show_trade_formspec(name, trader, tradenum)
|
||||
end
|
||||
|
||||
else
|
||||
minetest.log("error", "[mobs_mc] Player took item from trader output but player_trading_with or player_tradenum is nil!")
|
||||
end
|
||||
|
|
|
@ -191,18 +191,6 @@ minetest.register_craft({
|
|||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "group:bee_nest",
|
||||
burntime = 15,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "group:beehive",
|
||||
burntime = 15,
|
||||
})
|
||||
|
||||
-- Temporary ABM to update honey levels
|
||||
minetest.register_abm({
|
||||
label = "Update Beehive Honey Levels",
|
||||
|
|
|
@ -26,9 +26,3 @@ minetest.register_craft({
|
|||
{ "group:wood", "group:wood", "" },
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "mcl_cartography_table:cartography_table",
|
||||
burntime = 15,
|
||||
})
|
||||
|
|
|
@ -12,6 +12,8 @@ else
|
|||
ice_texture_alpha = minetest.features.use_texture_alpha_string_modes and "opaque" or false
|
||||
end
|
||||
|
||||
local get_texture = mcl_util.get_texture
|
||||
|
||||
mcl_core.fortune_drop_ore = {
|
||||
discrete_uniform_distribution = true,
|
||||
min_count = 2,
|
||||
|
@ -24,7 +26,7 @@ minetest.register_node("mcl_core:stone", {
|
|||
description = S("Stone"),
|
||||
_doc_items_longdesc = S("One of the most common blocks in the world, almost the entire underground consists of stone. It sometimes contains ores. Stone may be created when water meets lava."),
|
||||
_doc_items_hidden = false,
|
||||
tiles = {"default_stone.png"},
|
||||
tiles = {get_texture("default_stone")},
|
||||
is_ground_content = true,
|
||||
stack_max = 64,
|
||||
groups = {pickaxey=1, stone=1, building_block=1, material_stone=1},
|
||||
|
@ -234,7 +236,7 @@ minetest.register_node("mcl_core:stone_with_diamond", {
|
|||
minetest.register_node("mcl_core:stonebrick", {
|
||||
description = S("Stone Bricks"),
|
||||
_doc_items_longdesc = doc.sub.items.temp.build,
|
||||
tiles = {"default_stone_brick.png"},
|
||||
tiles = {get_texture("default_stone_brick")},
|
||||
stack_max = 64,
|
||||
groups = {pickaxey=1, stone=1, stonebrick=1, building_block=1, material_stone=1},
|
||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||
|
@ -294,7 +296,7 @@ minetest.register_node("mcl_core:stone_smooth", {
|
|||
minetest.register_node("mcl_core:granite", {
|
||||
description = S("Granite"),
|
||||
_doc_items_longdesc = S("Granite is an igneous rock."),
|
||||
tiles = {"mcl_core_granite.png"},
|
||||
tiles = {get_texture("mcl_core_granite", 3)},
|
||||
is_ground_content = true,
|
||||
stack_max = 64,
|
||||
groups = {pickaxey=1, stone=1, building_block=1, material_stone=1},
|
||||
|
@ -318,7 +320,7 @@ minetest.register_node("mcl_core:granite_smooth", {
|
|||
minetest.register_node("mcl_core:andesite", {
|
||||
description = S("Andesite"),
|
||||
_doc_items_longdesc = S("Andesite is an igneous rock."),
|
||||
tiles = {"mcl_core_andesite.png"},
|
||||
tiles = {get_texture("mcl_core_andesite", 3)},
|
||||
is_ground_content = true,
|
||||
stack_max = 64,
|
||||
groups = {pickaxey=1, stone=1, building_block=1, material_stone=1},
|
||||
|
@ -342,7 +344,7 @@ minetest.register_node("mcl_core:andesite_smooth", {
|
|||
minetest.register_node("mcl_core:diorite", {
|
||||
description = S("Diorite"),
|
||||
_doc_items_longdesc = S("Diorite is an igneous rock."),
|
||||
tiles = {"mcl_core_diorite.png"},
|
||||
tiles = {get_texture("mcl_core_diorite", 3)},
|
||||
is_ground_content = true,
|
||||
stack_max = 64,
|
||||
groups = {pickaxey=1, stone=1, building_block=1, material_stone=1},
|
||||
|
@ -369,8 +371,16 @@ minetest.register_node("mcl_core:dirt_with_grass", {
|
|||
_doc_items_longdesc = S("A grass block is dirt with a grass cover. Grass blocks are resourceful blocks which allow the growth of all sorts of plants. They can be turned into farmland with a hoe and turned into grass paths with a shovel. In light, the grass slowly spreads onto dirt nearby. Under an opaque block or a liquid, a grass block may turn back to dirt."),
|
||||
_doc_items_hidden = false,
|
||||
paramtype2 = "color",
|
||||
tiles = {"mcl_core_grass_block_top.png", { name="default_dirt.png", color="white" }, { name="default_dirt.png^mcl_dirt_grass_shadow.png", color="white" }},
|
||||
overlay_tiles = {"mcl_core_grass_block_top.png", "blank.png", {name="mcl_core_grass_block_side_overlay.png", tileable_vertical=false}},
|
||||
tiles = {
|
||||
get_texture("mcl_core_grass_block_top"),
|
||||
{ name="default_dirt.png", color="white" },
|
||||
{ name="default_dirt.png^mcl_dirt_grass_shadow.png", color="white" }
|
||||
},
|
||||
overlay_tiles = {
|
||||
"blank.png",
|
||||
"blank.png",
|
||||
{name="mcl_core_grass_block_side_overlay.png", tileable_vertical=false}
|
||||
},
|
||||
palette = "mcl_core_palette_grass.png",
|
||||
palette_index = 0,
|
||||
color = "#7CBD6B",
|
||||
|
@ -507,7 +517,7 @@ minetest.register_node("mcl_core:dirt", {
|
|||
description = S("Dirt"),
|
||||
_doc_items_longdesc = S("Dirt acts as a soil for a few plants. When in light, this block may grow a grass or mycelium cover if such blocks are nearby."),
|
||||
_doc_items_hidden = false,
|
||||
tiles = {"default_dirt.png"},
|
||||
tiles = {get_texture("default_dirt")},
|
||||
is_ground_content = true,
|
||||
stack_max = 64,
|
||||
groups = {handy=1,shovely=1, dirt=1,soil=1, soil_sapling=2, soil_sugarcane=1, cultivatable=2, enderman_takable=1, building_block=1, path_creation_possible=1},
|
||||
|
@ -570,7 +580,7 @@ minetest.register_node("mcl_core:sand", {
|
|||
description = S("Sand"),
|
||||
_doc_items_longdesc = S("Sand is found in large quantities at beaches and deserts."),
|
||||
_doc_items_hidden = false,
|
||||
tiles = {"default_sand.png"},
|
||||
tiles = {get_texture("default_sand")},
|
||||
is_ground_content = true,
|
||||
stack_max = 64,
|
||||
groups = {handy=1,shovely=1, falling_node=1, sand=1, soil_sugarcane=1, enderman_takable=1, building_block=1, material_sand=1},
|
||||
|
@ -634,7 +644,7 @@ minetest.register_node("mcl_core:sandstonesmooth2", {
|
|||
minetest.register_node("mcl_core:redsand", {
|
||||
description = S("Red Sand"),
|
||||
_doc_items_longdesc = S("Red sand is found in large quantities in mesa biomes."),
|
||||
tiles = {"mcl_core_red_sand.png"},
|
||||
tiles = {get_texture("mcl_core_red_sand")},
|
||||
is_ground_content = true,
|
||||
stack_max = 64,
|
||||
groups = {handy=1,shovely=1, falling_node=1, sand=1, soil_sugarcane=1, enderman_takable=1, building_block=1, material_sand=1},
|
||||
|
@ -712,7 +722,7 @@ minetest.register_node("mcl_core:brick_block", {
|
|||
-- Original name: “Bricks”
|
||||
description = S("Brick Block"),
|
||||
_doc_items_longdesc = S("Brick blocks are a good building material for building solid houses and can take quite a punch."),
|
||||
tiles = {"default_brick.png"},
|
||||
tiles = {get_texture("default_brick")},
|
||||
is_ground_content = false,
|
||||
stack_max = 64,
|
||||
groups = {pickaxey=1, building_block=1, material_stone=1},
|
||||
|
|
|
@ -164,12 +164,6 @@ minetest.register_node("mcl_core:deadbush", {
|
|||
_mcl_hardness = 0,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "mcl_core:deadbush",
|
||||
burntime = 5,
|
||||
})
|
||||
|
||||
minetest.register_node("mcl_core:barrier", {
|
||||
description = S("Barrier"),
|
||||
_doc_items_longdesc = S("Barriers are invisible walkable blocks. They are used to create boundaries of adventure maps and the like. Monsters and animals won't appear on barriers, and fences do not connect to barriers. Other blocks can be built on barriers like on any other block."),
|
||||
|
|
|
@ -74,7 +74,6 @@ local end_rod_def = {
|
|||
light_source = minetest.LIGHT_MAX,
|
||||
sunlight_propagates = true,
|
||||
groups = { dig_immediate=3, deco_block=1, destroy_by_lava_flow=1, end_rod=1 },
|
||||
use_texture_alpha = "clip",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
|
@ -154,7 +153,6 @@ for num, row in ipairs(colored_end_rods) do
|
|||
def.description = desc
|
||||
def._doc_items_longdesc = nil
|
||||
def._doc_items_create_entry = false
|
||||
def.use_texture_alpha = "clip"
|
||||
local side_tex
|
||||
if name == "pink" then
|
||||
def.tiles[1] = def.tiles[1] .. "^(" .. def.tiles[1] .. end_rod_mask .. "^[multiply:" .. name .. "^[hsl:0:300)"
|
||||
|
|
|
@ -23,10 +23,4 @@ minetest.register_craft({
|
|||
{ "group:wood", "group:wood", "" },
|
||||
{ "group:wood", "group:wood", "" },
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "mcl_fletching_table:fletching_table",
|
||||
burntime = 15,
|
||||
})
|
||||
})
|
|
@ -195,7 +195,6 @@ def_clover.tiles = { "mcl_flowers_clover.png" }
|
|||
def_clover.inventory_image = "mcl_flowers_clover_inv.png"
|
||||
def_clover.wield_image = "mcl_flowers_clover_inv.png"
|
||||
def_clover.drop = nil
|
||||
def_clover.use_texture_alpha = "clip"
|
||||
def_clover.selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -4/16, -0.5, -4/16, 4/16, 0, 4/16 },
|
||||
|
@ -211,7 +210,6 @@ def_4l_clover.mesh = "mcl_clover_4leaf.obj"
|
|||
def_4l_clover.tiles = { "mcl_flowers_fourleaf_clover.png" }
|
||||
def_4l_clover.inventory_image = "mcl_flowers_fourleaf_clover_inv.png"
|
||||
def_4l_clover.wield_image = "mcl_flowers_fourleaf_clover_inv.png"
|
||||
def_4l_clover.use_texture_alpha = "clip"
|
||||
|
||||
minetest.register_node("mcl_flowers:fourleaf_clover", def_4l_clover)
|
||||
|
||||
|
@ -270,7 +268,6 @@ local function add_large_plant(name, desc, longdesc, bottom_img, top_img, inv_im
|
|||
end
|
||||
-- Sunflower mesh and tiles
|
||||
local top_drawtype, bottom_drawtype
|
||||
local alpha = nil
|
||||
local bottom_tiles = {}
|
||||
if not mesh then
|
||||
top_drawtype = "plantlike"
|
||||
|
@ -280,7 +277,6 @@ local function add_large_plant(name, desc, longdesc, bottom_img, top_img, inv_im
|
|||
top_drawtype = "airlike"
|
||||
bottom_drawtype = "mesh"
|
||||
bottom_tiles = bottom_img
|
||||
alpha = "clip"
|
||||
end
|
||||
-- Bottom
|
||||
minetest.register_node("mcl_flowers:"..name, {
|
||||
|
@ -302,7 +298,6 @@ local function add_large_plant(name, desc, longdesc, bottom_img, top_img, inv_im
|
|||
_mcl_shears_drop = shears_drop,
|
||||
_mcl_fortune_drop = fortune_drop,
|
||||
node_placement_prediction = "",
|
||||
use_texture_alpha = alpha,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -selbox_radius, -0.5, -selbox_radius, selbox_radius, 0.5, selbox_radius },
|
||||
|
@ -402,7 +397,6 @@ local function add_large_plant(name, desc, longdesc, bottom_img, top_img, inv_im
|
|||
palette = palette,
|
||||
walkable = false,
|
||||
buildable_to = false,
|
||||
use_texture_alpha = alpha,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -selbox_radius, -0.5, -selbox_radius, selbox_radius, selbox_top_height, selbox_radius },
|
||||
|
|
|
@ -76,7 +76,8 @@ local lectern_def = {
|
|||
if wdir == 0 then
|
||||
return itemstack
|
||||
-- IE., no Hanging Lecterns for you!
|
||||
else
|
||||
end
|
||||
if wdir == 1 then
|
||||
-- (only make standing nodes...)
|
||||
-- Determine the rotation based on player's yaw
|
||||
local yaw = pi * 2 - placer:get_look_horizontal()
|
||||
|
@ -135,11 +136,5 @@ minetest.register_craft({
|
|||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "mcl_lectern:lectern",
|
||||
burntime = 15,
|
||||
})
|
||||
|
||||
-- Base Aliases.
|
||||
minetest.register_alias("lectern", "mcl_lectern:lectern")
|
||||
|
|
|
@ -26,9 +26,3 @@ minetest.register_craft({
|
|||
{ "group:wood", "group:wood", "" },
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "mcl_loom:loom",
|
||||
burntime = 15,
|
||||
})
|
||||
|
|
|
@ -426,12 +426,6 @@ minetest.register_craft({
|
|||
burntime = 15,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "mcl_mangrove:mangrove_roots",
|
||||
burntime = 15,
|
||||
})
|
||||
|
||||
local adjacents = {
|
||||
vector.new(1,0,0),
|
||||
vector.new(-1,0,0),
|
||||
|
|
|
@ -603,7 +603,15 @@ function kelp.register_kelp_surface(surface, surface_deftemplate, surface_docs)
|
|||
sounds.place = kelp.leaf_sounds.place
|
||||
|
||||
surface_deftemplate.tiles = surface_deftemplate.tiles or def_tiles
|
||||
surface_deftemplate.inventory_image = surface_deftemplate.inventory_image or "("..def_tiles[1]..")^mcl_ocean_kelp_item.png"
|
||||
|
||||
local texturename
|
||||
if type(def_tiles[1]) == "string" then
|
||||
texturename = def_tiles[1]
|
||||
else
|
||||
texturename = def_tiles[1].name
|
||||
end
|
||||
|
||||
surface_deftemplate.inventory_image = surface_deftemplate.inventory_image or "("..texturename..")^mcl_ocean_kelp_item.png"
|
||||
surface_deftemplate.sounds = surface_deftemplate.sound or sounds
|
||||
local falling_node = mt_get_item_group(nodename, "falling_node")
|
||||
surface_deftemplate.node_dig_prediction = surface_deftemplate.node_dig_prediction or nodename
|
||||
|
|
|
@ -257,12 +257,6 @@ minetest.register_craft({
|
|||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "mcl_smithing_table:table",
|
||||
burntime = 15,
|
||||
})
|
||||
|
||||
-- this is the exact same as mcl_smithing_table.upgrade_item_netherite , in case something relies on the old function
|
||||
function mcl_smithing_table.upgrade_item(itemstack)
|
||||
return mcl_smithing_table.upgrade_item_netherite(itemstack)
|
||||
|
|
|
@ -256,6 +256,13 @@ mcl_buckets_use_select_box (Buckets use select box) bool false
|
|||
# See also: https://github.com/minetest/minetest/issues/95
|
||||
mcl_translucent_ice (Translucent ice) bool false
|
||||
|
||||
# Whether the textures should be world-aligned for variations. If enabled,
|
||||
# some textures will be using sheets of 5x5 varied tiles with pre-defined
|
||||
# "random" displacement and rotation, spanning across 5 blocks.
|
||||
#
|
||||
# This might put some load on the GPU by making it work with bigger textures.
|
||||
mcl_world_aligned_textures (World-aligned textures) bool false
|
||||
|
||||
# Whether to generate fallen logs in some biomes.
|
||||
# They might not always look pretty and have strange overhangs.
|
||||
mcl_generate_fallen_logs (Generate fallen logs) bool false
|
||||
|
|
After Width: | Height: | Size: 860 B |
After Width: | Height: | Size: 754 B |
After Width: | Height: | Size: 417 B |
After Width: | Height: | Size: 885 B |
After Width: | Height: | Size: 874 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 425 B |
After Width: | Height: | Size: 351 B |
After Width: | Height: | Size: 464 B |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 698 B |