1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-07-22 17:18:39 +00:00

Rename “Minimal development test” to “Development Test” (#9928)

This commit is contained in:
Wuzzy 2020-05-26 00:17:52 +02:00 committed by GitHub
parent b546e8938d
commit 083b285f43
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
371 changed files with 25 additions and 25 deletions

View file

@ -0,0 +1,11 @@
# Test Nodes
This mod contains a bunch of basic nodes to test development stuff.
Most nodes are kept as minimal as possible in order to show off one particular feature of the engine, to make testing stuff easier.
This mod includes tests for:
* drawtypes
* paramtype2's
* node properties such as damage, drowning, falling, etc.
* other random stuff

View file

@ -0,0 +1,517 @@
--[[ Drawtype Test: This file tests out and provides examples for
all drawtypes in Minetest. It is attempted to keep the node
definitions as simple and minimal as possible to keep
side-effects to a minimum.
How to read the node definitions:
There are two parts which are separated by 2 newlines:
The first part contains the things that are more or less essential
for defining the drawtype (except description, which is
at the top for readability).
The second part (after the 2 newlines) contains stuff that are
unrelated to the drawtype, stuff that is mostly there to make
testing this node easier and more convenient.
]]
local S = minetest.get_translator("testnodes")
-- If set to true, will show an inventory image for nodes that have no inventory image as of Minetest 5.1.0.
-- This is due to <https://github.com/minetest/minetest/issues/9209>.
-- This is only added to make the items more visible to avoid confusion, but you will no longer see
-- the default inventory images for these items. When you want to test the default inventory image of drawtypes,
-- this should be turned off.
-- TODO: Remove support for fallback inventory image as soon #9209 is fixed.
local SHOW_FALLBACK_IMAGE = minetest.settings:get_bool("testnodes_show_fallback_image", false)
local fallback_image = function(img)
if SHOW_FALLBACK_IMAGE then
return img
else
return nil
end
end
-- A regular cube
minetest.register_node("testnodes:normal", {
description = S("Normal Drawtype Test Node"),
drawtype = "normal",
tiles = { "testnodes_normal.png" },
groups = { dig_immediate = 3 },
})
-- Standard glasslike node
minetest.register_node("testnodes:glasslike", {
description = S("Glasslike Drawtype Test Node"),
drawtype = "glasslike",
paramtype = "light",
tiles = { "testnodes_glasslike.png" },
groups = { dig_immediate = 3 },
})
-- Glasslike framed with the two textures (normal and "detail")
minetest.register_node("testnodes:glasslike_framed", {
description = S("Glasslike Framed Drawtype Test Node"),
drawtype = "glasslike_framed",
paramtype = "light",
tiles = {
"testnodes_glasslike_framed.png",
"testnodes_glasslike_detail.png",
},
sunlight_propagates = true,
groups = { dig_immediate = 3 },
})
-- Like the one above, but without the "detail" texture (texture 2).
-- This node was added to see how the engine behaves when the "detail" texture
-- is missing.
minetest.register_node("testnodes:glasslike_framed_no_detail", {
description = S("Glasslike Framed without Detail Drawtype Test Node"),
drawtype = "glasslike_framed",
paramtype = "light",
tiles = { "testnodes_glasslike_framed2.png" },
sunlight_propagates = true,
groups = { dig_immediate = 3 },
})
minetest.register_node("testnodes:glasslike_framed_optional", {
description = S("Glasslike Framed Optional Drawtype Test Node"),
drawtype = "glasslike_framed_optional",
paramtype = "light",
tiles = {
"testnodes_glasslike_framed_optional.png",
"testnodes_glasslike_detail.png",
},
sunlight_propagates = true,
groups = { dig_immediate = 3 },
})
minetest.register_node("testnodes:allfaces", {
description = S("Allfaces Drawtype Test Node"),
drawtype = "allfaces",
paramtype = "light",
tiles = { "testnodes_allfaces.png" },
groups = { dig_immediate = 3 },
})
minetest.register_node("testnodes:allfaces_optional", {
description = S("Allfaces Optional Drawtype Test Node"),
drawtype = "allfaces_optional",
paramtype = "light",
tiles = { "testnodes_allfaces_optional.png" },
groups = { dig_immediate = 3 },
})
minetest.register_node("testnodes:allfaces_optional_waving", {
description = S("Waving Allfaces Optional Drawtype Test Node"),
drawtype = "allfaces_optional",
paramtype = "light",
tiles = { "testnodes_allfaces_optional.png^[brighten" },
waving = 2,
groups = { dig_immediate = 3 },
})
minetest.register_node("testnodes:firelike", {
description = S("Firelike Drawtype Test Node"),
drawtype = "firelike",
paramtype = "light",
tiles = { "testnodes_firelike.png" },
walkable = false,
groups = { dig_immediate = 3 },
})
minetest.register_node("testnodes:fencelike", {
description = S("Fencelike Drawtype Test Node"),
drawtype = "fencelike",
paramtype = "light",
tiles = { "testnodes_fencelike.png" },
groups = { dig_immediate = 3 },
})
minetest.register_node("testnodes:torchlike", {
description = S("Wallmounted Torchlike Drawtype Test Node"),
drawtype = "torchlike",
paramtype = "light",
paramtype2 = "wallmounted",
tiles = {
"testnodes_torchlike_floor.png",
"testnodes_torchlike_ceiling.png",
"testnodes_torchlike_wall.png",
},
walkable = false,
sunlight_propagates = true,
groups = { dig_immediate = 3 },
inventory_image = fallback_image("testnodes_torchlike_floor.png"),
})
minetest.register_node("testnodes:signlike", {
description = S("Wallmounted Signlike Drawtype Test Node"),
drawtype = "signlike",
paramtype = "light",
paramtype2 = "wallmounted",
tiles = { "testnodes_signlike.png" },
walkable = false,
groups = { dig_immediate = 3 },
sunlight_propagates = true,
inventory_image = fallback_image("testnodes_signlike.png"),
})
minetest.register_node("testnodes:plantlike", {
description = S("Plantlike Drawtype Test Node"),
drawtype = "plantlike",
paramtype = "light",
tiles = { "testnodes_plantlike.png" },
walkable = false,
sunlight_propagates = true,
groups = { dig_immediate = 3 },
})
minetest.register_node("testnodes:plantlike_waving", {
description = S("Waving Plantlike Drawtype Test Node"),
drawtype = "plantlike",
paramtype = "light",
tiles = { "testnodes_plantlike_waving.png" },
waving = 1,
walkable = false,
sunlight_propagates = true,
groups = { dig_immediate = 3 },
})
-- param2 will rotate
minetest.register_node("testnodes:plantlike_degrotate", {
description = S("Degrotate Plantlike Drawtype Test Node"),
drawtype = "plantlike",
paramtype = "light",
paramtype2 = "degrotate",
tiles = { "testnodes_plantlike_degrotate.png" },
walkable = false,
sunlight_propagates = true,
groups = { dig_immediate = 3 },
})
-- param2 will change height
minetest.register_node("testnodes:plantlike_leveled", {
description = S("Leveled Plantlike Drawtype Test Node"),
drawtype = "plantlike",
paramtype = "light",
paramtype2 = "leveled",
tiles = {
{ name = "testnodes_plantlike_leveled.png", tileable_vertical = true },
},
-- We set a default param2 here only for convenience, to make the "plant" visible after placement
place_param2 = 8,
walkable = false,
sunlight_propagates = true,
groups = { dig_immediate = 3 },
})
-- param2 changes shape
minetest.register_node("testnodes:plantlike_meshoptions", {
description = S("Meshoptions Plantlike Drawtype Test Node"),
drawtype = "plantlike",
paramtype = "light",
paramtype2 = "meshoptions",
tiles = { "testnodes_plantlike_meshoptions.png" },
walkable = false,
groups = { dig_immediate = 3 },
})
minetest.register_node("testnodes:plantlike_rooted", {
description = S("Rooted Plantlike Drawtype Test Node"),
drawtype = "plantlike_rooted",
paramtype = "light",
tiles = { "testnodes_plantlike_rooted_base.png" },
special_tiles = { "testnodes_plantlike_rooted.png" },
groups = { dig_immediate = 3 },
})
minetest.register_node("testnodes:plantlike_rooted_waving", {
description = S("Waving Rooted Plantlike Drawtype Test Node"),
drawtype = "plantlike_rooted",
paramtype = "light",
tiles = {
"testnodes_plantlike_rooted_base.png",
"testnodes_plantlike_rooted_base.png",
"testnodes_plantlike_rooted_base_side_waving.png",
},
special_tiles = { "testnodes_plantlike_rooted_waving.png" },
waving = 1,
groups = { dig_immediate = 3 },
})
-- param2 changes height
minetest.register_node("testnodes:plantlike_rooted_leveled", {
description = S("Leveled Rooted Plantlike Drawtype Test Node"),
drawtype = "plantlike_rooted",
paramtype = "light",
paramtype2 = "leveled",
tiles = {
"testnodes_plantlike_rooted_base.png",
"testnodes_plantlike_rooted_base.png",
"testnodes_plantlike_rooted_base_side_leveled.png",
},
special_tiles = {
{ name = "testnodes_plantlike_rooted_leveled.png", tileable_vertical = true },
},
-- We set a default param2 here only for convenience, to make the "plant" visible after placement
place_param2 = 8,
groups = { dig_immediate = 3 },
})
-- param2 changes shape
minetest.register_node("testnodes:plantlike_rooted_meshoptions", {
description = S("Meshoptions Rooted Plantlike Drawtype Test Node"),
drawtype = "plantlike_rooted",
paramtype = "light",
paramtype2 = "meshoptions",
tiles = {
"testnodes_plantlike_rooted_base.png",
"testnodes_plantlike_rooted_base.png",
"testnodes_plantlike_rooted_base_side_meshoptions.png",
},
special_tiles = {
"testnodes_plantlike_rooted_meshoptions.png",
},
groups = { dig_immediate = 3 },
})
-- param2 changes rotation
minetest.register_node("testnodes:plantlike_rooted_degrotate", {
description = S("Degrotate Rooted Plantlike Drawtype Test Node"),
drawtype = "plantlike_rooted",
paramtype = "light",
paramtype2 = "degrotate",
tiles = {
"testnodes_plantlike_rooted_base.png",
"testnodes_plantlike_rooted_base.png",
"testnodes_plantlike_rooted_base_side_degrotate.png",
},
special_tiles = {
"testnodes_plantlike_rooted_degrotate.png",
},
groups = { dig_immediate = 3 },
})
-- Demonstrative liquid nodes, source and flowing form. This is only the
-- drawtype, no physical liquid properties are used
minetest.register_node("testnodes:liquid", {
description = S("Source Liquid Drawtype Test Node"),
drawtype = "liquid",
paramtype = "light",
tiles = {
"testnodes_liquidsource.png",
},
special_tiles = {
{name="testnodes_liquidsource.png", backface_culling=false},
{name="testnodes_liquidsource.png", backface_culling=true},
},
use_texture_alpha = true,
walkable = false,
liquid_alternative_flowing = "testnodes:liquid_flowing",
liquid_alternative_source = "testnodes:liquid",
groups = { dig_immediate = 3 },
})
minetest.register_node("testnodes:liquid_flowing", {
description = S("Flowing Liquid Drawtype Test Node"),
drawtype = "flowingliquid",
paramtype = "light",
paramtype2 = "flowingliquid",
tiles = {
"testnodes_liquidflowing.png",
},
special_tiles = {
{name="testnodes_liquidflowing.png", backface_culling=false},
{name="testnodes_liquidflowing.png", backface_culling=false},
},
use_texture_alpha = true,
walkable = false,
liquid_alternative_flowing = "testnodes:liquid_flowing",
liquid_alternative_source = "testnodes:liquid",
groups = { dig_immediate = 3 },
})
minetest.register_node("testnodes:liquid_waving", {
description = S("Waving Source Liquid Drawtype Test Node"),
drawtype = "liquid",
paramtype = "light",
tiles = {
"testnodes_liquidsource.png^[brighten",
},
special_tiles = {
{name="testnodes_liquidsource.png^[brighten", backface_culling=false},
{name="testnodes_liquidsource.png^[brighten", backface_culling=true},
},
use_texture_alpha = true,
waving = 3,
walkable = false,
liquid_alternative_flowing = "testnodes:liquid_flowing",
liquid_alternative_source = "testnodes:liquid",
groups = { dig_immediate = 3 },
})
minetest.register_node("testnodes:liquid_flowing_waving", {
description = S("Waving Flowing Liquid Drawtype Test Node"),
drawtype = "flowingliquid",
paramtype = "light",
paramtype2 = "flowingliquid",
tiles = {
"testnodes_liquidflowing.png^[brighten",
},
special_tiles = {
{name="testnodes_liquidflowing.png^[brighten", backface_culling=false},
{name="testnodes_liquidflowing.png^[brighten", backface_culling=false},
},
use_texture_alpha = true,
waving = 3,
walkable = false,
liquid_alternative_flowing = "testnodes:liquid_flowing",
liquid_alternative_source = "testnodes:liquid",
groups = { dig_immediate = 3 },
})
-- Invisible node
minetest.register_node("testnodes:airlike", {
description = S("Airlike Drawtype Test Node"),
drawtype = "airlike",
paramtype = "light",
walkable = false,
groups = { dig_immediate = 3 },
sunlight_propagates = true,
inventory_image = fallback_image("testnodes_airlike.png"),
})
-- param2 changes liquid height
minetest.register_node("testnodes:glassliquid", {
description = S("Glasslike Liquid Level Drawtype Test Node"),
drawtype = "glasslike_framed",
paramtype = "light",
paramtype2 = "glasslikeliquidlevel",
tiles = {
"testnodes_glasslikeliquid.png",
},
special_tiles = {
"testnodes_liquid.png",
},
groups = { dig_immediate = 3 },
})
-- Adding many raillike examples, primarily to demonstrate the behavior of
-- "raillike groups". Nodes of the same type (rail, groupless, line, street)
-- should connect to nodes of the same "rail type" (=same shape, different
-- color) only.
local rails = {
{ "rail", {"testnodes_rail_straight.png", "testnodes_rail_curved.png", "testnodes_rail_t_junction.png", "testnodes_rail_crossing.png"} },
{ "line", {"testnodes_line_straight.png", "testnodes_line_curved.png", "testnodes_line_t_junction.png", "testnodes_line_crossing.png"}, },
{ "street", {"testnodes_street_straight.png", "testnodes_street_curved.png", "testnodes_street_t_junction.png", "testnodes_street_crossing.png"}, },
-- the "groupless" nodes are nodes in which the "connect_to_raillike" group is not set
{ "groupless", {"testnodes_rail2_straight.png", "testnodes_rail2_curved.png", "testnodes_rail2_t_junction.png", "testnodes_rail2_crossing.png"} },
}
local colors = { "", "cyan", "red" }
for r=1, #rails do
local id = rails[r][1]
local tiles = rails[r][2]
local raillike_group
if id ~= "groupless" then
raillike_group = minetest.raillike_group(id)
end
for c=1, #colors do
local color
if colors[c] ~= "" then
color = colors[c]
end
minetest.register_node("testnodes:raillike_"..id..c, {
description = S("Raillike Drawtype Test Node: @1 @2", id, c),
drawtype = "raillike",
paramtype = "light",
tiles = tiles,
groups = { connect_to_raillike = raillike_group, dig_immediate = 3 },
color = color,
selection_box = {
type = "fixed",
fixed = {{-0.5, -0.5, -0.5, 0.5, -0.4, 0.5}},
},
sunlight_propagates = true,
walkable = false,
})
end
end
-- Add visual_scale variants of previous nodes for half and double size
local scale = function(subname, desc_double, desc_half)
local original = "testnodes:"..subname
local def = table.copy(minetest.registered_items[original])
def.visual_scale = 2.0
def.description = desc_double
minetest.register_node("testnodes:"..subname.."_double", def)
def = table.copy(minetest.registered_items[original])
def.visual_scale = 0.5
def.description = desc_half
minetest.register_node("testnodes:"..subname.."_half", def)
end
scale("plantlike",
S("Double-sized Plantlike Drawtype Test Node"),
S("Half-sized Plantlike Drawtype Test Node"))
scale("torchlike",
S("Double-sized Wallmounted Torchlike Drawtype Test Node"),
S("Half-sized Wallmounted Torchlike Drawtype Test Node"))
scale("signlike",
S("Double-sized Wallmounted Signlike Drawtype Test Node"),
S("Half-sized Wallmounted Signlike Drawtype Test Node"))
scale("firelike",
S("Double-sized Firelike Drawtype Test Node"),
S("Half-sized Firelike Drawtype Test Node"))

View file

@ -0,0 +1,10 @@
local path = minetest.get_modpath(minetest.get_current_modname())
dofile(path.."/drawtypes.lua")
dofile(path.."/meshes.lua")
dofile(path.."/nodeboxes.lua")
dofile(path.."/param2.lua")
dofile(path.."/properties.lua")
dofile(path.."/liquids.lua")
dofile(path.."/light.lua")
dofile(path.."/textures.lua")

View file

@ -0,0 +1,48 @@
-- Test Nodes: Light test
local S = minetest.get_translator("testnodes")
-- All possible light levels
for i=1, minetest.LIGHT_MAX do
minetest.register_node("testnodes:light"..i, {
description = S("Light Source (@1)", i),
paramtype = "light",
light_source = i,
tiles ={"testnodes_light_"..i..".png"},
drawtype = "glasslike",
walkable = false,
sunlight_propagates = true,
is_ground_content = false,
groups = {dig_immediate=3},
})
end
-- Lets light through, but not sunlight, leading to a
-- reduction in light level when light passes through
minetest.register_node("testnodes:sunlight_filter", {
description = S("Sunlight Filter"),
paramtype = "light",
drawtype = "glasslike",
tiles = {
"testnodes_sunlight_filter.png",
},
groups = { dig_immediate = 3 },
})
-- Lets light and sunlight through without obstruction
minetest.register_node("testnodes:sunlight_propagator", {
description = S("Sunlight Propagator"),
paramtype = "light",
sunlight_propagates = true,
drawtype = "glasslike",
tiles = {
"testnodes_sunlight_filter.png^[brighten",
},
groups = { dig_immediate = 3 },
})

View file

@ -0,0 +1,91 @@
-- Add liquids for ranges and viscosity levels 0-8
for d=0, 8 do
minetest.register_node("testnodes:rliquid_"..d, {
description = "Test Liquid Source, Range "..d,
drawtype = "liquid",
tiles = {"testnodes_liquidsource_r"..d..".png"},
special_tiles = {
{name = "testnodes_liquidsource_r"..d..".png", backface_culling = false},
{name = "testnodes_liquidsource_r"..d..".png", backface_culling = true},
},
alpha = 192,
paramtype = "light",
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
is_ground_content = false,
liquidtype = "source",
liquid_alternative_flowing = "testnodes:rliquid_flowing_"..d,
liquid_alternative_source = "testnodes:rliquid_"..d,
liquid_range = d,
})
minetest.register_node("testnodes:rliquid_flowing_"..d, {
description = "Flowing Test Liquid, Range "..d,
drawtype = "flowingliquid",
tiles = {"testnodes_liquidflowing_r"..d..".png"},
special_tiles = {
{name = "testnodes_liquidflowing_r"..d..".png", backface_culling = false},
{name = "testnodes_liquidflowing_r"..d..".png", backface_culling = false},
},
alpha = 192,
paramtype = "light",
paramtype2 = "flowingliquid",
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
is_ground_content = false,
liquidtype = "flowing",
liquid_alternative_flowing = "testnodes:rliquid_flowing_"..d,
liquid_alternative_source = "testnodes:rliquid_"..d,
liquid_range = d,
})
local mod = "^[colorize:#000000:127"
minetest.register_node("testnodes:vliquid_"..d, {
description = "Test Liquid Source, Viscosity "..d,
drawtype = "liquid",
tiles = {"testnodes_liquidsource_r"..d..".png"..mod},
special_tiles = {
{name = "testnodes_liquidsource_r"..d..".png"..mod, backface_culling = false},
{name = "testnodes_liquidsource_r"..d..".png"..mod, backface_culling = true},
},
alpha = 192,
paramtype = "light",
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
is_ground_content = false,
liquidtype = "source",
liquid_alternative_flowing = "testnodes:vliquid_flowing_"..d,
liquid_alternative_source = "testnodes:vliquid_"..d,
liquid_viscosity = d,
})
minetest.register_node("testnodes:vliquid_flowing_"..d, {
description = "Flowing Test Liquid, Viscosity "..d,
drawtype = "flowingliquid",
tiles = {"testnodes_liquidflowing_r"..d..".png"..mod},
special_tiles = {
{name = "testnodes_liquidflowing_r"..d..".png"..mod, backface_culling = false},
{name = "testnodes_liquidflowing_r"..d..".png"..mod, backface_culling = false},
},
alpha = 192,
paramtype = "light",
paramtype2 = "flowingliquid",
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
is_ground_content = false,
liquidtype = "flowing",
liquid_alternative_flowing = "testnodes:vliquid_flowing_"..d,
liquid_alternative_source = "testnodes:vliquid_"..d,
liquid_viscosity = d,
})
end

View file

@ -0,0 +1,145 @@
-- Meshes
local S = minetest.get_translator("testnodes")
local ocorner_cbox = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, -0.25, 0.5},
{-0.5, -0.25, -0.25, 0.25, 0, 0.5},
{-0.5, 0, 0, 0, 0.25, 0.5},
{-0.5, 0.25, 0.25, -0.25, 0.5, 0.5}
}
}
local tall_pyr_cbox = {
type = "fixed",
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.25, 0.5 },
{ -0.375, -0.25, -0.375, 0.375, 0, 0.375},
{ -0.25, 0, -0.25, 0.25, 0.25, 0.25},
{ -0.125, 0.25, -0.125, 0.125, 0.5, 0.125}
}
}
-- Normal mesh
minetest.register_node("testnodes:mesh", {
description = S("Mesh Test Node"),
drawtype = "mesh",
mesh = "testnodes_pyramid.obj",
tiles = {"testnodes_mesh_stripes2.png"},
paramtype = "light",
collision_box = tall_pyr_cbox,
groups = {dig_immediate=3},
})
-- Facedir mesh: outer corner slope
minetest.register_node("testnodes:mesh_facedir", {
description = S("Facedir Mesh Test Node"),
drawtype = "mesh",
mesh = "testnodes_ocorner.obj",
tiles = {"testnodes_mesh_stripes.png"},
paramtype = "light",
paramtype2 = "facedir",
collision_box = ocorner_cbox,
groups = {dig_immediate=3},
})
minetest.register_node("testnodes:mesh_colorfacedir", {
description = S("Color Facedir Mesh Test Node"),
drawtype = "mesh",
mesh = "testnodes_ocorner.obj",
tiles = {"testnodes_mesh_stripes3.png"},
paramtype = "light",
paramtype2 = "colorfacedir",
palette = "testnodes_palette_facedir.png",
collision_box = ocorner_cbox,
groups = {dig_immediate=3},
})
-- Wallmounted mesh: pyramid
minetest.register_node("testnodes:mesh_wallmounted", {
description = S("Wallmounted Mesh Test Node"),
drawtype = "mesh",
mesh = "testnodes_pyramid.obj",
tiles = {"testnodes_mesh_stripes2.png"},
paramtype = "light",
paramtype2 = "wallmounted",
collision_box = tall_pyr_cbox,
groups = {dig_immediate=3},
})
minetest.register_node("testnodes:mesh_colorwallmounted", {
description = S("Color Wallmounted Mesh Test Node"),
drawtype = "mesh",
mesh = "testnodes_pyramid.obj",
tiles = {"testnodes_mesh_stripes3.png"},
paramtype = "light",
paramtype2 = "colorwallmounted",
palette = "testnodes_palette_wallmounted.png",
collision_box = tall_pyr_cbox,
groups = {dig_immediate=3},
})
minetest.register_node("testnodes:mesh_double", {
description = S("Double-sized Mesh Test Node"),
drawtype = "mesh",
mesh = "testnodes_pyramid.obj",
tiles = {"testnodes_mesh_stripes2.png"},
paramtype = "light",
collision_box = tall_pyr_cbox,
visual_scale = 2,
groups = {dig_immediate=3},
})
minetest.register_node("testnodes:mesh_half", {
description = S("Half-sized Mesh Test Node"),
drawtype = "mesh",
mesh = "testnodes_pyramid.obj",
tiles = {"testnodes_mesh_stripes2.png"},
paramtype = "light",
collision_box = tall_pyr_cbox,
visual_scale = 0.5,
groups = {dig_immediate=3},
})
minetest.register_node("testnodes:mesh_waving1", {
description = S("Plantlike-waving Mesh Test Node"),
drawtype = "mesh",
mesh = "testnodes_pyramid.obj",
tiles = {"testnodes_mesh_stripes4.png^[multiply:#B0FFB0"},
paramtype = "light",
collision_box = tall_pyr_cbox,
waving = 1,
groups = {dig_immediate=3},
})
minetest.register_node("testnodes:mesh_waving2", {
description = S("Leaflike-waving Mesh Test Node"),
drawtype = "mesh",
mesh = "testnodes_pyramid.obj",
tiles = {"testnodes_mesh_stripes4.png^[multiply:#FFFFB0"},
paramtype = "light",
collision_box = tall_pyr_cbox,
waving = 2,
groups = {dig_immediate=3},
})
minetest.register_node("testnodes:mesh_waving3", {
description = S("Liquidlike-waving Mesh Test Node"),
drawtype = "mesh",
mesh = "testnodes_pyramid.obj",
tiles = {"testnodes_mesh_stripes4.png^[multiply:#B0B0FF"},
paramtype = "light",
collision_box = tall_pyr_cbox,
waving = 3,
groups = {dig_immediate=3},
})

