From d8ababbada84e1625a264a7a534a8360f040e0dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20P=C3=A9rez-Cerezo?= Date: Sat, 10 Oct 2020 23:32:28 +0200 Subject: Squashed 'advtrains_platform/' content from commit fce72d6 git-subtree-dir: advtrains_platform git-subtree-split: fce72d6a60aa9053c97e8c5f447e64717eaedf4e --- depends.txt | 9 + init.lua | 428 +++++++++++++++++++++++++++ screenshot.png | Bin 0 -> 432480 bytes textures/advtrains_platform_version_node.png | Bin 0 -> 733 bytes version_info | 36 +++ 5 files changed, 473 insertions(+) create mode 100644 depends.txt create mode 100644 init.lua create mode 100755 screenshot.png create mode 100644 textures/advtrains_platform_version_node.png create mode 100755 version_info diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..e4772a3 --- /dev/null +++ b/depends.txt @@ -0,0 +1,9 @@ +advtrains +default +stairs +moreblocks? +ethereal? +maple? +moreores? +minetest_errata? +technic? diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..c728022 --- /dev/null +++ b/init.lua @@ -0,0 +1,428 @@ +-- all nodes that do not fit in any other category +-- Author: Och_Noe +-- Licence: LGPL 2.1 +-- + + +local own_name = "advtrains_platform" + + +local function register_platform(on,preset) + local ndef=minetest.registered_nodes[preset] + if not ndef then + minetest.log("warning", " register_platform couldn't find preset node "..preset) + return + end + local btex=ndef.tiles + if type(btex)=="table" then + btex=btex[1] + end + local desc=ndef.description or "" + local nodename=string.match(preset, ":(.+)$") + minetest.register_node(on..":platform_low_"..nodename, { + description = attrans("@1 Platform (low)", desc), + tiles = {btex.."^advtrains_platform.png", btex, btex, btex, btex, btex}, + groups = {cracky = 1, not_blocking_trains = 1, platform=1}, + sounds = default.node_sound_stone_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.1, -0.1, 0.5, 0 , 0.5}, + {-0.5, -0.5, 0 , 0.5, -0.1, 0.5} + }, + }, + paramtype2="facedir", + paramtype = "light", + sunlight_propagates = true, + }) + minetest.register_node(on..":platform_high_"..nodename, { + description = attrans("@1 Platform (high)", desc), + tiles = {btex.."^advtrains_platform.png", btex, btex, btex, btex, btex}, + groups = {cracky = 1, not_blocking_trains = 1, platform=2}, + sounds = default.node_sound_stone_defaults(), + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5, 0.3, -0.1, 0.5, 0.5, 0.5}, + {-0.5, -0.5, 0 , 0.5, 0.3, 0.5} + }, + }, + paramtype2="facedir", + paramtype = "light", + sunlight_propagates = true, + }) + minetest.register_craft({ + type="shapeless", + output = on..":platform_high_"..nodename.." 4", + recipe = { + "dye:yellow", preset, preset + }, + }) + minetest.register_craft({ + type="shapeless", + output = on..":platform_low_"..nodename.." 4", + recipe = { + "dye:yellow", preset + }, + }) +end + + + +-- bricks / blocks + +list_default = { + "default:desert_sandstone_brick", + "default:desert_stonebrick", + "default:silver_sandstone", + "default:silver_sandstone_brick", + "default:silver_sandstone_block", + "default:brick", + "default:stone", + "default:sandstone", + "default:obsidian_glass", + "default:dirt", + "default:dirt_with_grass", + "default:desert_stone", + "default:desert_sandstone", +-- added 2018-10-16 + "default:desert_sandstone_brick", +-- added 2018-10-26 + "default:cobble", +} + +list_moreblocks = { + "moreblocks:cactus_brick", + "moreblocks:coal_stone_bricks", + "moreblocks:grey_bricks", + "moreblocks:iron_stone_bricks", + "moreblocks:stone_tile", +-- added 2019-01-19 + "moreblocks:split_stone_tile", + "moreblocks:split_stone_tile_alt", +} + +list_ethereal = { + "ethereal:icebrick", + "ethereal:bamboo_dirt" } + + +-- added 2018-10-16 +list_errata= { + "minetest_errata:desert_sandstone_cobble", + "minetest_errata:mossy_stone_tile", + "minetest_errata:mossystone", + "minetest_errata:sandstone_cobble", + "minetest_errata:silver_sandstone_cobble", } + + +-- wood + +list_wood= { + "default:acacia_wood", + "default:aspen_wood", + "default:junglewood", + "default:pine_wood", + "default:wood" } + + +list_wood_ethereal = { + "ethereal:banana_wood", + "ethereal:birch_wood", + "ethereal:frost_wood", + "ethereal:palm_wood", + "ethereal:redwood_wood", + "ethereal:willow_wood", + "ethereal:yellow_wood", + "ethereal:bamboo_floor" } + + +list_wood_maple = { + "maple:maple_wood" } + + + +-- metal blocks + +list_moreores = { + "moreores:mithril_block" } + + +-- wool + +-- ? + + +-- technic - added 2019-03-11 + +list_technic = { + "technic:marble" } + + + +for _,name in pairs(list_default) do + register_platform(own_name,name) +end + +if minetest.get_modpath("moreblocks") then + for _,name in pairs(list_moreblocks) do + register_platform(own_name,name) + end +end + +-- added 2018-10-16 +if minetest.get_modpath("minetest_errata") then + for _,name in pairs(list_errata) do + register_platform(own_name,name) + end +end + + + +for _,name in pairs(list_wood) do + register_platform(own_name,name) +end + + +if minetest.get_modpath("ethereal") then + for _,name in pairs(list_ethereal) do + register_platform(own_name,name) + end + for _,name in pairs(list_wood_ethereal) do + register_platform(own_name,name) + end +end + + +if minetest.get_modpath("maple") then + for _,name in pairs(list_wood_maple) do + register_platform(own_name,name) + end +end + + +if minetest.get_modpath("moreores") then + for _,name in pairs(list_moreores) do + register_platform(own_name,name) + end +end + + +if minetest.get_modpath("technic") then + for _,name in pairs(list_technic) do + register_platform(own_name,name) + end +end + + + +local woodpath_lengths = { + { 5,10 }, + { 5,20 }, + { 5,25 }, + { 10,10 }, + { 10,20 }, + { 10,25 }, + { 20,20 }, + { 20,25 }, + { 25,25 }, +} + + +-- path crossing track + +local snowdef = minetest.registered_nodes['default:snowblock'] +local node_sound_snow_default = nil +if snowdef then + node_sound_snow_default = snowdef.sounds +end + +-- nodelist + +nodelist = {} + +-- nodelist:insert( { name = "", tile = ".png", +-- sound = , +-- full = "", half = "" } ) + +table.insert(nodelist, { name = "wood", + tile = "default_wood.png", + sound = default.node_sound_wood_defaults(), + full = "default:wood", + half = "stairs:slab_wood" } ) +table.insert(nodelist, { name = "cobble", + tile = "default_cobble.png", + sound = default.node_sound_stone_defaults(), + full = "default:cobble", + half = "stairs:slab_cobble" } ) +table.insert(nodelist, { name = "stonebrick", + tile = "default_stone_brick.png", + sound = default.node_sound_stone_defaults(), + full = "default:stonebrick", + half = "stairs:slab_stonebrick" } ) +table.insert(nodelist, { name = "snow", tile = "default_snow.png", + sound = node_sound_snow_default, + full = "default:snowblock", + half = "stairs:slab_snowblock" } ) + + +local adv_track = "advtrains:dtrack_placer" + +if minetest.get_modpath("moreblocks") then + table.insert(nodelist, { name = "tar", + tile = "moreblocks_tar.png", + sound = default.node_sound_stone_defaults(), + full = "moreblocks:tar", + half = "moreblocks:slab_tar" } ) + table.insert(nodelist, { name = "stone tile", + tile = "moreblocks_stone_tile.png", + sound = default.node_sound_stone_defaults(), + full = "moreblocks:stone_tile", + half = "moreblocks:slab_stone_tile" } ) +end + + +for _,entry in pairs(nodelist) do + + for _,lengths in pairs(woodpath_lengths) do + + local b = lengths[1] -- "back" in 1/10 nodes + local f = lengths[2] -- "front" in 1/10 nodes + + local h = string.format(":"..entry.name:gsub(" ","_") .."path_track_%02d%02d",b,f) + local d = string.format(entry.name .." level crossing %02d-%02d",b,f) + local h2 = string.format(":"..entry.name:gsub(" ","_") .."path_track_narrow_%02d%02d",b,f) + local d2 = string.format(entry.name .." level crossing (narrow) %02d-%02d",b,f) + + minetest.register_node(own_name..h, + { + tiles = { entry.tile, }, + description = d, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = + { + type = "fixed", + fixed = { + {-0.5, -0.5, b/-10, 0.5, -0.4, f/10}, + } + }, + groups = {choppy = 2, not_blocking_trains = 1, + oddly_breakable_by_hand = 2, + }, + sounds = entry.sound, + on_place = minetest.rotate_node, + + }) + + minetest.register_node(own_name..h2, + { + tiles = { entry.tile, }, + description = d2, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = + { + type = "fixed", + fixed = { + {-0.4, -0.5, b/-10, 0.4, -0.4, f/10}, + + } + }, + groups = {choppy = 2, not_blocking_trains = 1, + oddly_breakable_by_hand = 2, + }, + sounds = entry.sound, + on_place = minetest.rotate_node, + + }) + + + local craft = { { "","","" } , { "","","" } , { "","","" } } + + craft[3][2] = adv_track + + for y = 2,1,-1 + do + if (b>=5) and (f>=5) then + b = b-5 + f = f-5 + craft[y][2] = entry.full + end + end + + for y = 2,1,-1 + do + if (b>=10) then + b = b-10 + craft[y][1] = entry.full + elseif (b>=5) then + b = b-5 + craft[y][1] = entry.half + end + if (f>=10) then + f = f-10 + craft[y][3] = entry.full + elseif (f>=5) then + f = f-5 + craft[y][3] = entry.half + end + end + + -- if (b>0) or (f>0) then + -- print(h.." b: "..b.." f: "..f) + -- else + -- t_aus = "" + -- for y=1,3 do + -- for x=1,3 do + -- t_aus = t_aus .. craft[y][x] .. ", " + -- end + -- end + -- print(h..t_aus) + -- end + + minetest.register_craft({ + output = own_name..h, + recipe = craft, + replacements = { {adv_track,adv_track}, } + }) + + minetest.register_craft({ + output = own_name..h2, + recipe = { { own_name..h } }, + }) + + end + + + -- 3 nodes long slope + + + + +end + + + + + + +minetest.register_node(own_name..":version_node", { + description = own_name.." version node", + tiles = {own_name.."_version_node.png"}, + groups = {cracky = 3,not_in_creative_inventory=1}, + }) + +minetest.register_craft({ + output = own_name..":version_node", + recipe = { + { "advtrains_platform:platform_high_cobble" }, + { "advtrains_platform:platform_high_stone" }, + { adv_track }, + }, + }) + diff --git a/screenshot.png b/screenshot.png new file mode 100755 index 0000000..6576bbb Binary files /dev/null and b/screenshot.png differ diff --git a/textures/advtrains_platform_version_node.png b/textures/advtrains_platform_version_node.png new file mode 100644 index 0000000..fe617d2 Binary files /dev/null and b/textures/advtrains_platform_version_node.png differ diff --git a/version_info b/version_info new file mode 100755 index 0000000..30a7fd0 --- /dev/null +++ b/version_info @@ -0,0 +1,36 @@ +#!/bin/bash + +find *.lua *.txt textures -type f | fgrep -v textures/advtrains_platform_version_node.png | head -12 >.filelist + +echo -n "" >.datelist + +cat .filelist | while read line ; do + echo "$(date --iso=m -r ${line}) ${line}" >>.datelist +done + + + +(echo "$(date --iso=m) [$(basename "$(realpath . )")]" ; cat .datelist | sed 's/ textures/ t/' | sort -r ) | anytopnm >.image + +WIDTH=$(head -2 .image | tail -1 | awk '{ print $1 }') +HEIGHT=$(head -2 .image | tail -1 | awk '{ print $2 }') + +echo $WIDTH +echo $HEIGHT + +if [ $WIDTH -gt $HEIGHT ] ; then + ppmmake white 1 $((WIDTH-HEIGHT)) >.image_temp + pnmcat -tb .image .image_temp >.image2 +fi + +if [ $WIDTH -lt $HEIGHT ] ; then + ppmmake white $((HEIGHT-WIDTH)) 1 >.image_temp + pnmcat -lr .image .image_temp >.image2 +fi + + +pnmtopng .image2 >textures/advtrains_platform_version_node.png + + + + -- cgit v1.2.3