From c80a20f16fce7b56fb3edd27fd345cdf969e2e5a Mon Sep 17 00:00:00 2001 From: NathanSalapat Date: Fri, 25 Jan 2019 21:37:02 -0600 Subject: [PATCH] added support for Ethereal and Darkage. --- api.txt | 6 +++++- chisel.lua | 13 +++++++++++++ darkage.lua | 19 +++++++++++++++++++ ethereal.lua | 15 +++++++++++++++ formspec.lua | 4 ++-- gravestones.lua | 6 +++--- init.lua | 25 ++++++++++++++++++------- machine.lua | 21 +++++++++++++++++---- mod.conf | 4 ++-- settingtypes.txt | 6 ++++-- textures/tombs_chisel.png | Bin 0 -> 237 bytes 11 files changed, 98 insertions(+), 21 deletions(-) create mode 100644 chisel.lua create mode 100644 darkage.lua create mode 100644 ethereal.lua create mode 100644 textures/tombs_chisel.png diff --git a/api.txt b/api.txt index c618ac2..7ac0592 100644 --- a/api.txt +++ b/api.txt @@ -1,3 +1,7 @@ You can easily add custom materials for the tombstones by simply calling -tombs.register_stones('modname:nodename', 'nodename', 'description', 'texture') +tombs.register_stones('modname:nodename', 'nodename', 'description', 'texture', #Light_Level) +modname:nodename is the recipe node used in the input slot. +nodename is used internally, keep it short but specific to avoid conflicts. +description shows when hovering over the node in inventory. DO NOT include the extension for the texture or you will get an error. +#Light_Level is optional if used it should be a number 1-14. diff --git a/chisel.lua b/chisel.lua new file mode 100644 index 0000000..c6d6fe6 --- /dev/null +++ b/chisel.lua @@ -0,0 +1,13 @@ + minetest.register_tool('tombs:chisel', { + description = 'Stone Chisel', + inventory_image = 'tombs_chisel.png', + wield_image = 'tombs_chisel.png', +}) + + minetest.register_craft({ + output = 'tombs:chisel', + recipe = { + {'default:steel_ingot', ''}, + {'', 'default:tin_ingot'}, + } + }) diff --git a/darkage.lua b/darkage.lua new file mode 100644 index 0000000..8048b6f --- /dev/null +++ b/darkage.lua @@ -0,0 +1,19 @@ +tombs.register_stones('darkage:adobe', 'adobe', 'Adobe', 'darkage_adobe') +tombs.register_stones('darkage:basalt', 'basalt', 'Basalt', 'darkage_basalt') +tombs.register_stones('darkage:basalt_rubble', 'basalt_rubble', 'Basalt Rubble', 'darkage_basalt_rubble') +tombs.register_stones('darkage:chalk', 'chalk', 'Chalk', 'darkage_chalk') +tombs.register_stones('darkage:gneiss', 'gneiss', 'Gneiss', 'darkage_gneiss') +tombs.register_stones('darkage:gneiss_rubble', 'gneiss_rubble', 'Gneiss Rubble', 'darkage_gneiss_rubble') +tombs.register_stones('darkage:marble', 'marble', 'Marble', 'darkage_marble') +tombs.register_stones('darkage:ors', 'ors', 'Old Red Sandstone', 'darkage_ors') +tombs.register_stones('darkage:ors', 'ors_rubble', 'Old Red Sandstone Rubble', 'darkage_ors_rubble') +tombs.register_stones('darkage:rhyolitic_tuff', 'rhyolitic_tuff', 'Rhyolitic Tuff', 'darkage_rhyolitic_tuff') +tombs.register_stones('darkage:rhyolitic_tuff_rubble', 'rhyolitic_tuff_rubble', 'Rhyolitic Tuff Rubble', 'darkage_rhyolitic_tuff_rubble') +tombs.register_stones('darkage:schist', 'schist', 'Schist', 'darkage_schist') +tombs.register_stones('darkage:serpentine', 'serpentine', 'Serpentine', 'darkage_serpentine') +tombs.register_stones('darkage:shale', 'shale', 'Shale', 'darkage_shale') +tombs.register_stones('darkage:slate', 'slate', 'Slate', 'darkage_slate') +tombs.register_stones('darkage:slate_rubble', 'slate_rubble', 'Slate Rubble', 'darkage_slate_rubble') +tombs.register_stones('darkage:slate_tile', 'slate_tile', 'Slate Tile', 'darkage_slate_tile') +tombs.register_stones('darkage:tuff', 'tuff', 'Tuff', 'darkage_tuff') +tombs.register_stones('darkage:tuff_rubble', 'tuff_rubble', 'Tuff Rubble', 'darkage_tuff_rubble') diff --git a/ethereal.lua b/ethereal.lua new file mode 100644 index 0000000..71d7533 --- /dev/null +++ b/ethereal.lua @@ -0,0 +1,15 @@ +tombs.register_stones('ethereal:acacia_wood', 'acacia', 'Acacia', 'default_acacia_wood') +tombs.register_stones('ethereal:banana_wood', 'banana', 'Banana', 'banana_wood') +tombs.register_stones('ethereal:crystal_moss', 'crystal_moss', 'Crystal Moss', 'ethereal_grass_crystal_top') +tombs.register_stones('ethereal:fiery_moss', 'fiery_moss', 'Fiery Moss', 'ethereal_grass_fiery_top') +tombs.register_stones('ethereal:frost_wood', 'frost_wood', 'Frost Wood', 'frost_wood') +tombs.register_stones('ethereal:glostone', 'glostone', 'Glostone', 'glostone', 10) +tombs.register_stones('ethereal:grey_moss', 'grey_moss', 'Grey Moss', 'ethereal_grass_gray_top') +tombs.register_stones('ethereal:green_moss', 'green_moss', 'Green Moss', 'default_grass') +tombs.register_stones('ethereal:mushroom', 'mushroomcap', 'Mushroom Cap', 'mushroom_block') +tombs.register_stones('ethereal:mushroom_pore', 'mushroompore', 'Mushroom Pore', 'mushroom_pore') +tombs.register_stones('ethereal:palm_wood', 'palm_wood', 'Palm', 'moretrees_palm_wood') +tombs.register_stones('ethereal:redwood_wood', 'redwood_wood', 'Redwood', 'redwood_wood') +tombs.register_stones('ethereal:palm_wood', 'palm_wood', 'Palm', 'moretrees_palm_wood') +tombs.register_stones('ethereal:willow_wood', 'willow_wood', 'Willow', 'willow_wood') +tombs.register_stones('ethereal:yellow_wood', 'yellow_wood', 'Healing Wood', 'yellow_wood') diff --git a/formspec.lua b/formspec.lua index 3efe1cc..9378210 100644 --- a/formspec.lua +++ b/formspec.lua @@ -1,7 +1,7 @@ machine_formspec_centered = 'size[8,7.5]'.. 'list[context;tool;0,0;1,1]'.. -'label[1,0;Bones]'.. +'label[1,0;Bones or Chisel]'.. 'list[context;input;0,1;1,1]'.. 'label[1,1;Material]'.. 'label[0,2;Click to switch to offset versions.]'.. @@ -12,7 +12,7 @@ machine_formspec_centered = machine_formspec_offset = 'size[8,7.5]'.. 'list[context;tool;0,0;1,1]'.. -'label[1,0;Bones]'.. +'label[1,0;Bones or Chisel]'.. 'list[context;input;0,1;1,1]'.. 'label[1,1;Material]'.. 'label[0,2;Click to switch to centered versions.]'.. diff --git a/gravestones.lua b/gravestones.lua index 76802c5..50d62e4 100644 --- a/gravestones.lua +++ b/gravestones.lua @@ -1,5 +1,5 @@ function tombs.register_stones(recipe, name, desc, textures, light) -shapes = { --mesh identifier, shape, col +local shapes = { --mesh identifier, shape, col {'_0', 'Rectangle', colbox_0_0, colbox_0_1}, {'_1', 'Cross', colbox_1_0, colbox_1_1}, {'_2', 'Pointed', colbox_0_0, colbox_0_1}, @@ -20,7 +20,7 @@ shapes = { --mesh identifier, shape, col local group = {oddly_breakable_by_hand=2, not_in_creative_inventory=1} if minetest.settings:get_bool('tombs.creative') then - group = {oddly_breakable_by_hand=2} + group = {oddly_breakable_by_hand=2, cracky=3} end for i in ipairs (shapes) do @@ -98,7 +98,7 @@ end function tombs.crafting(input, var) local name = tombs.recipes[input] - output = + local output = {'tombs:'..name..'_0_'..var, 'tombs:'..name..'_1_'..var, 'tombs:'..name..'_2_'..var, 'tombs:'..name..'_3_'..var, 'tombs:'..name..'_4_'..var, 'tombs:'..name..'_5_'..var, 'tombs:'..name..'_6_'..var, 'tombs:'..name..'_7_'..var, 'tombs:'..name..'_8_'..var, diff --git a/init.lua b/init.lua index dfe2ff2..cbab8fb 100644 --- a/init.lua +++ b/init.lua @@ -6,24 +6,35 @@ dofile(minetest.get_modpath('tombs')..'/machine.lua') dofile(minetest.get_modpath('tombs')..'/collision_boxes.lua') dofile(minetest.get_modpath('tombs')..'/gravestones.lua') dofile(minetest.get_modpath('tombs')..'/formspec.lua') +dofile(minetest.get_modpath('tombs')..'/chisel.lua') --support for other mods if minetest.get_modpath('bakedclay') and (minetest.settings:get_bool('tombs.load_bakedclay')) then dofile(minetest.get_modpath('tombs')..'/bakedclay.lua') - print 'loaded bakedclay support.' + print 'Tombs loaded bakedclay support.' +end + +if minetest.get_modpath('caverealms') and (minetest.settings:get_bool('tombs.load_caverealms')) then + dofile(minetest.get_modpath('tombs')..'/caverealms.lua') + print 'Tombs loaded caverealms support.' +end + +if minetest.get_modpath('darkage') and (minetest.settings:get_bool('tombs.load_darkage')) then + dofile(minetest.get_modpath('tombs')..'/darkage.lua') + print 'Tombs loaded darkage support.' end if minetest.get_modpath('default') and (minetest.settings:get_bool('tombs.load_default')) then dofile(minetest.get_modpath('tombs')..'/default.lua') - print 'loaded default support.' + print 'Tombs loaded default support.' +end + +if minetest.get_modpath('ethereal') and (minetest.settings:get_bool('tombs.load_ethereal')) then + dofile(minetest.get_modpath('tombs')..'/ethereal.lua') + print 'Tombs loaded ethereal support.' end if minetest.get_modpath('wool') and (minetest.settings:get_bool('tombs.load_wool')) then dofile(minetest.get_modpath('tombs')..'/wool.lua') print 'loaded wool support.' end - -if minetest.get_modpath('caverealms') and (minetest.settings:get_bool('tombs.load_caverealms')) then - dofile(minetest.get_modpath('tombs')..'/caverealms.lua') - print 'loaded caverealms support.' -end diff --git a/machine.lua b/machine.lua index 82fcd75..529640e 100644 --- a/machine.lua +++ b/machine.lua @@ -65,8 +65,12 @@ minetest.register_node('tombs:machine', { end end if listname == 'tool' then - if stack:get_name() == ('bones:bones') then + if stack:get_name() == 'bones:bones' then return 99 + elseif stack:get_name() == 'tombs:chisel' then + return 1 + elseif stack:get_name() == 'mychisel:chisel' then + return 1 else return 0 end @@ -91,7 +95,13 @@ minetest.register_node('tombs:machine', { inv:set_list('output', {}) elseif listname == 'output' then input_stack:take_item(1) - tool_stack:take_item(1) + if tool_stack:get_name() == 'bones:bones' then + tool_stack:take_item(1) + elseif tool_stack:get_name() == 'tombs:chisel' then + tool_stack:add_wear(65535 / 48) + elseif tool_stack:get_name() == 'mychisel:chisel' then + tool_stack:add_wear(65535 / 48) + end inv:set_stack('tool',1,tool_stack) inv:set_stack('input',1,input_stack) if inv:is_empty('input') then @@ -112,8 +122,11 @@ function tombs.populate_output(pos) local tool_stack = inv:get_stack('tool', 1) local input = input_stack:get_name() local var = meta:get_string('var') - if tombs.nodes[input] and tool_stack:get_name() == ('bones:bones') then - inv:set_list('output', tombs.crafting(input, var)) + if tombs.nodes[input] then + if tool_stack:get_name() == 'bones:bones' or tool_stack:get_name() == 'tombs:chisel' + or tool_stack:get_name() == 'mychisel:chisel' then + inv:set_list('output', tombs.crafting(input, var)) + end else inv:set_list('output', {}) end diff --git a/mod.conf b/mod.conf index 1a8bc79..6d06f3a 100644 --- a/mod.conf +++ b/mod.conf @@ -1,4 +1,4 @@ name = tombs description = Adds many shapes and styles of tombstones. -depends = default, bones -optional_depends = wool, bakedclay, caverealms +depends = default +optional_depends = wool, bakedclay, caverealms, mychisel, bones, darkage diff --git a/settingtypes.txt b/settingtypes.txt index dccbfea..50b2e90 100644 --- a/settingtypes.txt +++ b/settingtypes.txt @@ -1,5 +1,7 @@ tombs.creative (Show nodes in creative inventory?) bool false -tombs.load_wool (Support wool mod?) bool true -tombs.load_default (Support default mod?) bool true tombs.load_bakedclay (Support bakedclay mod?) bool true tombs.load_caverealms (Support caverealms mod?) bool true +tombs.load_darkage (Support darkage mod?) bool true +tombs.load_default (Support default mod?) bool true +tombs.load_ethereal (Support ethereal mod?) bool true +tombs.load_wool (Support wool mod?) bool true diff --git a/textures/tombs_chisel.png b/textures/tombs_chisel.png new file mode 100644 index 0000000000000000000000000000000000000000..1b7d314e4298fb301767a65e3d677a7d35605e32 GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)2Utko(QgexL|vfk$L9 z0|U1(2s1Lwnj--eWH0gbb!C6dD8*>0)bi~2I-pRMr;B5V#p$<`7YZ^P^00*4uTu)$ z!7%k>YMu1Mg|pP%{C!x?$fk%$KY6=B#wN4O&se>3-c-rfd6j$lg1oj)VQSdDc-5zl z-^bq_TXHBvAo<8$#uJwOjCWb~uCUEN$yt9upK&d-x6q86x(!>zR;{Yx%{XhkIgy(& c<=fo*8#b$jYn8>Z0A0c0>FVdQ&MBb@0KC{x6aWAK literal 0 HcmV?d00001