View file

@ -0,0 +1,2 @@
name = testnodes
description = Contains a bunch of basic example nodes for demonstrative purposes, development and testing

View file

@ -0,0 +1,23 @@
# Blender v2.73 (sub 0) OBJ File: 'slope_test_ocorner_onetexture.blend'
# www.blender.org
o Cube_Cube.002
v 0.500000 0.500000 0.500000
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 -0.500000
vt 1.000000 1.000000
vt 0.000000 1.000000
vt 0.000000 0.000000
vt 1.000000 0.000000
vn 0.000000 -1.000000 -0.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 -0.000000 1.000000
vn -0.707100 0.707100 0.000000
vn 0.000000 0.707100 -0.707100
s off
f 3/1/1 2/2/1 4/3/1 5/4/1
f 1/2/2 3/3/2 5/4/2
f 1/1/3 2/3/3 3/4/3
f 1/1/4 4/3/4 2/4/4
f 1/2/5 5/3/5 4/4/5

View file

@ -0,0 +1,24 @@
# Blender v2.73 (sub 0) OBJ File: 'slope_test_pyramid_onetexture.blend'
# www.blender.org
o Cube
v 0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 0.500000
v -0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000
v -0.000000 0.500000 -0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 0.500000 1.000000
vn 0.000000 -1.000000 0.000000
vn -0.894400 0.447200 -0.000000
vn 0.000000 0.447200 -0.894400
vn 0.894400 0.447200 0.000000
vn -0.000000 0.447200 0.894400
s off
f 1/1/1 2/2/1 3/3/1 4/4/1
f 3/4/2 5/5/2 4/3/2
f 5/5/3 1/3/3 4/4/3
f 1/4/4 5/5/4 2/3/4
f 2/4/5 5/5/5 3/3/5

