Foliage revamp

This commit is contained in:
IamPyu 2024-12-19 15:25:45 -06:00
parent 8a7dcafe77
commit bc514f40d7
15 changed files with 198 additions and 148 deletions

View File

@ -2,6 +2,8 @@
## [Dec 2nd - STILL UNDER DEVELOPMENT] Major Update: The Greatest Update
**THIS UPDATE CONTAINS BREAKING CHANGES!!**
I am running out of names for updates extremely fast.
Notable Game Changes:
@ -33,6 +35,7 @@ Notable Game Changes:
- Added Hunger
- Added Mithril and Mithril Tools (They're better than the Enchanted tools but are much more expensive)
- Added Potions
- Revamped Foliage
Other Game Changes:

View File

@ -3,7 +3,7 @@ always_day = false
fire_spreads = true
acid_spreads = true
explosion_damage = true
superflat_block = pyutest_grass:grass
superflat_block = pyutest_blocks:grass
# other options
unified_inventory_lite = false

View File

@ -317,3 +317,10 @@ PyuTest.drop_item = function(pos, name)
o:add_velocity(vector.new(math.random(-2, 2), 5, math.random(-2, 2)))
end
end
PyuTest.get_foliage_type = function (pos, name)
local t = PyuTest.get_biome_def(pos) or {}
local index = t._pyutest_foilage_index or 0
return {name = name, param2 = index}
end

View File

@ -3,6 +3,7 @@ PyuTest.make_building_blocks("pyutest_blocks:dirt", "Dirt", { "pyutest-dirt.png"
dirt = 1,
acid_vulnerable = 1,
crumbly = PyuTest.BLOCK_FAST,
grass_spawn = 1,
})
PyuTest.make_building_blocks("pyutest_blocks:podzol", "Podzol", { "pyutest-dirt.png" }, nil, {
@ -10,6 +11,7 @@ PyuTest.make_building_blocks("pyutest_blocks:podzol", "Podzol", { "pyutest-dirt.
dirt = 1,
acid_vulnerable = 1,
crumbly = PyuTest.BLOCK_FAST,
grass_spawn = 1,
}, {
overlay_tiles = { { name = "pyutest-ore-overlay.png", color = "#54623c" } }
})

View File

@ -0,0 +1,133 @@
PyuTest.FOLIAGE_TYPES = {
NORMAL = 0,
DARK = 1,
SWAMP = 2,
DRY = 3,
ASPEN = 4,
JUNGLE = 5,
SNOW = 6,
MAGIC = 7,
LIGHT = 8,
DEAD = 9,
}
local function on_construct(n)
return function (pos)
local node = core.get_node(pos)
if node.param2 == 0 then
local new_node = PyuTest.get_foliage_type(pos, n)
if new_node.param2 ~= 0 or new_node.name ~= n then
core.set_node(pos, new_node)
end
end
end
end
PyuTest.make_node("pyutest_blocks:grass", "Grass", {
grass = 1,
dirt = 1,
crumbly = PyuTest.BLOCK_FAST,
acid_vulnerable = 1,
foliage = 1,
grass_spawn = 1,
block = 1,
}, nil, {
paramtype2 = "color",
palette = "pyutest-foliage-palette.png",
palette_index = 0,
color = "#6baf4a",
tiles = {"pyutest-grass-top.png", {name = "pyutest-dirt.png", color = "white"}},
overlay_tiles = {"pyutest-grass-top.png", "blank.png", "pyutest-grass-side.png"},
is_ground_content = true,
on_construct = on_construct("pyutest_blocks:grass")
})
local function make_plant_drops(name)
return {
max_items = 1,
items = {
{
tool_groups = {
"shears"
},
items = { name }
}
}
}
end
PyuTest.make_node("pyutest_blocks:grass_plant", "Grass Plant", {
flammable = 1,
flower = 1,
attached_node = 3,
dig_immediate = 1,
foliage = 1,
oddly_breakable_by_hand = PyuTest.BLOCK_FAST,
snappy = PyuTest.BLOCK_FAST,
}, {"pyutest-grass-plant.png"}, {
drawtype = "plantlike",
waving = 1,
buildable_to = true,
paramtype = "light",
sunlight_propagates = true,
walkable = false,
selection_box = PyuTest.NODE_BOXES.SMALL,
paramtype2 = "color",
palette = "pyutest-foliage-palette.png",
palette_index = 0,
color = "#6baf4a",
drop = make_plant_drops("pyutest_blocks:grass_plant"),
on_construct = on_construct("pyutest_blocks:grass_plant"),
_pyutest_blast_resistance = 0,
})
PyuTest.make_node("pyutest_blocks:fern", "Fern", {
flammable = 1,
flower = 1,
attached_node = 3,
dig_immediate = 1,
foliage = 1,
oddly_breakable_by_hand = PyuTest.BLOCK_FAST,
snappy = PyuTest.BLOCK_FAST,
}, {"pyutest-fern.png"}, {
drawtype = "plantlike",
waving = 1,
buildable_to = true,
paramtype = "light",
sunlight_propagates = true,
walkable = false,
selection_box = PyuTest.NODE_BOXES.SMALL,
paramtype2 = "color",
palette = "pyutest-foliage-palette.png",
palette_index = 0,
color = "#6baf4a",
drop = make_plant_drops("pyutest_blocks:fern"),
on_construct = on_construct("pyutest_blocks:fern"),
_pyutest_blast_resistance = 0,
})
-- foliage won't be coloured if not for this.
core.register_lbm({
name = "pyutest_blocks:foliage_conversion",
nodenames = {"group:foliage"},
run_at_every_load = true,
action = function (pos, node)
core.set_node(pos, {name = node.name})
end
})
core.register_decoration({
deco_type = "simple",
place_on = { "group:grass_spawn" },
sidelen = 16,
fill_ratio = 0.048,
decoration = "pyutest_blocks:grass_plant"
})
core.register_decoration({
deco_type = "simple",
place_on = { "group:grass_spawn" },
sidelen = 16,
fill_ratio = 0.024,
decoration = "pyutest_blocks:fern"
})

View File

@ -3,6 +3,7 @@ local modpath = core.get_modpath("pyutest_blocks")
dofile(modpath .. "/api.lua")
dofile(modpath .. "/basic.lua")
dofile(modpath .. "/foliage.lua")
dofile(modpath .. "/liquid.lua")
dofile(modpath .. "/special.lua")
dofile(modpath .. "/fire.lua")

View File

@ -1 +1 @@
depends = pyutest_blocks,pyutest_grass,pyutest_wood,pyutest_wool,pyutest_magic,pyutest_ores
depends = pyutest_blocks,pyutest_wood,pyutest_wool,pyutest_magic,pyutest_ores

View File

@ -1,116 +0,0 @@
PyuTest.make_grass = function(name, desc, groups, color, dont_make_flora, ttex, stex, dtex, econf)
local _ttex = { name = ttex or "pyutest-grass-top.png", color = color }
local _stex = { name = stex or "pyutest-grass-side.png", color = color }
local _dtex = { _ttex, dtex or "pyutest-dirt.png" }
PyuTest.make_building_blocks(name, desc, _dtex, nil, PyuTest.util.tableconcat(groups or {}, {
ground = 1,
grass = 1,
dirt = 1,
}), {
overlay_tiles = { "", "", _stex }
})
local function make_drops(name)
return {
max_items = 1,
items = {
{
tool_groups = {
"shears"
},
items = { name }
}
}
}
end
if dont_make_flora ~= true then
PyuTest.make_flower(name .. "_plant", desc .. " Plant", "pyutest-grass-plant.png", nil, false, nil, {
color = color,
drop = make_drops(name .. "_plant")
})
PyuTest.make_flower(name .. "_fern", desc .. " Fern", "pyutest-fern.png", nil, false, nil, {
color = color,
drop = make_drops(name .. "_fern")
})
end
core.override_item(name .. "_block", econf or {})
core.register_craft({
output = name .. "_block 2",
recipe = {
name .. "_block", "pyutest_blocks:dirt_block"
},
type = "shapeless"
})
core.register_decoration({
deco_type = "simple",
place_on = { name .. "_block" },
sidelen = 16,
fill_ratio = 0.048,
decoration = name .. "_plant"
})
core.register_decoration({
deco_type = "simple",
place_on = { name .. "_block" },
sidelen = 16,
fill_ratio = 0.022,
decoration = name .. "_fern"
})
end
PyuTest.make_grass("pyutest_grass:grass", "Grass", {
crumbly = PyuTest.BLOCK_FAST,
acid_vulnerable = 1
}, "#6baf4a")
PyuTest.make_grass("pyutest_grass:dark_grass", "Dark Grass", {
crumbly = PyuTest.BLOCK_FAST,
acid_vulnerable = 1
}, "#4f613e")
PyuTest.make_grass("pyutest_grass:swampy_grass", "Swampy Grass", {
crumbly = PyuTest.BLOCK_FAST,
acid_vulnerable = 1,
sugarcane_spawn_on = 1
}, "#48592a")
PyuTest.make_grass("pyutest_grass:savanna_grass", "Savanna Grass", {
crumbly = PyuTest.BLOCK_FAST,
acid_vulnerable = 1,
sugarcane_spawn_on = 1,
}, "#9faf4a")
PyuTest.make_grass("pyutest_grass:aspen_grass", "Aspen Grass", {
crumbly = PyuTest.BLOCK_FAST,
acid_vulnerable = 1,
}, "#ad9d4b")
PyuTest.make_grass("pyutest_grass:jungle_grass", "Jungle Grass", {
crumbly = PyuTest.BLOCK_FAST,
acid_vulnerable = 1,
}, "#3b562d")
PyuTest.make_grass("pyutest_grass:snowy_grass", "Snowy Grass", {
crumbly = PyuTest.BLOCK_FAST,
acid_vulnerable = 1,
}, "#f2f6fb")
PyuTest.make_grass("pyutest_grass:ominous_grass", "Ominous Grass", {
crumbly = PyuTest.BLOCK_FAST,
acid_vulnerable = 1,
}, "#433548")
PyuTest.make_grass("pyutest_grass:dirt_path", "Dirt Path", {
crumbly = PyuTest.BLOCK_FAST,
acid_vulnerable = 1,
}, "#d9a066", true, nil, nil, nil, {
drawtype = "nodebox",
node_box = PyuTest.NODE_BOXES.SLIGHTLY_SMALLER,
collision_box = PyuTest.NODE_BOXES.SLIGHTLY_SMALLER,
selection_box = PyuTest.NODE_BOXES.SLIGHTLY_SMALLER
})

View File

@ -1 +0,0 @@
depends = pyutest_blocks,pyutest_flowers

View File

@ -175,11 +175,10 @@ PyuTest.register_overworld_biome = function(name, type, opts, only_base)
local y_min --(nopts["_enable_beaches"] and not only_base) and (nopts["y_min"] + 2) or nopts["y_min"]
if nopts["_enable_beaches"] and not only_base then
y_min = nopts["y_min"] + 2
y_min = nopts["y_min"] + 1
else
y_min = opts["y_min"]
end
y_min = y_min + 1
core.register_biome(PyuTest.util.tableconcat(nopts, {
_pyutest_biome_type = type,
@ -190,12 +189,11 @@ PyuTest.register_overworld_biome = function(name, type, opts, only_base)
return
end
core.log(string.format("%s: %d", name, y_min))
if nopts["_enable_beaches"] then
core.register_biome(PyuTest.util.tableconcat(nopts, {
name = name .. "_beach",
y_max = y_min,
y_min = PyuTest.OVERWORLD_SURFACE_BOTTOM,
y_min = PyuTest.OVERWORLD_SURFACE_BOTTOM - 3,
node_top = nopts["node_sand"],
depth_top = 1,
node_filler = nopts["node_sandstone"],

View File

@ -1,6 +1,6 @@
-- "Just right"
PyuTest.register_overworld_biome("Plains", PyuTest.BIOME_TYPES.NORMAL, {
node_top = "pyutest_grass:grass_block",
node_top = "pyutest_blocks:grass",
node_filler = "pyutest_blocks:dirt_block",
y_max = PyuTest.OVERWORLD_BIOME_TOPS.normal,
@ -11,11 +11,12 @@ PyuTest.register_overworld_biome("Plains", PyuTest.BIOME_TYPES.NORMAL, {
weight = PyuTest.BIOME_WEIGHTS.large,
_pyutest_biome_flowering = true
_pyutest_biome_flowering = true,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.NORMAL,
})
PyuTest.register_overworld_biome("Forest", PyuTest.BIOME_TYPES.NORMAL, {
node_top = "pyutest_grass:grass_block",
node_top = "pyutest_blocks:grass",
node_filler = "pyutest_blocks:dirt_block",
y_max = PyuTest.OVERWORLD_BIOME_TOPS.normal,
@ -26,11 +27,12 @@ PyuTest.register_overworld_biome("Forest", PyuTest.BIOME_TYPES.NORMAL, {
weight = PyuTest.BIOME_WEIGHTS.big,
_pyutest_biome_flowering = true
_pyutest_biome_flowering = true,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.NORMAL,
})
PyuTest.register_overworld_biome("BirchForest", PyuTest.BIOME_TYPES.NORMAL, {
node_top = "pyutest_grass:grass_block",
node_top = "pyutest_blocks:grass",
node_filler = "pyutest_blocks:dirt_block",
y_max = PyuTest.OVERWORLD_BIOME_TOPS.normal,
@ -41,11 +43,12 @@ PyuTest.register_overworld_biome("BirchForest", PyuTest.BIOME_TYPES.NORMAL, {
weight = PyuTest.BIOME_WEIGHTS.big,
_pyutest_biome_flowering = true
_pyutest_biome_flowering = true,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.NORMAL,
})
PyuTest.register_overworld_biome("OldGrowthBirchForest", PyuTest.BIOME_TYPES.NORMAL, {
node_top = "pyutest_grass:grass_block",
node_top = "pyutest_blocks:grass",
node_filler = "pyutest_blocks:dirt_block",
y_max = PyuTest.OVERWORLD_BIOME_TOPS.normal,
@ -57,11 +60,12 @@ PyuTest.register_overworld_biome("OldGrowthBirchForest", PyuTest.BIOME_TYPES.NOR
weight = PyuTest.BIOME_WEIGHTS.big,
_pyutest_biome_flowering = true,
_pyutest_biome_flowering_extra = true
_pyutest_biome_flowering_extra = true,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.NORMAL,
})
PyuTest.register_overworld_biome("Meadow", PyuTest.BIOME_TYPES.NORMAL, {
node_top = "pyutest_grass:grass_block",
node_top = "pyutest_blocks:grass",
node_filler = "pyutest_blocks:dirt_block",
depth_filler = 4,
@ -75,11 +79,12 @@ PyuTest.register_overworld_biome("Meadow", PyuTest.BIOME_TYPES.NORMAL, {
_enable_beaches = false,
_pyutest_biome_flowering = true,
_pyutest_biome_flowering_extra = true
_pyutest_biome_flowering_extra = true,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.NORMAL,
})
PyuTest.register_overworld_biome("CherryGrove", PyuTest.BIOME_TYPES.NORMAL, {
node_top = "pyutest_grass:grass_block",
node_top = "pyutest_blocks:grass",
node_filler = "pyutest_blocks:dirt_block",
y_max = PyuTest.OVERWORLD_BIOME_TOPS.elevated,
@ -92,7 +97,8 @@ PyuTest.register_overworld_biome("CherryGrove", PyuTest.BIOME_TYPES.NORMAL, {
_enable_beaches = false,
_pyutest_biome_flowering = true,
_pyutest_biome_flowering_extra = true
_pyutest_biome_flowering_extra = true,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.NORMAL,
})
-- Warm, Hot
@ -111,11 +117,12 @@ PyuTest.register_overworld_biome("Desert", PyuTest.BIOME_TYPES.HOT, {
weight = PyuTest.BIOME_WEIGHTS.vast,
_enable_beaches = false
_enable_beaches = false,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.DRY,
})
PyuTest.register_overworld_biome("Savanna", PyuTest.BIOME_TYPES.WARM, {
node_top = "pyutest_grass:savanna_grass_block",
node_top = "pyutest_blocks:grass",
node_filler = "pyutest_blocks:dirt_block",
y_max = PyuTest.OVERWORLD_BIOME_TOPS.normal,
@ -125,6 +132,7 @@ PyuTest.register_overworld_biome("Savanna", PyuTest.BIOME_TYPES.WARM, {
humidity_point = 0,
weight = PyuTest.BIOME_WEIGHTS.large,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.DRY,
})
-- Decent
@ -142,6 +150,7 @@ PyuTest.register_overworld_biome("MushroomFields", PyuTest.BIOME_TYPES.NORMAL, {
_enable_beaches = false,
_pyutest_fog_distance = 60,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.SWAMP,
})
PyuTest.register_overworld_biome("LargeMushroomForest", PyuTest.BIOME_TYPES.NORMAL, {
@ -158,10 +167,11 @@ PyuTest.register_overworld_biome("LargeMushroomForest", PyuTest.BIOME_TYPES.NORM
_enable_beaches = false,
_pyutest_fog_distance = 60,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.SWAMP,
})
PyuTest.register_overworld_biome("Swamp", PyuTest.BIOME_TYPES.WETLAND, {
node_top = "pyutest_grass:swampy_grass_block",
node_top = "pyutest_blocks:grass",
node_filler = "pyutest_blocks:dirt_block",
y_max = PyuTest.OVERWORLD_BIOME_TOPS.lowland,
@ -174,11 +184,12 @@ PyuTest.register_overworld_biome("Swamp", PyuTest.BIOME_TYPES.WETLAND, {
_enable_beaches = false,
_pyutest_fog_distance = 60,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.SWAMP,
})
-- Chilly
PyuTest.register_overworld_biome("Taiga", PyuTest.BIOME_TYPES.CHILLY, {
node_top = "pyutest_grass:dark_grass_block",
node_top = "pyutest_blocks:grass",
node_filler = "pyutest_blocks:dirt_block",
y_max = PyuTest.OVERWORLD_BIOME_TOPS.normal,
@ -189,7 +200,8 @@ PyuTest.register_overworld_biome("Taiga", PyuTest.BIOME_TYPES.CHILLY, {
weight = PyuTest.BIOME_WEIGHTS.normal,
_pyutest_biome_flowering = true
_pyutest_biome_flowering = true,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.DARK,
})
PyuTest.register_overworld_biome("OldGrowthPineTaiga", PyuTest.BIOME_TYPES.CHILLY, {
@ -203,10 +215,11 @@ PyuTest.register_overworld_biome("OldGrowthPineTaiga", PyuTest.BIOME_TYPES.CHILL
humidity_point = 73,
weight = PyuTest.BIOME_WEIGHTS.large,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.DARK,
})
PyuTest.register_overworld_biome("AspenForest", PyuTest.BIOME_TYPES.CHILLY, {
node_top = "pyutest_grass:aspen_grass_block",
node_top = "pyutest_blocks:grass",
node_filler = "pyutest_blocks:dirt_block",
y_max = PyuTest.OVERWORLD_BIOME_TOPS.normal,
@ -219,6 +232,7 @@ PyuTest.register_overworld_biome("AspenForest", PyuTest.BIOME_TYPES.CHILLY, {
_pyutest_biome_flowering = true,
_pyutest_fog_distance = 60,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.ASPEN,
})
PyuTest.register_overworld_biome("RedwoodForest", PyuTest.BIOME_TYPES.CHILLY, {
@ -235,10 +249,11 @@ PyuTest.register_overworld_biome("RedwoodForest", PyuTest.BIOME_TYPES.CHILLY, {
_pyutest_biome_flowering = true,
_pyutest_fog_distance = 60,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.DARK,
})
PyuTest.register_overworld_biome("OminousForest", PyuTest.BIOME_TYPES.CHILLY, {
node_top = "pyutest_grass:ominous_grass",
node_top = "pyutest_blocks:grass",
node_filler = "pyutest_blocks:dirt_block",
y_max = PyuTest.OVERWORLD_BIOME_TOPS.normal,
@ -250,6 +265,7 @@ PyuTest.register_overworld_biome("OminousForest", PyuTest.BIOME_TYPES.CHILLY, {
weight = PyuTest.BIOME_WEIGHTS.tiny,
_pyutest_fog_distance = 45,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.MAGIC,
})
-- Winter
@ -268,6 +284,7 @@ PyuTest.register_overworld_biome("FrozenPlains", PyuTest.BIOME_TYPES.COLD, {
humidity_point = 73,
weight = PyuTest.BIOME_WEIGHTS.large,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.SNOW,
})
PyuTest.register_overworld_biome("SnowyForest", PyuTest.BIOME_TYPES.COLD, {
@ -285,6 +302,7 @@ PyuTest.register_overworld_biome("SnowyForest", PyuTest.BIOME_TYPES.COLD, {
humidity_point = 78,
weight = PyuTest.BIOME_WEIGHTS.large,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.SNOW,
})
PyuTest.register_overworld_biome("IceSpikes", PyuTest.BIOME_TYPES.COLD, {
@ -302,7 +320,8 @@ PyuTest.register_overworld_biome("IceSpikes", PyuTest.BIOME_TYPES.COLD, {
weight = PyuTest.BIOME_WEIGHTS.large,
_enable_beaches = false
_enable_beaches = false,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.SNOW,
})
-- Mountains
@ -320,7 +339,8 @@ PyuTest.register_overworld_biome("StonyPeaks", PyuTest.BIOME_TYPES.CHILLY, {
weight = PyuTest.BIOME_WEIGHTS.large,
_enable_beaches = false
_enable_beaches = false,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.DRY,
})
PyuTest.register_overworld_biome("FrozenPeaks", PyuTest.BIOME_TYPES.COLD, {
@ -338,7 +358,8 @@ PyuTest.register_overworld_biome("FrozenPeaks", PyuTest.BIOME_TYPES.COLD, {
weight = PyuTest.BIOME_WEIGHTS.large,
_enable_beaches = false
_enable_beaches = false,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.SNOW,
})
PyuTest.register_overworld_biome("JaggedPeaks", PyuTest.BIOME_TYPES.COLD, {
@ -355,7 +376,8 @@ PyuTest.register_overworld_biome("JaggedPeaks", PyuTest.BIOME_TYPES.COLD, {
weight = PyuTest.BIOME_WEIGHTS.large,
_enable_beaches = false
_enable_beaches = false,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.SNOW,
})
PyuTest.register_overworld_biome("Grove", PyuTest.BIOME_TYPES.COLD, {
@ -373,4 +395,5 @@ PyuTest.register_overworld_biome("Grove", PyuTest.BIOME_TYPES.COLD, {
weight = PyuTest.BIOME_WEIGHTS.large,
_enable_beaches = false,
_pyutest_foilage_index = PyuTest.FOLIAGE_TYPES.SNOW,
})

View File

@ -170,7 +170,7 @@ core.register_decoration({
core.register_decoration({
deco_type = "schematic",
place_on = { "pyutest_grass:ominous_grass" },
place_on = { "group:grass" },
sidelen = 16,
fill_ratio = 0.039,
biomes = { "OminousForest" },

View File

@ -14,4 +14,4 @@ explosion_damage (Explosions Cause Damage) bool true
[Mapgen]
# Set the block of the superflat biome surface
superflat_block (Superflat Surface Block) string pyutest_grass:grass
superflat_block (Superflat Surface Block) string pyutest_blocks:grass

BIN
textures/blank.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 B