added support for MineClone2

master
Sokomine 2018-02-09 23:15:06 +01:00
parent 07a88d7bf6
commit f4b80d11f1
4 changed files with 100 additions and 0 deletions

View File

@ -23,3 +23,10 @@ docfarming?
mccompat?
beds?
unified_inventory?
mcl_core?
mcl_fences?
mcl_doors?
mcl_books?
mcl_chests?
mcl_torches?
mcl_signs?

View File

@ -22,6 +22,12 @@ if( minetest.registered_nodes["oven:oven"]
handle_schematics.is_realtest = true;
end
-- MineClone2 renames all nodes
handle_schematics.is_mineclone2 = nil;
if( minetest.get_modpath("mcl_core")) then
handle_schematics.is_mineclone2 = true;
end
-- globally change nodes from the schematics into others; useful if you
-- i.e. do not have default installed
dofile(handle_schematics.modpath.."/replacements_global.lua")
@ -59,6 +65,7 @@ replacements_group.node_is_ground = {}
dofile(handle_schematics.modpath.."/replacements_discontinued_nodes.lua")
dofile(handle_schematics.modpath.."/replacements_wood.lua")
dofile(handle_schematics.modpath.."/replacements_realtest.lua")
dofile(handle_schematics.modpath.."/replacements_mineclone2.lua")
dofile(handle_schematics.modpath.."/replacements_farming.lua")
dofile(handle_schematics.modpath.."/replacements_roof.lua")

View File

@ -0,0 +1,36 @@
replacements_group['mineclone2'] = {}
-- parameter: replacements, name_in_default, name_in_mineclone2, to_mineclone2=true/false
replacements_group['mineclone2'].replace_one = function( def, mcl2)
if( handle_schematics.is_mineclone2 ) then
handle_schematics.global_replacement_table[ def ] = mcl2;
else
handle_schematics.global_replacement_table[ mcl2 ] = def;
end
end
replacements_group['mineclone2'].setup_global_replacements = function()
local simple_translation = {"stone","stone_with_coal","stone_with_iron","stone_with_gold",
"stone_with_diamond", "stonebrick",
"dirt_with_grass","dirt_with_dry_grass","dirt","gravel","sand","sandstone",
"clay","cobble","mossycobble","coalblock","ironblock","goldblock","diamondblock",
"obsidian","ice","cactus","ladder","glass",
"water_flowing","water_source","lava_flowing","lava_source",
};
for i,k in ipairs( simple_translation ) do
replacements_group['mineclone2'].replace_one( 'default:'..k, 'mcl_core:'..k);
end
replacements_group['mineclone2'].replace_one( 'default:torch', 'mcl_torches:torch');
replacements_group['mineclone2'].replace_one( 'default:torch_wall', 'mcl_torches:torch_wall');
replacements_group['mineclone2'].replace_one( 'default:furnace', 'mcl_furnaces:furnace');
replacements_group['mineclone2'].replace_one( 'default:ladder_wood', 'mcl_core:ladder');
replacements_group['mineclone2'].replace_one( 'default:sign_wall_wood', 'mcl_signs:wall_sign');
replacements_group['mineclone2'].replace_one( 'default:bookshelf', 'mcl_books:bookshelf');
replacements_group['mineclone2'].replace_one( 'default:chest', 'mcl_chests:chest');
-- MineClone2 has no locked chests
replacements_group['mineclone2'].replace_one( 'default:chest_locked', 'mcl_chests:chest');
end
-- needs to be called once after handle_schematics.is_mineclone2 is set
replacements_group['mineclone2'].setup_global_replacements();

View File

@ -105,6 +105,10 @@ replacements_group['wood'].add_material = function( candidate_list, mod_prefix,
data[23] = 'doors:trapdoor';
data[24] = 'stairs:stair_inner_'..w;
data[25] = 'stairs:stair_outer_'..w;
data[26] = 'doors:door_wood_a';
data[27] = 'doors:door_wood_b';
data[28] = 'doors:hidden';
-- realtest has some further replacements
elseif( mod_prefix=='trees:' and w_post=='_planks' and t_post=='_log' ) then
data[12] = 'trees:'..v..'_ladder';
@ -121,6 +125,27 @@ replacements_group['wood'].add_material = function( candidate_list, mod_prefix,
data[23] = 'hatches:'..v..'_hatch_opened_bottom';
data[24] = 'stairs:stair_inner_'..v..'_wood';
data[25] = 'stairs:stair_outer_'..v..'_wood';
data[26] = data[15];
data[27] = data[16];
data[28] = 'doors:hidden';
elseif( mod_prefix=='mcl_core:') then
data[11] = 'mcl_fences:fence_gate_'..v;
data[12] = 'mcl_core:ladder';
data[13] = 'mcl_doors:'..v..'_door_t_1'; -- TODO: wooden_door
data[14] = 'mcl_doors:'..v..'_door_t_2';
data[15] = 'mcl_doors:'..v..'_door_b_1';
data[16] = 'mcl_doors:'..v..'_door_b_2';
data[17] = 'mcl_books:bookshelf';
data[18] = 'mcl_chests:chest';
data[19] = 'mcl_chests:chest';
data[20] = 'stairs:stair_'..v..'upside_down';
data[21] = 'stairs:slab_'..v..'upside_down';
data[22] = 'doors:'..v..'_trapdoor_open';
data[23] = 'doors:'..v..'_trapdoor';
data[24] = 'stairs:stair_inner_'..v;
data[26] = data[15];
data[27] = data[16];
data[28] = data[13]; -- no way to decide automaticly which door top fits
end
replacements_group['wood'].data[ wood_name ] = data;
@ -233,6 +258,31 @@ replacements_group['wood'].construct_wood_type_list = function()
'stairs:stair_','_wood', 'stairs:slab_','_wood', 'NONE','', 'NONE','' );
-- MineClone2
local mineclone2_treelist = {"jungle","spruce","acacia","birch" };
replacements_group['wood'].add_material( mineclone2_treelist,
'mcl_core:', '', 'wood', '','tree', '','leaves','','sapling',
'mcl_stairs:stair_','wood', 'mcl_stairs:slab_','wood',
'mcl_fences:','_fence', 'mcl_fences:','_fence_gate' );
-- normal wood needs special treatment
replacements_group['wood'].add_material( {""},
'mcl_core:', '', 'wood', '','tree', '','leaves','','sapling',
'mcl_stairs:stair_','wood', 'mcl_stairs:slab_','wood',
'mcl_fences:','fence', 'mcl_fences:','fence_gate' );
-- the doors made out of wood do not follow the internal naming convention of MineClone2
replacements_group['wood'].data[ 'mcl_core:wood' ][13] = 'mcl_doors:wooden_door_t_1';
replacements_group['wood'].data[ 'mcl_core:wood' ][14] = 'mcl_doors:wooden_door_t_2';
replacements_group['wood'].data[ 'mcl_core:wood' ][15] = 'mcl_doors:wooden_door_b_1';
replacements_group['wood'].data[ 'mcl_core:wood' ][16] = 'mcl_doors:wooden_door_b_2';
replacements_group['wood'].data[ 'mcl_core:wood' ][26] = 'mcl_doors:wooden_door_b_1';
replacements_group['wood'].data[ 'mcl_core:wood' ][27] = 'mcl_doors:wooden_door_b_2';
replacements_group['wood'].data[ 'mcl_core:wood' ][28] = 'mcl_doors:wooden_door_t_1';
-- dark oak needs special treatment
replacements_group['wood'].add_material( {"dark"},
'mcl_core:', '', 'wood', '','tree', '','leaves','','sapling',
'mcl_stairs:stair_','wood', 'mcl_stairs:slab_','wood',
'mcl_fences:','_oak_fence', 'mcl_fences:','_oak_fence_gate' );
-- https://github.com/PilzAdam/farming_plus
-- TODO: this does not come with its own wood... banana and cocoa trees (only leaves, sapling and fruit)
-- TODO: farming_plus:TREETYP_sapling farming_plus:TREETYP_leaves farming_plus:TREETYP