View file

@ -0,0 +1,80 @@
local S = minetest.get_translator("testnodes")
-- Nodebox examples and tests.
-- An simple example nodebox with one centered box
minetest.register_node("testnodes:nodebox_fixed", {
description = S("Fixed Nodebox Test Node"),
tiles = {"testnodes_nodebox.png"},
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {-0.25, -0.25, -0.25, 0.25, 0.25, 0.25},
},
groups = {dig_immediate=3},
})
-- 50% higher than a regular node
minetest.register_node("testnodes:nodebox_overhigh", {
description = S("Overhigh Nodebox Test Node"),
tiles = {"testnodes_nodebox.png"},
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, 1, 0.5},
},
groups = {dig_immediate=3},
})
-- 100% higher than a regular node
minetest.register_node("testnodes:nodebox_overhigh2", {
description = S("Double-height Nodebox Test Node"),
tiles = {"testnodes_nodebox.png"},
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, 1.5, 0.5},
},
groups = {dig_immediate=3},
})
-- Height of nodebox changes with its param2 value
minetest.register_node("testnodes:nodebox_leveled", {
description = S("Leveled Nodebox Test Node"),
tiles = {"testnodes_nodebox.png"},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "leveled",
node_box = {
type = "leveled",
fixed = {-0.5, 0.0, -0.5, 0.5, -0.499, 0.5},
},
groups = {dig_immediate=3},
})
-- Wall-like nodebox that connects to neighbors
minetest.register_node("testnodes:nodebox_connected", {
description = S("Connected Nodebox Test Node"),
tiles = {"testnodes_nodebox.png"},
groups = {connected_nodebox=1, dig_immediate=3},
drawtype = "nodebox",
paramtype = "light",
connects_to = {"group:connected_nodebox"},
connect_sides = {"front", "back", "left", "right"},
node_box = {
type = "connected",
fixed = {-0.125, -0.500, -0.125, 0.125, 0.500, 0.125},
connect_front = {-0.125, -0.500, -0.500, 0.125, 0.400, -0.125},
connect_back = {-0.125, -0.500, 0.125, 0.125, 0.400, 0.500},
connect_left = {-0.500, -0.500, -0.125, -0.125, 0.400, 0.125},
connect_right = {0.125, -0.500, -0.125, 0.500, 0.400, 0.125},
},
})

