Compare commits
6 Commits
world_alig
...
master
Author | SHA1 | Date |
---|---|---|
loveaabb | 195b193260 | |
loveaabb | 83a651d375 | |
loveaabb | 19190d92e7 | |
loveaabb | f50ef6b52a | |
loveaabb | 50fda3e844 | |
Mikita Wiśniewski | 3b1c55c234 |
6
LEGAL.md
|
@ -46,12 +46,6 @@ Armor trim models were created by Aeonix_Aeon
|
||||||
Source: <https://www.curseforge.com/minecraft/texture-packs/ozocraft-remix>
|
Source: <https://www.curseforge.com/minecraft/texture-packs/ozocraft-remix>
|
||||||
License: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)
|
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/)
|
The main menu images are released under: [CC0](https://creativecommons.org/publicdomain/zero/1.0/)
|
||||||
|
|
||||||
All other files, unless mentioned otherwise, fall under:
|
All other files, unless mentioned otherwise, fall under:
|
||||||
|
|
|
@ -1099,23 +1099,3 @@ function mcl_util.is_it_christmas()
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
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
|
|
||||||
|
|
|
@ -12,8 +12,6 @@ else
|
||||||
ice_texture_alpha = minetest.features.use_texture_alpha_string_modes and "opaque" or false
|
ice_texture_alpha = minetest.features.use_texture_alpha_string_modes and "opaque" or false
|
||||||
end
|
end
|
||||||
|
|
||||||
local get_texture = mcl_util.get_texture
|
|
||||||
|
|
||||||
mcl_core.fortune_drop_ore = {
|
mcl_core.fortune_drop_ore = {
|
||||||
discrete_uniform_distribution = true,
|
discrete_uniform_distribution = true,
|
||||||
min_count = 2,
|
min_count = 2,
|
||||||
|
@ -26,7 +24,7 @@ minetest.register_node("mcl_core:stone", {
|
||||||
description = S("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_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,
|
_doc_items_hidden = false,
|
||||||
tiles = {get_texture("default_stone")},
|
tiles = {"default_stone.png"},
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
stack_max = 64,
|
stack_max = 64,
|
||||||
groups = {pickaxey=1, stone=1, building_block=1, material_stone=1},
|
groups = {pickaxey=1, stone=1, building_block=1, material_stone=1},
|
||||||
|
@ -236,7 +234,7 @@ minetest.register_node("mcl_core:stone_with_diamond", {
|
||||||
minetest.register_node("mcl_core:stonebrick", {
|
minetest.register_node("mcl_core:stonebrick", {
|
||||||
description = S("Stone Bricks"),
|
description = S("Stone Bricks"),
|
||||||
_doc_items_longdesc = doc.sub.items.temp.build,
|
_doc_items_longdesc = doc.sub.items.temp.build,
|
||||||
tiles = {get_texture("default_stone_brick")},
|
tiles = {"default_stone_brick.png"},
|
||||||
stack_max = 64,
|
stack_max = 64,
|
||||||
groups = {pickaxey=1, stone=1, stonebrick=1, building_block=1, material_stone=1},
|
groups = {pickaxey=1, stone=1, stonebrick=1, building_block=1, material_stone=1},
|
||||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||||
|
@ -296,7 +294,7 @@ minetest.register_node("mcl_core:stone_smooth", {
|
||||||
minetest.register_node("mcl_core:granite", {
|
minetest.register_node("mcl_core:granite", {
|
||||||
description = S("Granite"),
|
description = S("Granite"),
|
||||||
_doc_items_longdesc = S("Granite is an igneous rock."),
|
_doc_items_longdesc = S("Granite is an igneous rock."),
|
||||||
tiles = {get_texture("mcl_core_granite", 3)},
|
tiles = {"mcl_core_granite.png"},
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
stack_max = 64,
|
stack_max = 64,
|
||||||
groups = {pickaxey=1, stone=1, building_block=1, material_stone=1},
|
groups = {pickaxey=1, stone=1, building_block=1, material_stone=1},
|
||||||
|
@ -320,7 +318,7 @@ minetest.register_node("mcl_core:granite_smooth", {
|
||||||
minetest.register_node("mcl_core:andesite", {
|
minetest.register_node("mcl_core:andesite", {
|
||||||
description = S("Andesite"),
|
description = S("Andesite"),
|
||||||
_doc_items_longdesc = S("Andesite is an igneous rock."),
|
_doc_items_longdesc = S("Andesite is an igneous rock."),
|
||||||
tiles = {get_texture("mcl_core_andesite", 3)},
|
tiles = {"mcl_core_andesite.png"},
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
stack_max = 64,
|
stack_max = 64,
|
||||||
groups = {pickaxey=1, stone=1, building_block=1, material_stone=1},
|
groups = {pickaxey=1, stone=1, building_block=1, material_stone=1},
|
||||||
|
@ -344,7 +342,7 @@ minetest.register_node("mcl_core:andesite_smooth", {
|
||||||
minetest.register_node("mcl_core:diorite", {
|
minetest.register_node("mcl_core:diorite", {
|
||||||
description = S("Diorite"),
|
description = S("Diorite"),
|
||||||
_doc_items_longdesc = S("Diorite is an igneous rock."),
|
_doc_items_longdesc = S("Diorite is an igneous rock."),
|
||||||
tiles = {get_texture("mcl_core_diorite", 3)},
|
tiles = {"mcl_core_diorite.png"},
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
stack_max = 64,
|
stack_max = 64,
|
||||||
groups = {pickaxey=1, stone=1, building_block=1, material_stone=1},
|
groups = {pickaxey=1, stone=1, building_block=1, material_stone=1},
|
||||||
|
@ -371,16 +369,8 @@ 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_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,
|
_doc_items_hidden = false,
|
||||||
paramtype2 = "color",
|
paramtype2 = "color",
|
||||||
tiles = {
|
tiles = {"mcl_core_grass_block_top.png", { name="default_dirt.png", color="white" }, { name="default_dirt.png^mcl_dirt_grass_shadow.png", color="white" }},
|
||||||
get_texture("mcl_core_grass_block_top"),
|
overlay_tiles = {"mcl_core_grass_block_top.png", "blank.png", {name="mcl_core_grass_block_side_overlay.png", tileable_vertical=false}},
|
||||||
{ 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 = "mcl_core_palette_grass.png",
|
||||||
palette_index = 0,
|
palette_index = 0,
|
||||||
color = "#7CBD6B",
|
color = "#7CBD6B",
|
||||||
|
@ -517,7 +507,7 @@ minetest.register_node("mcl_core:dirt", {
|
||||||
description = S("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_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,
|
_doc_items_hidden = false,
|
||||||
tiles = {get_texture("default_dirt")},
|
tiles = {"default_dirt.png"},
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
stack_max = 64,
|
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},
|
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},
|
||||||
|
@ -580,7 +570,7 @@ minetest.register_node("mcl_core:sand", {
|
||||||
description = S("Sand"),
|
description = S("Sand"),
|
||||||
_doc_items_longdesc = S("Sand is found in large quantities at beaches and deserts."),
|
_doc_items_longdesc = S("Sand is found in large quantities at beaches and deserts."),
|
||||||
_doc_items_hidden = false,
|
_doc_items_hidden = false,
|
||||||
tiles = {get_texture("default_sand")},
|
tiles = {"default_sand.png"},
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
stack_max = 64,
|
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},
|
groups = {handy=1,shovely=1, falling_node=1, sand=1, soil_sugarcane=1, enderman_takable=1, building_block=1, material_sand=1},
|
||||||
|
@ -644,7 +634,7 @@ minetest.register_node("mcl_core:sandstonesmooth2", {
|
||||||
minetest.register_node("mcl_core:redsand", {
|
minetest.register_node("mcl_core:redsand", {
|
||||||
description = S("Red Sand"),
|
description = S("Red Sand"),
|
||||||
_doc_items_longdesc = S("Red sand is found in large quantities in mesa biomes."),
|
_doc_items_longdesc = S("Red sand is found in large quantities in mesa biomes."),
|
||||||
tiles = {get_texture("mcl_core_red_sand")},
|
tiles = {"mcl_core_red_sand.png"},
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
stack_max = 64,
|
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},
|
groups = {handy=1,shovely=1, falling_node=1, sand=1, soil_sugarcane=1, enderman_takable=1, building_block=1, material_sand=1},
|
||||||
|
@ -722,7 +712,7 @@ minetest.register_node("mcl_core:brick_block", {
|
||||||
-- Original name: “Bricks”
|
-- Original name: “Bricks”
|
||||||
description = S("Brick Block"),
|
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."),
|
_doc_items_longdesc = S("Brick blocks are a good building material for building solid houses and can take quite a punch."),
|
||||||
tiles = {get_texture("default_brick")},
|
tiles = {"default_brick.png"},
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
stack_max = 64,
|
stack_max = 64,
|
||||||
groups = {pickaxey=1, building_block=1, material_stone=1},
|
groups = {pickaxey=1, building_block=1, material_stone=1},
|
||||||
|
|
|
@ -603,15 +603,7 @@ function kelp.register_kelp_surface(surface, surface_deftemplate, surface_docs)
|
||||||
sounds.place = kelp.leaf_sounds.place
|
sounds.place = kelp.leaf_sounds.place
|
||||||
|
|
||||||
surface_deftemplate.tiles = surface_deftemplate.tiles or def_tiles
|
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
|
surface_deftemplate.sounds = surface_deftemplate.sound or sounds
|
||||||
local falling_node = mt_get_item_group(nodename, "falling_node")
|
local falling_node = mt_get_item_group(nodename, "falling_node")
|
||||||
surface_deftemplate.node_dig_prediction = surface_deftemplate.node_dig_prediction or nodename
|
surface_deftemplate.node_dig_prediction = surface_deftemplate.node_dig_prediction or nodename
|
||||||
|
|
|
@ -251,6 +251,15 @@ local function remove_shield_entity(player, i)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function is_node_stack(itemstack)
|
||||||
|
return itemstack:get_definition().drawtype -- only node's definition table contains element "drawtype"
|
||||||
|
end
|
||||||
|
|
||||||
|
local function is_rmb_conflicting_node(nodename)
|
||||||
|
local nodedef = minetest.registered_nodes[nodename]
|
||||||
|
return nodedef.on_rightclick
|
||||||
|
end
|
||||||
|
|
||||||
local function handle_blocking(player)
|
local function handle_blocking(player)
|
||||||
local player_shield = mcl_shields.players[player]
|
local player_shield = mcl_shields.players[player]
|
||||||
local rmb = player:get_player_control().RMB
|
local rmb = player:get_player_control().RMB
|
||||||
|
@ -266,7 +275,7 @@ local function handle_blocking(player)
|
||||||
local pos = player:get_pos()
|
local pos = player:get_pos()
|
||||||
if shield_in_hand then
|
if shield_in_hand then
|
||||||
if not_blocking then
|
if not_blocking then
|
||||||
minetest.after(0.25, function()
|
minetest.after(0.05, function()
|
||||||
if (not_blocking or not shield_in_offhand) and shield_in_hand and rmb then
|
if (not_blocking or not shield_in_offhand) and shield_in_hand and rmb then
|
||||||
player_shield.blocking = 2
|
player_shield.blocking = 2
|
||||||
set_shield(player, true, 2)
|
set_shield(player, true, 2)
|
||||||
|
@ -277,11 +286,16 @@ local function handle_blocking(player)
|
||||||
end
|
end
|
||||||
elseif shield_in_offhand then
|
elseif shield_in_offhand then
|
||||||
local pointed_thing = mcl_util.get_pointed_thing(player, true)
|
local pointed_thing = mcl_util.get_pointed_thing(player, true)
|
||||||
local offhand_can_block = (wielded_item(player) == "" or not pointed_thing)
|
local wielded_stack = player:get_wielded_item()
|
||||||
and (minetest.get_item_group(wielded_item(player), "bow") ~= 1 and minetest.get_item_group(wielded_item(player), "crossbow") ~= 1)
|
local offhand_can_block = (minetest.get_item_group(wielded_item(player), "bow") ~= 1
|
||||||
|
and minetest.get_item_group(wielded_item(player), "crossbow") ~= 1)
|
||||||
|
|
||||||
if pointed_thing and pointed_thing.type == "node" then
|
if pointed_thing and pointed_thing.type == "node" then
|
||||||
if minetest.get_item_group(minetest.get_node(pointed_thing.under).name, "container") > 1 then
|
local pointed_node = minetest.get_node(pointed_thing.under)
|
||||||
|
if minetest.get_item_group(pointed_node.name, "container") > 1
|
||||||
|
or is_rmb_conflicting_node(pointed_node.name)
|
||||||
|
or is_node_stack(wielded_stack)
|
||||||
|
then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -290,7 +304,7 @@ local function handle_blocking(player)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
if not_blocking then
|
if not_blocking then
|
||||||
minetest.after(0.25, function()
|
minetest.after(0.05, function()
|
||||||
if (not_blocking or not shield_in_hand) and shield_in_offhand and rmb and offhand_can_block then
|
if (not_blocking or not shield_in_hand) and shield_in_offhand and rmb and offhand_can_block then
|
||||||
player_shield.blocking = 1
|
player_shield.blocking = 1
|
||||||
set_shield(player, true, 1)
|
set_shield(player, true, 1)
|
||||||
|
|
|
@ -256,13 +256,6 @@ mcl_buckets_use_select_box (Buckets use select box) bool false
|
||||||
# See also: https://github.com/minetest/minetest/issues/95
|
# See also: https://github.com/minetest/minetest/issues/95
|
||||||
mcl_translucent_ice (Translucent ice) bool false
|
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.
|
# Whether to generate fallen logs in some biomes.
|
||||||
# They might not always look pretty and have strange overhangs.
|
# They might not always look pretty and have strange overhangs.
|
||||||
mcl_generate_fallen_logs (Generate fallen logs) bool false
|
mcl_generate_fallen_logs (Generate fallen logs) bool false
|
||||||
|
|
Before Width: | Height: | Size: 860 B |
Before Width: | Height: | Size: 754 B |
Before Width: | Height: | Size: 417 B |
Before Width: | Height: | Size: 885 B |
Before Width: | Height: | Size: 874 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 425 B |
Before Width: | Height: | Size: 351 B |
Before Width: | Height: | Size: 464 B |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 698 B |
Before Width: | Height: | Size: 302 B After Width: | Height: | Size: 235 B |
Before Width: | Height: | Size: 174 B After Width: | Height: | Size: 195 B |
Before Width: | Height: | Size: 282 B After Width: | Height: | Size: 220 B |
Before Width: | Height: | Size: 326 B After Width: | Height: | Size: 254 B |
Before Width: | Height: | Size: 261 B After Width: | Height: | Size: 271 B |