1
0
Fork 0

Compare commits

..

4 Commits

Author SHA1 Message Date
Mikita Wiśniewski f5327375e6 Make sand and dirt world-aligned 2024-04-30 11:07:25 +07:00
Mikita Wiśniewski 7679263aeb Update LEGAL.md 2024-04-30 10:13:42 +07:00
Mikita Wiśniewski f6a0b8f1bb Make more blocks have world-aligned textures 2024-04-30 10:13:42 +07:00
Mikita Wiśniewski 81c4723520 World-aligned grass block top texture 2024-04-30 10:13:42 +07:00
28 changed files with 67 additions and 91 deletions

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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",

View File

@ -26,9 +26,3 @@ minetest.register_craft({
{ "group:wood", "group:wood", "" },
}
})
minetest.register_craft({
type = "fuel",
recipe = "mcl_cartography_table:cartography_table",
burntime = 15,
})

View File

@ -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},

View File

@ -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."),

View File

@ -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)"

View File

@ -24,9 +24,3 @@ minetest.register_craft({
{ "group:wood", "group:wood", "" },
}
})
minetest.register_craft({
type = "fuel",
recipe = "mcl_fletching_table:fletching_table",
burntime = 15,
})

View File

@ -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 },

View File

@ -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")

View File

@ -26,9 +26,3 @@ minetest.register_craft({
{ "group:wood", "group:wood", "" },
}
})
minetest.register_craft({
type = "fuel",
recipe = "mcl_loom:loom",
burntime = 15,
})

View File

@ -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),

View File

@ -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

View File

@ -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)

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 860 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 754 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 885 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 874 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 425 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 698 B