View file

@ -0,0 +1,168 @@
-- This file is for misc. param2 tests that aren't covered in drawtypes.lua already.
local S = minetest.get_translator("testnodes")
minetest.register_node("testnodes:facedir", {
description = S("Facedir Test Node"),
paramtype2 = "facedir",
tiles = {
"testnodes_1.png",
"testnodes_2.png",
"testnodes_3.png",
"testnodes_4.png",
"testnodes_5.png",
"testnodes_6.png",
},
groups = { dig_immediate = 3 },
})
minetest.register_node("testnodes:facedir_nodebox", {
description = S("Facedir Nodebox Test Node"),
tiles = {
"testnodes_1.png",
"testnodes_2.png",
"testnodes_3.png",
"testnodes_4.png",
"testnodes_5.png",
"testnodes_6.png",
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
node_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.2, 0.2, 0.2},
},
groups = {dig_immediate=3},
})
minetest.register_node("testnodes:wallmounted", {
description = S("Wallmounted Test Node"),
paramtype2 = "wallmounted",
tiles = {
"testnodes_1w.png",
"testnodes_2w.png",
"testnodes_3w.png",
"testnodes_4w.png",
"testnodes_5w.png",
"testnodes_6w.png",
},
groups = { dig_immediate = 3 },
})
minetest.register_node("testnodes:wallmounted_nodebox", {
description = S("Wallmounted Nodebox Test Node"),
paramtype2 = "wallmounted",
paramtype = "light",
tiles = {
"testnodes_1w.png",
"testnodes_2w.png",
"testnodes_3w.png",
"testnodes_4w.png",
"testnodes_5w.png",
"testnodes_6w.png",
},
drawtype = "nodebox",
node_box = {
type = "wallmounted",
wall_top = { -0.5, 0, -0.5, 0.5, 0.5, 0.5 },
wall_bottom = { -0.5, -0.5, -0.5, 0.5, 0, 0.5 },
wall_side = { -0.5, -0.5, -0.5, 0, 0.5, 0.5 },
},
groups = { dig_immediate = 3 },
})
minetest.register_node("testnodes:color", {
description = S("Color Test Node"),
paramtype2 = "color",
palette = "testnodes_palette_full.png",
tiles = {
"testnodes_node.png",
},
groups = { dig_immediate = 3 },
})
minetest.register_node("testnodes:colorfacedir", {
description = S("Color Facedir Test Node"),
paramtype2 = "colorfacedir",
palette = "testnodes_palette_facedir.png",
tiles = {
"testnodes_1g.png",
"testnodes_2g.png",
"testnodes_3g.png",
"testnodes_4g.png",
"testnodes_5g.png",
"testnodes_6g.png",
},
groups = { dig_immediate = 3 },
})
minetest.register_node("testnodes:colorfacedir_nodebox", {
description = S("Color Facedir Nodebox Test Node"),
tiles = {
"testnodes_1g.png",
"testnodes_2g.png",
"testnodes_3g.png",
"testnodes_4g.png",
"testnodes_5g.png",
"testnodes_6g.png",
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "colorfacedir",
palette = "testnodes_palette_facedir.png",
node_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.2, 0.2, 0.2},
},
groups = {dig_immediate=3},
})
minetest.register_node("testnodes:colorwallmounted", {
description = S("Color Wallmounted Test Node"),
paramtype2 = "colorwallmounted",
paramtype = "light",
palette = "testnodes_palette_wallmounted.png",
tiles = {
"testnodes_1wg.png",
"testnodes_2wg.png",
"testnodes_3wg.png",
"testnodes_4wg.png",
"testnodes_5wg.png",
"testnodes_6wg.png",
},
groups = { dig_immediate = 3 },
})
minetest.register_node("testnodes:colorwallmounted_nodebox", {
description = S("Color Wallmounted Nodebox Test Node"),
paramtype2 = "colorwallmounted",
paramtype = "light",
palette = "testnodes_palette_wallmounted.png",
tiles = {
"testnodes_1wg.png",
"testnodes_2wg.png",
"testnodes_3wg.png",
"testnodes_4wg.png",
"testnodes_5wg.png",
"testnodes_6wg.png",
},
drawtype = "nodebox",
node_box = {
type = "wallmounted",
wall_top = { -0.5, 0, -0.5, 0.5, 0.5, 0.5 },
wall_bottom = { -0.5, -0.5, -0.5, 0.5, 0, 0.5 },
wall_side = { -0.5, -0.5, -0.5, 0, 0.5, 0.5 },
},
groups = { dig_immediate = 3 },
})

View file

@ -0,0 +1,270 @@
-- Test Nodes: Node property tests
local S = minetest.get_translator("testnodes")
-- Is supposed to fall when it doesn't rest on solid ground
minetest.register_node("testnodes:falling", {
description = S("Falling Node"),
tiles = {
"testnodes_node.png",
"testnodes_node.png",
"testnodes_node_falling.png",
},
groups = { falling_node = 1, dig_immediate = 3 },
})
-- Same as falling node, but will stop falling on top of liquids
minetest.register_node("testnodes:falling_float", {
description = S("Falling+Floating Node"),
groups = { falling_node = 1, float = 1, dig_immediate = 3 },
tiles = {
"testnodes_node.png",
"testnodes_node.png",
"testnodes_node_falling.png",
},
color = "cyan",
})
-- This node attaches to the floor and drops as item
-- when the floor is gone.
minetest.register_node("testnodes:attached", {
description = S("Floor-Attached Node"),
tiles = {
"testnodes_attached_top.png",
"testnodes_attached_bottom.png",
"testnodes_attached_side.png",
},
groups = { attached_node = 1, dig_immediate = 3 },
})
-- This node attaches to the side of a node and drops as item
-- when the node it attaches to is gone.
minetest.register_node("testnodes:attached_wallmounted", {
description = S("Wallmounted Attached Node"),
paramtype2 = "wallmounted",
tiles = {
"testnodes_attachedw_top.png",
"testnodes_attachedw_bottom.png",
"testnodes_attachedw_side.png",
},
groups = { attached_node = 1, dig_immediate = 3 },
})
-- Jump disabled
minetest.register_node("testnodes:nojump", {
description = S("Non-jumping Node"),
groups = {disable_jump=1, dig_immediate=3},
tiles = {"testnodes_nojump_top.png", "testnodes_nojump_side.png"},
})
-- Climbable up and down with jump and sneak keys
minetest.register_node("testnodes:climbable", {
description = S("Climbable Node"),
climbable = true,
walkable = false,
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
tiles ={"testnodes_climbable_side.png"},
drawtype = "glasslike",
groups = {dig_immediate=3},
})
-- Climbable only downwards with sneak key
minetest.register_node("testnodes:climbable_nojump", {
description = S("Downwards-climbable Node"),
climbable = true,
walkable = false,
groups = {disable_jump=1, dig_immediate=3},
drawtype = "glasslike",
tiles ={"testnodes_climbable_nojump_side.png"},
paramtype = "light",
sunlight_propagates = true,
})
-- A liquid in which you can't rise
minetest.register_node("testnodes:liquid_nojump", {
description = S("Non-jumping Liquid Source Node"),
liquidtype = "source",
liquid_range = 1,
liquid_viscosity = 0,
liquid_alternative_flowing = "testnodes:liquidflowing_nojump",
liquid_alternative_source = "testnodes:liquid_nojump",
liquid_renewable = false,
groups = {disable_jump=1, dig_immediate=3},
walkable = false,
drawtype = "liquid",
tiles = {"testnodes_liquidsource.png^[colorize:#FF0000:127"},
special_tiles = {
{name = "testnodes_liquidsource.png^[colorize:#FF0000:127", backface_culling = false},
{name = "testnodes_liquidsource.png^[colorize:#FF0000:127", backface_culling = true},
},
use_texture_alpha = true,
paramtype = "light",
pointable = false,
liquids_pointable = true,
diggable = false,
buildable_to = true,
is_ground_content = false,
post_effect_color = {a = 70, r = 255, g = 0, b = 200},
})
-- A liquid in which you can't rise (flowing variant)
minetest.register_node("testnodes:liquidflowing_nojump", {
description = S("Non-jumping Flowing Liquid Node"),
liquidtype = "flowing",
liquid_range = 1,
liquid_viscosity = 0,
liquid_alternative_flowing = "testnodes:liquidflowing_nojump",
liquid_alternative_source = "testnodes:liquid_nojump",
liquid_renewable = false,
groups = {disable_jump=1, dig_immediate=3},
walkable = false,
drawtype = "flowingliquid",
tiles = {"testnodes_liquidflowing.png^[colorize:#FF0000:127"},
special_tiles = {
{name = "testnodes_liquidflowing.png^[colorize:#FF0000:127", backface_culling = false},
{name = "testnodes_liquidflowing.png^[colorize:#FF0000:127", backface_culling = false},
},
use_texture_alpha = true,
paramtype = "light",
paramtype2 = "flowingliquid",
pointable = false,
liquids_pointable = true,
diggable = false,
buildable_to = true,
is_ground_content = false,
post_effect_color = {a = 70, r = 255, g = 0, b = 200},
})
-- Nodes that modify fall damage (various damage modifiers)
for i=-100, 100, 25 do
if i ~= 0 then
local subname, descnum
if i < 0 then
subname = "m"..math.abs(i)
descnum = tostring(i)
else
subname = tostring(i)
descnum = S("+@1", i)
end
local tex, color, desc
if i > 0 then
local val = math.floor((i/100)*255)
tex = "testnodes_fall_damage_plus.png"
color = { b=0, g=255-val, r=255, a=255 }
desc = S("Fall Damage Node (+@1%)", i)
else
tex = "testnodes_fall_damage_minus.png"
if i == -100 then
color = { r=0, b=0, g=255, a=255 }
else
local val = math.floor((math.abs(i)/100)*255)
color = { r=0, b=255, g=255-val, a=255 }
end
desc = S("Fall Damage Node (-@1%)", math.abs(i))
end
minetest.register_node("testnodes:damage"..subname, {
description = desc,
groups = {fall_damage_add_percent=i, dig_immediate=3},
tiles = { tex },
is_ground_content = false,
color = color,
})
end
end
-- Bouncy nodes (various bounce levels)
for i=20, 180, 20 do
local val = math.floor(((i-20)/200)*255)
minetest.register_node("testnodes:bouncy"..i, {
description = S("Bouncy Node (@1%)", i),
groups = {bouncy=i, dig_immediate=3},
tiles ={"testnodes_bouncy.png"},
is_ground_content = false,
color = { r=255, g=255-val, b=val, a=255 },
})
end
-- Slippery nodes (various slippery levels)
for i=1, 5 do
minetest.register_node("testnodes:slippery"..i, {
description = S("Slippery Node (@1)", i),
tiles ={"testnodes_slippery.png"},
is_ground_content = false,
groups = {slippery=i, dig_immediate=3},
color = { r=0, g=255, b=math.floor((i/5)*255), a=255 },
})
end
-- By placing something on the node, the node itself will be replaced
minetest.register_node("testnodes:buildable_to", {
description = S("Replacable Node"),
buildable_to = true,
tiles = {"testnodes_buildable_to.png"},
is_ground_content = false,
groups = {dig_immediate=3},
})
-- Nodes that deal damage to players that are inside them.
-- Negative damage nodes should heal.
for d=-3,3 do
if d ~= 0 then
local sub, tile
if d > 0 then
sub = tostring(d)
tile = "testnodes_damage.png"
else
sub = "m" .. tostring(math.abs(d))
tile = "testnodes_damage_neg.png"
end
if math.abs(d) == 2 then
tile = tile .. "^[colorize:#000000:70"
elseif math.abs(d) == 3 then
tile = tile .. "^[colorize:#000000:140"
end
minetest.register_node("testnodes:damage_"..sub, {
description = S("Damage Node (@1 damage per second)", d),
damage_per_second = d,
walkable = false,
is_ground_content = false,
drawtype = "allfaces",
paramtype = "light",
sunlight_propagates = true,
tiles = { tile },
groups = {dig_immediate=3},
})
end
end
-- Causes drowning damage
minetest.register_node("testnodes:drowning_1", {
description = S("Drowning Node (@1 damage)", 1),
drowning = 1,
walkable = false,
is_ground_content = false,
drawtype = "allfaces",
paramtype = "light",
sunlight_propagates = true,
tiles = { "testnodes_drowning.png" },
groups = {dig_immediate=3},
})

View file

@ -0,0 +1,4 @@
# If set to true, will show an inventory image for nodes that have no inventory image as of Minetest 5.1.0.
# This is due to <https://github.com/minetest/minetest/issues/9209>.
# This is only added to make the items more visible to avoid confusion, but you will no longer see the default inventory images for these items. When you want to test the default inventory image of drawtypes, this should be turned off.
testnodes_show_fallback_image (Use fallback inventory images) bool false

View file

@ -0,0 +1,67 @@
-- Node texture tests
local S = minetest.get_translator("testnodes")
minetest.register_node("testnodes:6sides", {
description = S("Six Textures Test Node"),
tiles = {
"testnodes_normal1.png",
"testnodes_normal2.png",
"testnodes_normal3.png",
"testnodes_normal4.png",
"testnodes_normal5.png",
"testnodes_normal6.png",
},
groups = { dig_immediate = 2 },
})
minetest.register_node("testnodes:anim", {
description = S("Animated Test Node"),
tiles = {
{ name = "testnodes_anim.png",
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 4.0,
}, },
},
groups = { dig_immediate = 2 },
})
-- Node texture transparency test
local alphas = { 64, 128, 191 }
for a=1,#alphas do
local alpha = alphas[a]
-- Transparency taken from texture
minetest.register_node("testnodes:alpha_texture_"..alpha, {
description = S("Texture Alpha Test Node (@1)", alpha),
drawtype = "glasslike",
paramtype = "light",
tiles = {
"testnodes_alpha"..alpha..".png",
},
use_texture_alpha = true,
groups = { dig_immediate = 3 },
})
-- Transparency set via "alpha" parameter
minetest.register_node("testnodes:alpha_"..alpha, {
description = S("Alpha Test Node (@1)", alpha),
-- It seems that only the liquid drawtype supports the alpha parameter
drawtype = "liquid",
paramtype = "light",
tiles = {
"testnodes_alpha.png",
},
alpha = alpha,
groups = { dig_immediate = 3 },
})
end

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 B

Some files were not shown because too many files have changed in this diff Show more