2014-09-19 09:36:05 -07:00
|
|
|
/************************************************************************
|
|
|
|
* Minetest-c55
|
|
|
|
* Copyright (C) 2010 celeron55, Perttu Ahola <celeron55@gmail.com>
|
|
|
|
*
|
|
|
|
* content_mapnode_special.cpp
|
|
|
|
* Copyright (C) Lisa 'darkrose' Milne 2014 <lisa@ltmnet.com>
|
|
|
|
*
|
|
|
|
* This program is free software: you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
|
|
* (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful, but
|
|
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
* See the GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>
|
|
|
|
************************************************************************/
|
|
|
|
|
|
|
|
#include "content_mapnode.h"
|
|
|
|
#include "content_nodebox.h"
|
|
|
|
#include "content_list.h"
|
|
|
|
#include "content_craft.h"
|
|
|
|
#include "content_nodemeta.h"
|
2015-05-20 05:32:55 -07:00
|
|
|
#include "player.h"
|
2015-04-09 11:09:36 -07:00
|
|
|
#include "intl.h"
|
2014-09-19 09:36:05 -07:00
|
|
|
|
|
|
|
void content_mapnode_special(bool repeat)
|
|
|
|
{
|
|
|
|
content_t i;
|
|
|
|
ContentFeatures *f = NULL;
|
|
|
|
|
|
|
|
i = CONTENT_FENCE;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Fence");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("fence.png");
|
|
|
|
f->setTexture(0,"fence_top.png");
|
|
|
|
f->setTexture(1,"fence_top.png");
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_SPECIAL;
|
|
|
|
f->draw_type = CDT_FENCELIKE;
|
|
|
|
f->is_ground_content = true;
|
|
|
|
f->jumpable = false;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->air_equivalent = true; // grass grows underneath
|
|
|
|
f->flammable = 1; // can be replaced by fire if the node under it is set on fire
|
|
|
|
f->fuel_time = 15;
|
|
|
|
f->special_alternate_node = CONTENT_WOOD;
|
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 0.75;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
content_nodebox_fence_inv(f);
|
|
|
|
content_nodebox_fence(f);
|
|
|
|
f->setInventoryTextureNodeBox(i,"fence.png","fence_top.png","fence.png");
|
|
|
|
crafting::setWallRecipe(CONTENT_CRAFTITEM_WOOD_PLANK,CONTENT_FENCE);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
2014-11-20 06:34:36 -08:00
|
|
|
i = CONTENT_STEEL_FENCE;
|
|
|
|
f = &content_features(i);
|
|
|
|
f->description = wgettext("Steel Fence");
|
|
|
|
f->setAllTextures("fence_steel.png");
|
|
|
|
f->setTexture(0,"fence_steel_top.png");
|
|
|
|
f->setTexture(1,"fence_steel_top.png");
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_SPECIAL;
|
|
|
|
f->draw_type = CDT_FENCELIKE;
|
|
|
|
f->is_ground_content = true;
|
|
|
|
f->jumpable = false;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->air_equivalent = true; // grass grows underneath
|
|
|
|
f->special_alternate_node = CONTENT_STEEL;
|
|
|
|
f->type = CMT_STONE;
|
|
|
|
f->hardness = 0.75;
|
|
|
|
f->pressure_type = CST_SOLID;
|
|
|
|
f->suffocation_per_second = 0;
|
2014-11-23 01:33:05 -08:00
|
|
|
f->destructive_mob_safe = true;
|
2014-11-20 06:34:36 -08:00
|
|
|
content_nodebox_fence_inv(f);
|
|
|
|
content_nodebox_fence(f);
|
|
|
|
f->setInventoryTextureNodeBox(i,"fence_steel.png","fence_steel_top.png","fence_steel.png");
|
|
|
|
crafting::setWallRecipe(CONTENT_CRAFTITEM_STEEL_INGOT,CONTENT_STEEL_FENCE);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
2015-08-13 07:21:50 -07:00
|
|
|
i = CONTENT_JUNGLE_FENCE;
|
|
|
|
f = &content_features(i);
|
|
|
|
f->description = wgettext("Jungle Wood Fence");
|
|
|
|
f->setAllTextures("fence_jungle.png");
|
|
|
|
f->setTexture(0,"fence_jungle_top.png");
|
|
|
|
f->setTexture(1,"fence_jungle_top.png");
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_SPECIAL;
|
|
|
|
f->draw_type = CDT_FENCELIKE;
|
|
|
|
f->is_ground_content = true;
|
|
|
|
f->jumpable = false;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->air_equivalent = true; // grass grows underneath
|
|
|
|
f->flammable = 1; // can be replaced by fire if the node under it is set on fire
|
|
|
|
f->fuel_time = 15;
|
|
|
|
f->special_alternate_node = CONTENT_JUNGLEWOOD;
|
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 0.75;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
|
|
|
f->suffocation_per_second = 0;
|
|
|
|
content_nodebox_fence_inv(f);
|
|
|
|
content_nodebox_fence(f);
|
|
|
|
f->setInventoryTextureNodeBox(i,"fence_jungle.png","fence_jungle_top.png","fence_jungle.png");
|
|
|
|
crafting::setWallRecipe(CONTENT_CRAFTITEM_JUNGLE_PLANK,CONTENT_JUNGLE_FENCE);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_PINE_FENCE;
|
|
|
|
f = &content_features(i);
|
|
|
|
f->description = wgettext("Pine Fence");
|
|
|
|
f->setAllTextures("fence_pine.png");
|
|
|
|
f->setTexture(0,"fence_pine_top.png");
|
|
|
|
f->setTexture(1,"fence_pine_top.png");
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_SPECIAL;
|
|
|
|
f->draw_type = CDT_FENCELIKE;
|
|
|
|
f->is_ground_content = true;
|
|
|
|
f->jumpable = false;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->air_equivalent = true; // grass grows underneath
|
|
|
|
f->flammable = 1; // can be replaced by fire if the node under it is set on fire
|
|
|
|
f->fuel_time = 15;
|
|
|
|
f->special_alternate_node = CONTENT_WOOD_PINE;
|
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 0.75;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
|
|
|
f->suffocation_per_second = 0;
|
|
|
|
content_nodebox_fence_inv(f);
|
|
|
|
content_nodebox_fence(f);
|
|
|
|
f->setInventoryTextureNodeBox(i,"fence_pine.png","fence_pine_top.png","fence_pine.png");
|
|
|
|
crafting::setWallRecipe(CONTENT_CRAFTITEM_PINE_PLANK,CONTENT_PINE_FENCE);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
2014-11-20 06:34:36 -08:00
|
|
|
i = CONTENT_STEEL_BARS;
|
|
|
|
f = &content_features(i);
|
|
|
|
f->description = wgettext("Steel Bars");
|
|
|
|
f->setAllTextures("steel_block.png");
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->air_equivalent = true; // grass grows underneath
|
|
|
|
f->special_alternate_node = CONTENT_STEEL;
|
|
|
|
f->type = CMT_STONE;
|
|
|
|
f->hardness = 0.75;
|
|
|
|
f->pressure_type = CST_SOLID;
|
|
|
|
f->suffocation_per_second = 0;
|
|
|
|
content_nodebox_bars(f);
|
|
|
|
f->setInventoryTextureNodeBox(i,"steel_block.png","steel_block.png","steel_block.png");
|
2014-12-23 08:04:28 -08:00
|
|
|
{
|
|
|
|
u16 r[9] = {
|
|
|
|
CONTENT_CRAFTITEM_STEEL_INGOT, CONTENT_IGNORE, CONTENT_CRAFTITEM_STEEL_INGOT,
|
|
|
|
CONTENT_CRAFTITEM_STEEL_INGOT, CONTENT_IGNORE, CONTENT_CRAFTITEM_STEEL_INGOT,
|
|
|
|
CONTENT_CRAFTITEM_STEEL_INGOT, CONTENT_IGNORE, CONTENT_CRAFTITEM_STEEL_INGOT
|
|
|
|
};
|
2014-12-23 08:26:00 -08:00
|
|
|
crafting::setRecipe(r,CONTENT_STEEL_BARS,6);
|
2014-12-23 08:04:28 -08:00
|
|
|
}
|
2014-11-20 06:34:36 -08:00
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
2014-09-19 09:36:05 -07:00
|
|
|
i = CONTENT_RAIL;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Rail");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("rail.png");
|
|
|
|
f->setTexture(0,"track_tie.png");
|
|
|
|
f->setTexture(1,"track_rail.png");
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->draw_type = CDT_RAILLIKE;
|
|
|
|
f->is_ground_content = true;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->air_equivalent = true; // grass grows underneath
|
|
|
|
f->type = CMT_DIRT;
|
|
|
|
f->hardness = 0.75;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
{
|
|
|
|
u16 r[9] = {
|
|
|
|
CONTENT_CRAFTITEM_STEEL_INGOT, CONTENT_CRAFTITEM_WOOD_PLANK, CONTENT_CRAFTITEM_STEEL_INGOT,
|
|
|
|
CONTENT_CRAFTITEM_STEEL_INGOT, CONTENT_IGNORE, CONTENT_CRAFTITEM_STEEL_INGOT,
|
|
|
|
CONTENT_CRAFTITEM_STEEL_INGOT, CONTENT_CRAFTITEM_WOOD_PLANK, CONTENT_CRAFTITEM_STEEL_INGOT
|
|
|
|
};
|
|
|
|
crafting::setRecipe(r,CONTENT_RAIL,15);
|
|
|
|
r[1] = CONTENT_CRAFTITEM_JUNGLE_PLANK;
|
|
|
|
r[7] = CONTENT_CRAFTITEM_JUNGLE_PLANK;
|
|
|
|
crafting::setRecipe(r,CONTENT_RAIL,15);
|
|
|
|
}
|
|
|
|
f->setNodeBox(core::aabbox3d<f32>(
|
|
|
|
-0.5*BS,-0.5*BS,-0.5*BS,0.5*BS,-0.375*BS,0.5*BS
|
|
|
|
));
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_ROOFTILE_TERRACOTTA;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Terracotta Roof Tile");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("rooftile_terracotta.png");
|
|
|
|
f->setAllTextureFlags(0);
|
|
|
|
f->draw_type = CDT_ROOFLIKE;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->type = CMT_DIRT;
|
|
|
|
f->hardness = 0.75;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
content_nodebox_roofcollide(f);
|
|
|
|
crafting::set1over4Recipe(CONTENT_TERRACOTTA,CONTENT_TERRACOTTA,CONTENT_ROOFTILE_TERRACOTTA);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_ROOFTILE_WOOD;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Wood Roof Tile");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("rooftile_wood.png");
|
|
|
|
f->setAllTextureFlags(0);
|
|
|
|
f->draw_type = CDT_ROOFLIKE;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
2015-02-27 03:44:07 -08:00
|
|
|
f->type = CMT_WOOD;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->hardness = 0.75;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
content_nodebox_roofcollide(f);
|
|
|
|
crafting::set1over4Recipe(CONTENT_WOOD,CONTENT_WOOD,CONTENT_ROOFTILE_WOOD);
|
|
|
|
crafting::set1over4Recipe(CONTENT_JUNGLEWOOD,CONTENT_JUNGLEWOOD,CONTENT_ROOFTILE_WOOD);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_ROOFTILE_ASPHALT;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Asphalt Roof Tile");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("rooftile_asphalt.png");
|
|
|
|
f->setAllTextureFlags(0);
|
|
|
|
f->draw_type = CDT_ROOFLIKE;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->type = CMT_DIRT;
|
|
|
|
f->hardness = 0.75;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
content_nodebox_roofcollide(f);
|
|
|
|
{
|
|
|
|
u16 r[9] = {
|
|
|
|
CONTENT_SAND, CONTENT_CRAFTITEM_PAPER, CONTENT_IGNORE,
|
|
|
|
CONTENT_CRAFTITEM_PAPER, CONTENT_CRAFTITEM_DYE_BLACK, CONTENT_IGNORE,
|
|
|
|
CONTENT_IGNORE, CONTENT_IGNORE, CONTENT_IGNORE,
|
|
|
|
};
|
|
|
|
crafting::setRecipe(r,CONTENT_ROOFTILE_ASPHALT,4);
|
|
|
|
}
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_ROOFTILE_STONE;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Stone Roof Tile");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("rooftile_stone.png");
|
|
|
|
f->setAllTextureFlags(0);
|
|
|
|
f->draw_type = CDT_ROOFLIKE;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->type = CMT_DIRT;
|
|
|
|
f->hardness = 0.75;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
content_nodebox_roofcollide(f);
|
|
|
|
crafting::set1over4Recipe(CONTENT_ROUGHSTONE,CONTENT_ROUGHSTONE,CONTENT_ROOFTILE_STONE);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_ROOFTILE_GLASS;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Glass Roof Tile");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("glass.png");
|
|
|
|
f->setTexture(1,"glass_slab.png"); // special texture for top sections
|
|
|
|
f->setAllTextureFlags(0);
|
|
|
|
#ifndef SERVER
|
|
|
|
f->setAllTextureTypes(MATERIAL_ALPHA_BLEND);
|
|
|
|
#endif
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->draw_type = CDT_ROOFLIKE;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
2014-11-18 10:28:31 -08:00
|
|
|
f->type = CMT_GLASS;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->hardness = 0.75;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
content_nodebox_roofcollide(f);
|
|
|
|
crafting::set1over4Recipe(CONTENT_GLASS,CONTENT_GLASS,CONTENT_ROOFTILE_GLASS);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_ROOFTILE_GLASS_BLUE;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Blue Glass Roof Tile");
|
2016-04-16 21:46:51 -07:00
|
|
|
f->setAllTextures("glass.png^glass_pane_blue_side.png");
|
|
|
|
f->setTexture(1,"glass_slab.png^glass_pane_blue_side.png"); // special texture for top sections
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextureFlags(0);
|
|
|
|
#ifndef SERVER
|
|
|
|
f->setAllTextureTypes(MATERIAL_ALPHA_BLEND);
|
|
|
|
#endif
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->draw_type = CDT_ROOFLIKE;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
2014-11-18 10:28:31 -08:00
|
|
|
f->type = CMT_GLASS;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->hardness = 0.75;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
content_nodebox_roofcollide(f);
|
|
|
|
crafting::set1over4Recipe(CONTENT_GLASS_BLUE,CONTENT_GLASS_BLUE,CONTENT_ROOFTILE_GLASS_BLUE);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_ROOFTILE_GLASS,CONTENT_CRAFTITEM_DYE_BLUE,CONTENT_ROOFTILE_GLASS_BLUE);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_ROOFTILE_GLASS_GREEN;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Green Glass Roof Tile");
|
2016-04-16 21:46:51 -07:00
|
|
|
f->setAllTextures("glass.png^glass_pane_green_side.png");
|
|
|
|
f->setTexture(1,"glass_slab.png^glass_pane_green_side.png"); // special texture for top sections
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextureFlags(0);
|
|
|
|
#ifndef SERVER
|
|
|
|
f->setAllTextureTypes(MATERIAL_ALPHA_BLEND);
|
|
|
|
#endif
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->draw_type = CDT_ROOFLIKE;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
2014-11-18 10:28:31 -08:00
|
|
|
f->type = CMT_GLASS;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->hardness = 0.75;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
content_nodebox_roofcollide(f);
|
|
|
|
crafting::set1over4Recipe(CONTENT_GLASS_GREEN,CONTENT_GLASS_GREEN,CONTENT_ROOFTILE_GLASS_GREEN);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_ROOFTILE_GLASS,CONTENT_CRAFTITEM_DYE_GREEN,CONTENT_ROOFTILE_GLASS_GREEN);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_ROOFTILE_GLASS_ORANGE;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Orange Glass Roof Tile");
|
2016-04-16 21:46:51 -07:00
|
|
|
f->setAllTextures("glass.png^glass_pane_orange_side.png");
|
|
|
|
f->setTexture(1,"glass_slab.png^glass_pane_orange_side.png"); // special texture for top sections
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextureFlags(0);
|
|
|
|
#ifndef SERVER
|
|
|
|
f->setAllTextureTypes(MATERIAL_ALPHA_BLEND);
|
|
|
|
#endif
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->draw_type = CDT_ROOFLIKE;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
2014-11-18 10:28:31 -08:00
|
|
|
f->type = CMT_GLASS;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->hardness = 0.75;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
content_nodebox_roofcollide(f);
|
|
|
|
crafting::set1over4Recipe(CONTENT_GLASS_ORANGE,CONTENT_GLASS_ORANGE,CONTENT_ROOFTILE_GLASS_ORANGE);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_ROOFTILE_GLASS,CONTENT_CRAFTITEM_DYE_ORANGE,CONTENT_ROOFTILE_GLASS_ORANGE);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_ROOFTILE_GLASS_PURPLE;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Purple Glass Roof Tile");
|
2016-04-16 21:46:51 -07:00
|
|
|
f->setAllTextures("glass.png^glass_pane_purple_side.png");
|
|
|
|
f->setTexture(1,"glass_slab.png^glass_pane_purple_side.png"); // special texture for top sections
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextureFlags(0);
|
|
|
|
#ifndef SERVER
|
|
|
|
f->setAllTextureTypes(MATERIAL_ALPHA_BLEND);
|
|
|
|
#endif
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->draw_type = CDT_ROOFLIKE;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
2014-11-18 10:28:31 -08:00
|
|
|
f->type = CMT_GLASS;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->hardness = 0.75;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
content_nodebox_roofcollide(f);
|
|
|
|
crafting::set1over4Recipe(CONTENT_GLASS_PURPLE,CONTENT_GLASS_PURPLE,CONTENT_ROOFTILE_GLASS_PURPLE);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_ROOFTILE_GLASS,CONTENT_CRAFTITEM_DYE_PURPLE,CONTENT_ROOFTILE_GLASS_PURPLE);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_ROOFTILE_GLASS_RED;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Red Glass Roof Tile");
|
2016-04-16 21:46:51 -07:00
|
|
|
f->setAllTextures("glass.png^glass_pane_red_side.png");
|
|
|
|
f->setTexture(1,"glass_slab.png^glass_pane_red_side.png"); // special texture for top sections
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextureFlags(0);
|
|
|
|
#ifndef SERVER
|
|
|
|
f->setAllTextureTypes(MATERIAL_ALPHA_BLEND);
|
|
|
|
#endif
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->draw_type = CDT_ROOFLIKE;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
2014-11-18 10:28:31 -08:00
|
|
|
f->type = CMT_GLASS;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->hardness = 0.75;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
content_nodebox_roofcollide(f);
|
|
|
|
crafting::set1over4Recipe(CONTENT_GLASS_RED,CONTENT_GLASS_RED,CONTENT_ROOFTILE_GLASS_RED);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_ROOFTILE_GLASS,CONTENT_CRAFTITEM_DYE_RED,CONTENT_ROOFTILE_GLASS_RED);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_ROOFTILE_GLASS_YELLOW;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Yellow Glass Roof Tile");
|
2016-04-16 21:46:51 -07:00
|
|
|
f->setAllTextures("glass.png^glass_pane_yellow_side.png");
|
|
|
|
f->setTexture(1,"glass_slab.png^glass_pane_yellow_side.png"); // special texture for top sections
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextureFlags(0);
|
|
|
|
#ifndef SERVER
|
|
|
|
f->setAllTextureTypes(MATERIAL_ALPHA_BLEND);
|
|
|
|
#endif
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->draw_type = CDT_ROOFLIKE;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
2014-11-18 10:28:31 -08:00
|
|
|
f->type = CMT_GLASS;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->hardness = 0.75;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
content_nodebox_roofcollide(f);
|
|
|
|
crafting::set1over4Recipe(CONTENT_GLASS_YELLOW,CONTENT_GLASS_YELLOW,CONTENT_ROOFTILE_GLASS_YELLOW);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_ROOFTILE_GLASS,CONTENT_CRAFTITEM_DYE_YELLOW,CONTENT_ROOFTILE_GLASS_YELLOW);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_ROOFTILE_GLASS_BLACK;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Black Glass Roof Tile");
|
2016-04-16 21:46:51 -07:00
|
|
|
f->setAllTextures("glass.png^glass_pane_black_side.png");
|
|
|
|
f->setTexture(1,"glass_slab.png^glass_pane_black_side.png"); // special texture for top sections
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextureFlags(0);
|
|
|
|
#ifndef SERVER
|
|
|
|
f->setAllTextureTypes(MATERIAL_ALPHA_BLEND);
|
|
|
|
#endif
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->draw_type = CDT_ROOFLIKE;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
2014-11-18 10:28:31 -08:00
|
|
|
f->type = CMT_GLASS;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->hardness = 0.75;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
content_nodebox_roofcollide(f);
|
|
|
|
crafting::set1over4Recipe(CONTENT_GLASS_BLACK,CONTENT_GLASS_BLACK,CONTENT_ROOFTILE_GLASS_BLACK);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_ROOFTILE_GLASS,CONTENT_CRAFTITEM_DYE_BLACK,CONTENT_ROOFTILE_GLASS_BLACK);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_ROOFTILE_THATCH;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Thatch Roof Tile");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("rooftile_thatch.png");
|
|
|
|
f->setAllTextureFlags(0);
|
|
|
|
f->draw_type = CDT_ROOFLIKE;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->type = CMT_DIRT;
|
|
|
|
f->hardness = 0.75;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
content_nodebox_roofcollide(f);
|
|
|
|
crafting::set1over4Recipe(CONTENT_DEADGRASS,CONTENT_DEADGRASS,CONTENT_ROOFTILE_THATCH);
|
|
|
|
crafting::set1over4Recipe(CONTENT_WILDGRASS_SHORT,CONTENT_WILDGRASS_SHORT,CONTENT_ROOFTILE_THATCH);
|
|
|
|
crafting::set1over4Recipe(CONTENT_JUNGLEGRASS,CONTENT_JUNGLEGRASS,CONTENT_ROOFTILE_THATCH);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_LADDER_WALL;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Ladder");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("ladder.png");
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_WALLMOUNT;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->is_ground_content = true;
|
|
|
|
f->dug_item = std::string("MaterialItem ")+itos(i)+" 1";
|
|
|
|
f->floormount_alternate_node = CONTENT_LADDER_FLOOR;
|
|
|
|
f->roofmount_alternate_node = CONTENT_LADDER_ROOF;
|
|
|
|
f->rotate_tile_with_nodebox = true;
|
|
|
|
f->climbable = true;
|
|
|
|
f->air_equivalent = true;
|
|
|
|
f->flammable = 1; // can be replaced by fire if the node under it is set on fire
|
|
|
|
f->fuel_time = 30/16;
|
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 0.5;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setNodeBox(core::aabbox3d<f32>(
|
|
|
|
-0.4375*BS,-0.5*BS,0.3125*BS,-0.3125*BS,0.5*BS,0.5*BS
|
|
|
|
));
|
|
|
|
f->addNodeBox(core::aabbox3d<f32>(
|
|
|
|
0.3125*BS,-0.5*BS,0.3125*BS,0.4375*BS,0.5*BS,0.5*BS
|
|
|
|
));
|
|
|
|
f->addNodeBox(core::aabbox3d<f32>(
|
|
|
|
-0.3125*BS,-0.25*BS,0.375*BS,0.3125*BS,-0.1875*BS,0.4375*BS
|
|
|
|
));
|
|
|
|
f->addNodeBox(core::aabbox3d<f32>(
|
|
|
|
-0.3125*BS,0.25*BS,0.375*BS,0.3125*BS,0.3125*BS,0.4375*BS
|
|
|
|
));
|
|
|
|
f->setInventoryTextureNodeBox(i,"ladder.png","ladder.png","ladder.png");
|
|
|
|
{
|
|
|
|
u16 r[9] = {
|
|
|
|
CONTENT_CRAFTITEM_PINE_PLANK, CONTENT_CRAFTITEM_STICK, CONTENT_CRAFTITEM_PINE_PLANK,
|
|
|
|
CONTENT_CRAFTITEM_PINE_PLANK, CONTENT_CRAFTITEM_STICK, CONTENT_CRAFTITEM_PINE_PLANK,
|
|
|
|
CONTENT_CRAFTITEM_PINE_PLANK, CONTENT_CRAFTITEM_STICK, CONTENT_CRAFTITEM_PINE_PLANK
|
|
|
|
};
|
|
|
|
crafting::setRecipe(r,CONTENT_LADDER_WALL,4);
|
|
|
|
r[0] = CONTENT_CRAFTITEM_WOOD_PLANK;
|
|
|
|
r[2] = CONTENT_CRAFTITEM_WOOD_PLANK;
|
|
|
|
r[3] = CONTENT_CRAFTITEM_WOOD_PLANK;
|
|
|
|
r[5] = CONTENT_CRAFTITEM_WOOD_PLANK;
|
|
|
|
r[6] = CONTENT_CRAFTITEM_WOOD_PLANK;
|
|
|
|
r[8] = CONTENT_CRAFTITEM_WOOD_PLANK;
|
|
|
|
crafting::setRecipe(r,CONTENT_LADDER_WALL,4);
|
|
|
|
r[0] = CONTENT_CRAFTITEM_JUNGLE_PLANK;
|
|
|
|
r[2] = CONTENT_CRAFTITEM_JUNGLE_PLANK;
|
|
|
|
r[3] = CONTENT_CRAFTITEM_JUNGLE_PLANK;
|
|
|
|
r[5] = CONTENT_CRAFTITEM_JUNGLE_PLANK;
|
|
|
|
r[6] = CONTENT_CRAFTITEM_JUNGLE_PLANK;
|
|
|
|
r[8] = CONTENT_CRAFTITEM_JUNGLE_PLANK;
|
|
|
|
crafting::setRecipe(r,CONTENT_LADDER_WALL,4);
|
|
|
|
}
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_LADDER_FLOOR;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Ladder");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("ladder.png");
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->is_ground_content = true;
|
|
|
|
f->dug_item = std::string("MaterialItem ")+itos(CONTENT_LADDER_WALL)+" 1";
|
|
|
|
f->wallmount_alternate_node = CONTENT_LADDER_WALL;
|
|
|
|
f->roofmount_alternate_node = CONTENT_LADDER_ROOF;
|
|
|
|
f->rotate_tile_with_nodebox = true;
|
|
|
|
f->climbable = true;
|
|
|
|
f->air_equivalent = true;
|
|
|
|
f->flammable = 1; // can be replaced by fire if the node under it is set on fire
|
|
|
|
f->fuel_time = 30/16;
|
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 0.5;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setNodeBox(core::aabbox3d<f32>(
|
|
|
|
-0.4375*BS,-0.5*BS,-0.5*BS,-0.3125*BS,-0.3125*BS,0.5*BS
|
|
|
|
));
|
|
|
|
f->addNodeBox(core::aabbox3d<f32>(
|
|
|
|
0.3125*BS,-0.5*BS,-0.5*BS,0.4375*BS,-0.3125*BS,0.5*BS
|
|
|
|
));
|
|
|
|
f->addNodeBox(core::aabbox3d<f32>(
|
|
|
|
-0.3125*BS,-0.4375*BS,-0.3125*BS,0.3125*BS,-0.375*BS,-0.25*BS
|
|
|
|
));
|
|
|
|
f->addNodeBox(core::aabbox3d<f32>(
|
|
|
|
-0.3125*BS,-0.4375*BS,0.1875*BS,0.3125*BS,-0.375*BS,0.25*BS
|
|
|
|
));
|
|
|
|
|
|
|
|
i = CONTENT_LADDER_ROOF;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Ladder");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("ladder.png");
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->is_ground_content = true;
|
|
|
|
f->dug_item = std::string("MaterialItem ")+itos(CONTENT_LADDER_WALL)+" 1";
|
|
|
|
f->floormount_alternate_node = CONTENT_LADDER_FLOOR;
|
|
|
|
f->wallmount_alternate_node = CONTENT_LADDER_WALL;
|
|
|
|
f->rotate_tile_with_nodebox = true;
|
|
|
|
f->climbable = true;
|
|
|
|
f->air_equivalent = true;
|
|
|
|
f->flammable = 1; // can be replaced by fire if the node under it is set on fire
|
|
|
|
f->fuel_time = 30/16;
|
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 0.5;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setNodeBox(core::aabbox3d<f32>(
|
|
|
|
-0.4375*BS,0.3125*BS,-0.5*BS,-0.3125*BS,0.5*BS,0.5*BS
|
|
|
|
));
|
|
|
|
f->addNodeBox(core::aabbox3d<f32>(
|
|
|
|
0.3125*BS,0.3125*BS,-0.5*BS,0.4375*BS,0.5*BS,0.5*BS
|
|
|
|
));
|
|
|
|
f->addNodeBox(core::aabbox3d<f32>(
|
|
|
|
-0.3125*BS,0.375*BS,-0.3125*BS,0.3125*BS,0.4375*BS,-0.25*BS
|
|
|
|
));
|
|
|
|
f->addNodeBox(core::aabbox3d<f32>(
|
|
|
|
-0.3125*BS,0.375*BS,0.1875*BS,0.3125*BS,0.4375*BS,0.25*BS
|
|
|
|
));
|
|
|
|
|
|
|
|
i = CONTENT_BORDERSTONE;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Border Stone");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("borderstone.png");
|
|
|
|
f->setInventoryTextureCube("borderstone.png", "borderstone.png", "borderstone.png");
|
|
|
|
f->draw_type = CDT_CUBELIKE;
|
|
|
|
f->is_ground_content = true;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new BorderStoneNodeMetadata();
|
|
|
|
f->type = CMT_STONE;
|
|
|
|
f->hardness = 2.0;
|
|
|
|
f->pressure_type = CST_SOLID;
|
2015-07-30 00:37:52 -07:00
|
|
|
crafting::setFilledRoundRecipe(CONTENT_STONE,CONTENT_CRAFTITEM_MITHRIL_RAW,CONTENT_BORDERSTONE);
|
|
|
|
crafting::setFilledRoundRecipe(CONTENT_STONE,CONTENT_CRAFTITEM_MITHRIL_UNBOUND,CONTENT_BORDERSTONE);
|
2014-09-19 09:36:05 -07:00
|
|
|
{
|
|
|
|
u16 r[9] = {
|
|
|
|
CONTENT_CRAFTITEM_STEEL_INGOT, CONTENT_STONE, CONTENT_CRAFTITEM_STEEL_INGOT,
|
|
|
|
CONTENT_STONE, CONTENT_CRAFTITEM_STEEL_INGOT, CONTENT_STONE,
|
|
|
|
CONTENT_CRAFTITEM_STEEL_INGOT, CONTENT_STONE, CONTENT_CRAFTITEM_STEEL_INGOT
|
|
|
|
};
|
|
|
|
crafting::setRecipe(r,CONTENT_BORDERSTONE,1);
|
|
|
|
}
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("player-creative",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_BOOK;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Book");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setTexture(0, "book_cover.png");
|
|
|
|
f->setTexture(1, "book_cover.png^[transformFX");
|
|
|
|
f->setTexture(2, "book_side.png^[transformFY");
|
|
|
|
f->setTexture(3, "book_side.png");
|
|
|
|
f->setTexture(4, "book_end.png");
|
|
|
|
f->setTexture(5, "book_end.png^[transformFX");
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->rotate_tile_with_nodebox = true;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->air_equivalent = true;
|
|
|
|
f->onpunch_replace_node = CONTENT_BOOK_OPEN;
|
|
|
|
f->flammable = 1;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
content_nodebox_book(f);
|
2015-03-19 23:25:18 -07:00
|
|
|
f->setFaceText(0,FaceText(0.45,0.3,0.9875,0.7375));
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setInventoryTextureNodeBox(i, "book_cover.png", "book_end.png^[transformFX", "book_side.png^[transformFY");
|
|
|
|
f->type = CMT_DIRT;
|
|
|
|
f->hardness = 1.0;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
crafting::setCol1Recipe(CONTENT_CRAFTITEM_PAPER,i);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
if (f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new ClosedBookNodeMetadata();
|
|
|
|
|
|
|
|
i = CONTENT_COOK_BOOK;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Cook Book");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setTexture(0, "book_cook_cover.png");
|
|
|
|
f->setTexture(1, "book_cook_cover.png^[transformFX");
|
|
|
|
f->setTexture(2, "book_cook_side.png^[transformFY");
|
|
|
|
f->setTexture(3, "book_cook_side.png");
|
|
|
|
f->setTexture(4, "book_cook_end.png");
|
|
|
|
f->setTexture(5, "book_cook_end.png^[transformFX");
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->rotate_tile_with_nodebox = true;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->air_equivalent = true;
|
|
|
|
f->onpunch_replace_node = CONTENT_COOK_BOOK_OPEN;
|
|
|
|
f->flammable = 1;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
content_nodebox_book(f);
|
|
|
|
f->setInventoryTextureNodeBox(i, "book_cook_cover.png", "book_cook_end.png^[transformFX", "book_cook_side.png^[transformFY");
|
|
|
|
f->type = CMT_DIRT;
|
|
|
|
f->hardness = 1.0;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
crafting::set1Any2Recipe(CONTENT_BOOK,CONTENT_CRAFTITEM_COAL,i);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_BOOK,CONTENT_CRAFTITEM_CHARCOAL,i);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
if (f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new ClosedBookNodeMetadata();
|
|
|
|
|
|
|
|
i = CONTENT_DECRAFT_BOOK;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Decraft Book");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setTexture(0, "book_decraft_cover.png");
|
|
|
|
f->setTexture(1, "book_decraft_cover.png^[transformFX");
|
|
|
|
f->setTexture(2, "book_decraft_side.png^[transformFY");
|
|
|
|
f->setTexture(3, "book_decraft_side.png");
|
|
|
|
f->setTexture(4, "book_decraft_end.png");
|
|
|
|
f->setTexture(5, "book_decraft_end.png^[transformFX");
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->rotate_tile_with_nodebox = true;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->air_equivalent = true;
|
|
|
|
f->onpunch_replace_node = CONTENT_DECRAFT_BOOK_OPEN;
|
|
|
|
f->flammable = 1;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
content_nodebox_book(f);
|
|
|
|
f->setInventoryTextureNodeBox(i, "book_decraft_cover.png", "book_decraft_end.png^[transformFX", "book_decraft_side.png^[transformFY");
|
|
|
|
f->type = CMT_DIRT;
|
|
|
|
f->hardness = 1.0;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
crafting::set1Any2Recipe(CONTENT_BOOK,CONTENT_CRAFTITEM_GUNPOWDER,i);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
if (f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new ClosedBookNodeMetadata();
|
|
|
|
|
|
|
|
i = CONTENT_DIARY_BOOK;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Diary");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setTexture(0, "book_diary_cover.png");
|
|
|
|
f->setTexture(1, "book_diary_cover.png^[transformFX");
|
|
|
|
f->setTexture(2, "book_diary_side.png^[transformFY");
|
|
|
|
f->setTexture(3, "book_diary_side.png");
|
|
|
|
f->setTexture(4, "book_diary_end.png");
|
|
|
|
f->setTexture(5, "book_diary_end.png^[transformFX");
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->rotate_tile_with_nodebox = true;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->air_equivalent = true;
|
|
|
|
f->onpunch_replace_node = CONTENT_DIARY_BOOK_OPEN;
|
|
|
|
f->flammable = 1;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
content_nodebox_book(f);
|
2015-03-19 23:25:18 -07:00
|
|
|
f->setFaceText(0,FaceText(0.45,0.3,0.9875,0.7375));
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setInventoryTextureNodeBox(i, "book_diary_cover.png", "book_diary_end.png^[transformFX", "book_diary_side.png^[transformFY");
|
|
|
|
f->type = CMT_DIRT;
|
|
|
|
f->hardness = 1.0;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
crafting::set1Any2Recipe(CONTENT_BOOK,CONTENT_CRAFTITEM_STEEL_INGOT,i);
|
|
|
|
if (f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new ClosedBookNodeMetadata();
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_CRAFT_BOOK;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Craft Book");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setTexture(0, "book_craft_cover.png");
|
|
|
|
f->setTexture(1, "book_craft_cover.png^[transformFX");
|
|
|
|
f->setTexture(2, "book_craft_side.png^[transformFY");
|
|
|
|
f->setTexture(3, "book_craft_side.png");
|
|
|
|
f->setTexture(4, "book_craft_end.png");
|
|
|
|
f->setTexture(5, "book_craft_end.png^[transformFX");
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->rotate_tile_with_nodebox = true;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->air_equivalent = true;
|
|
|
|
f->onpunch_replace_node = CONTENT_CRAFT_BOOK_OPEN;
|
|
|
|
f->flammable = 1;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
content_nodebox_book(f);
|
|
|
|
f->setInventoryTextureNodeBox(i, "book_craft_cover.png", "book_craft_end.png^[transformFX", "book_craft_side.png^[transformFY");
|
|
|
|
f->type = CMT_DIRT;
|
|
|
|
f->hardness = 1.0;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2015-07-30 00:37:52 -07:00
|
|
|
crafting::set1Any2Recipe(CONTENT_BOOK,CONTENT_CRAFTITEM_MITHRIL_RAW,i);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_BOOK,CONTENT_CRAFTITEM_MITHRIL_UNBOUND,i);
|
2014-09-19 09:36:05 -07:00
|
|
|
{
|
|
|
|
content_t r[9] = {
|
|
|
|
CONTENT_CRAFTITEM_STICK, CONTENT_CRAFTITEM_STICK, CONTENT_IGNORE,
|
|
|
|
CONTENT_IGNORE, CONTENT_CRAFTITEM_STICK, CONTENT_IGNORE,
|
|
|
|
CONTENT_CRAFTITEM_STICK, CONTENT_IGNORE, CONTENT_IGNORE
|
|
|
|
};
|
|
|
|
crafting::setRecipe(r,CONTENT_CRAFT_BOOK,1);
|
|
|
|
}
|
|
|
|
if (f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new ClosedBookNodeMetadata();
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
2015-06-28 15:53:31 -07:00
|
|
|
i = CONTENT_RCRAFT_BOOK;
|
|
|
|
f = &content_features(i);
|
|
|
|
f->description = wgettext("Reverse Craft Book");
|
|
|
|
f->setTexture(0, "book_rcraft_cover.png");
|
|
|
|
f->setTexture(1, "book_rcraft_cover.png^[transformFX");
|
|
|
|
f->setTexture(2, "book_rcraft_side.png^[transformFY");
|
|
|
|
f->setTexture(3, "book_rcraft_side.png");
|
|
|
|
f->setTexture(4, "book_rcraft_end.png");
|
|
|
|
f->setTexture(5, "book_rcraft_end.png^[transformFX");
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->rotate_tile_with_nodebox = true;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->air_equivalent = true;
|
|
|
|
f->onpunch_replace_node = CONTENT_RCRAFT_BOOK_OPEN;
|
|
|
|
f->flammable = 1;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
content_nodebox_book(f);
|
|
|
|
f->setInventoryTextureNodeBox(i, "book_rcraft_cover.png", "book_rcraft_end.png^[transformFX", "book_rcraft_side.png^[transformFY");
|
|
|
|
f->type = CMT_DIRT;
|
|
|
|
f->hardness = 1.0;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
|
|
|
f->suffocation_per_second = 0;
|
|
|
|
{
|
|
|
|
content_t r[9] = {
|
|
|
|
CONTENT_CRAFTITEM_STICK, CONTENT_IGNORE, CONTENT_IGNORE,
|
|
|
|
CONTENT_IGNORE, CONTENT_CRAFTITEM_STICK, CONTENT_IGNORE,
|
|
|
|
CONTENT_CRAFTITEM_STICK, CONTENT_CRAFTITEM_STICK, CONTENT_IGNORE
|
|
|
|
};
|
|
|
|
crafting::setRecipe(r,CONTENT_RCRAFT_BOOK,1);
|
|
|
|
}
|
|
|
|
if (f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new ClosedBookNodeMetadata();
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
2014-09-19 09:36:05 -07:00
|
|
|
i = CONTENT_BOOK_OPEN;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Guide");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("guide_side.png");
|
|
|
|
f->setTexture(0, "guide_top.png");
|
|
|
|
f->setTexture(1, "guide_bottom.png");
|
|
|
|
f->setTexture(4, "guide_end.png");
|
|
|
|
f->setTexture(5, "guide_end.png");
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->rotate_tile_with_nodebox = true;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->air_equivalent = true;
|
|
|
|
f->onpunch_replace_node = CONTENT_BOOK;
|
|
|
|
f->flammable = 1;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(CONTENT_BOOK)+" 1";
|
|
|
|
content_nodebox_guide(f);
|
2015-03-19 23:25:18 -07:00
|
|
|
f->setFaceText(0,FaceText(0.15,0.35,0.85,0.85,FTT_BOOKCONTENT));
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setInventoryTextureNodeBox(i, "guide_top.png", "guide_end.png", "guide_side.png");
|
|
|
|
f->type = CMT_DIRT;
|
|
|
|
f->hardness = 1.0;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
if (f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new BookNodeMetadata();
|
2015-03-02 00:04:59 -08:00
|
|
|
f->sound_access = "open-book";
|
2014-09-19 09:36:05 -07:00
|
|
|
|
|
|
|
i = CONTENT_COOK_BOOK_OPEN;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Cooking Guide");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("guide_cook_side.png");
|
|
|
|
f->setTexture(0, "guide_cook_top.png");
|
|
|
|
f->setTexture(1, "guide_cook_bottom.png");
|
|
|
|
f->setTexture(4, "guide_cook_end.png");
|
|
|
|
f->setTexture(5, "guide_cook_end.png");
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->rotate_tile_with_nodebox = true;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->air_equivalent = true;
|
|
|
|
f->onpunch_replace_node = CONTENT_COOK_BOOK;
|
|
|
|
f->flammable = 1;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(CONTENT_COOK_BOOK)+" 1";
|
|
|
|
content_nodebox_guide(f);
|
|
|
|
f->setInventoryTextureNodeBox(i, "guide_cook_top.png", "guide_cook_end.png", "guide_cook_side.png");
|
|
|
|
f->type = CMT_DIRT;
|
|
|
|
f->hardness = 1.0;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
if (f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new CookBookNodeMetadata();
|
2015-03-02 00:04:59 -08:00
|
|
|
f->sound_access = "open-book";
|
2014-09-19 09:36:05 -07:00
|
|
|
|
|
|
|
i = CONTENT_DECRAFT_BOOK_OPEN;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Decrafting Guide");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("guide_decraft_side.png");
|
|
|
|
f->setTexture(0, "guide_decraft_top.png");
|
|
|
|
f->setTexture(1, "guide_decraft_bottom.png");
|
|
|
|
f->setTexture(4, "guide_decraft_end.png");
|
|
|
|
f->setTexture(5, "guide_decraft_end.png");
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->rotate_tile_with_nodebox = true;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->air_equivalent = true;
|
|
|
|
f->onpunch_replace_node = CONTENT_DECRAFT_BOOK;
|
|
|
|
f->flammable = 1;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(CONTENT_DECRAFT_BOOK)+" 1";
|
|
|
|
content_nodebox_guide(f);
|
|
|
|
f->setInventoryTextureNodeBox(i, "guide_decraft_top.png", "guide_decraft_end.png", "guide_decraft_side.png");
|
|
|
|
f->type = CMT_DIRT;
|
|
|
|
f->hardness = 1.0;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
if (f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new DeCraftNodeMetadata();
|
2015-03-02 00:04:59 -08:00
|
|
|
f->sound_access = "open-book";
|
2014-09-19 09:36:05 -07:00
|
|
|
|
|
|
|
i = CONTENT_DIARY_BOOK_OPEN;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Diary");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("guide_diary_side.png");
|
|
|
|
f->setTexture(0, "guide_diary_top.png");
|
|
|
|
f->setTexture(1, "guide_diary_bottom.png");
|
|
|
|
f->setTexture(4, "guide_diary_end.png");
|
|
|
|
f->setTexture(5, "guide_diary_end.png");
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->rotate_tile_with_nodebox = true;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->air_equivalent = true;
|
|
|
|
f->onpunch_replace_node = CONTENT_DIARY_BOOK;
|
|
|
|
f->flammable = 1;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(CONTENT_DIARY_BOOK)+" 1";
|
|
|
|
content_nodebox_guide(f);
|
2015-03-19 23:25:18 -07:00
|
|
|
f->setFaceText(0,FaceText(0.15,0.35,0.85,0.85,FTT_BOOKCONTENT));
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setInventoryTextureNodeBox(i, "guide_diary_top.png", "guide_diary_end.png", "guide_diary_side.png");
|
|
|
|
f->type = CMT_DIRT;
|
|
|
|
f->hardness = 1.0;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
if (f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new DiaryNodeMetadata();
|
2015-03-02 00:04:59 -08:00
|
|
|
f->sound_access = "open-book";
|
2014-09-19 09:36:05 -07:00
|
|
|
|
|
|
|
i = CONTENT_CRAFT_BOOK_OPEN;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Craft Guide");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("guide_craft_side.png");
|
|
|
|
f->setTexture(0, "guide_craft_top.png");
|
|
|
|
f->setTexture(1, "guide_craft_bottom.png");
|
|
|
|
f->setTexture(4, "guide_craft_end.png");
|
|
|
|
f->setTexture(5, "guide_craft_end.png");
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->rotate_tile_with_nodebox = true;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->air_equivalent = true;
|
|
|
|
f->onpunch_replace_node = CONTENT_CRAFT_BOOK;
|
|
|
|
f->flammable = 1;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(CONTENT_CRAFT_BOOK)+" 1";
|
|
|
|
content_nodebox_guide(f);
|
|
|
|
f->setInventoryTextureNodeBox(i, "guide_craft_top.png", "guide_craft_end.png", "guide_craft_side.png");
|
|
|
|
f->type = CMT_DIRT;
|
|
|
|
f->hardness = 1.0;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
if (f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new CraftGuideNodeMetadata();
|
2015-03-02 00:04:59 -08:00
|
|
|
f->sound_access = "open-book";
|
2014-09-19 09:36:05 -07:00
|
|
|
|
2015-06-28 15:53:31 -07:00
|
|
|
i = CONTENT_RCRAFT_BOOK_OPEN;
|
|
|
|
f = &content_features(i);
|
|
|
|
f->description = wgettext("Reverse Craft Guide");
|
|
|
|
f->setAllTextures("guide_rcraft_side.png");
|
|
|
|
f->setTexture(0, "guide_rcraft_top.png");
|
|
|
|
f->setTexture(1, "guide_rcraft_bottom.png");
|
|
|
|
f->setTexture(4, "guide_rcraft_end.png");
|
|
|
|
f->setTexture(5, "guide_rcraft_end.png");
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->rotate_tile_with_nodebox = true;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->air_equivalent = true;
|
|
|
|
f->onpunch_replace_node = CONTENT_RCRAFT_BOOK;
|
|
|
|
f->flammable = 1;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(CONTENT_RCRAFT_BOOK)+" 1";
|
|
|
|
content_nodebox_guide(f);
|
|
|
|
f->setInventoryTextureNodeBox(i, "guide_rcraft_top.png", "guide_rcraft_end.png", "guide_rcraft_side.png");
|
|
|
|
f->type = CMT_DIRT;
|
|
|
|
f->hardness = 1.0;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
|
|
|
f->suffocation_per_second = 0;
|
|
|
|
if (f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new ReverseCraftGuideNodeMetadata();
|
|
|
|
f->sound_access = "open-book";
|
|
|
|
|
2014-09-19 09:36:05 -07:00
|
|
|
i = CONTENT_FIRE;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Fire");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("fire.png");
|
|
|
|
f->setAllTextureFlags(0);
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->draw_type = CDT_FIRELIKE;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->light_source = LIGHT_MAX-1;
|
|
|
|
f->walkable = false;
|
|
|
|
f->pointable = false;
|
|
|
|
f->diggable = false;
|
|
|
|
f->buildable_to = true;
|
2016-01-17 22:58:21 -08:00
|
|
|
f->damage_per_second = 40;
|
2015-04-11 01:19:43 -07:00
|
|
|
f->sound_ambient = "env-fire";
|
2014-09-19 09:36:05 -07:00
|
|
|
#ifndef SERVER
|
|
|
|
f->post_effect_color = video::SColor(192, 255, 64, 0);
|
|
|
|
#endif
|
|
|
|
f->pressure_type = CST_CRUSHED;
|
|
|
|
|
|
|
|
i = CONTENT_FIRE_SHORTTERM;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Fire");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("fire.png");
|
|
|
|
f->setAllTextureFlags(0);
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->draw_type = CDT_FIRELIKE;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->light_source = LIGHT_MAX-1;
|
|
|
|
f->walkable = false;
|
|
|
|
f->pointable = false;
|
|
|
|
f->diggable = false;
|
|
|
|
f->buildable_to = true;
|
2016-01-17 22:58:21 -08:00
|
|
|
f->damage_per_second = 40;
|
2014-09-19 09:36:05 -07:00
|
|
|
#ifndef SERVER
|
|
|
|
f->post_effect_color = video::SColor(192, 255, 64, 0);
|
|
|
|
#endif
|
|
|
|
f->pressure_type = CST_CRUSHED;
|
|
|
|
|
|
|
|
i = CONTENT_TORCH;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Torch");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("torch.png");
|
|
|
|
f->setInventoryTexture("torch_inventory.png");
|
|
|
|
f->setAllTextureFlags(0);
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_WALLMOUNT;
|
|
|
|
f->draw_type = CDT_TORCHLIKE;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->sunlight_propagates = true;
|
|
|
|
f->walkable = false;
|
|
|
|
f->air_equivalent = true;
|
|
|
|
f->flammable = 1; // can be replaced by fire if the node under it is set on fire
|
|
|
|
f->fuel_time = 0.5;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->light_source = LIGHT_MAX-1;
|
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 0.0;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
crafting::set1over4Recipe(CONTENT_CRAFTITEM_COAL,CONTENT_CRAFTITEM_STICK,CONTENT_TORCH);
|
|
|
|
crafting::set1over4Recipe(CONTENT_CRAFTITEM_CHARCOAL,CONTENT_CRAFTITEM_STICK,CONTENT_TORCH);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("player-creative",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_SIGN_WALL;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Sign");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("sign_wall.png");
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_WALLMOUNT;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->sunlight_propagates = true;
|
|
|
|
f->floormount_alternate_node = CONTENT_SIGN;
|
|
|
|
f->roofmount_alternate_node = CONTENT_SIGN_UD;
|
|
|
|
f->walkable = false;
|
|
|
|
f->air_equivalent = true;
|
|
|
|
f->flammable = 1; // can be replaced by fire if the node under it is set on fire
|
|
|
|
f->fuel_time = 1;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(CONTENT_SIGN)+" 1";
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new SignNodeMetadata("Some sign");
|
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 0.1;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2015-06-03 12:39:19 -07:00
|
|
|
f->alternate_lockstate_node = CONTENT_LOCKABLE_SIGN_WALL;
|
2014-09-19 09:36:05 -07:00
|
|
|
content_nodebox_sign_wall(f);
|
2015-01-22 06:11:59 -08:00
|
|
|
f->setFaceText(5,FaceText(0.05,0.3,0.95,0.7));
|
2014-09-19 09:36:05 -07:00
|
|
|
|
|
|
|
i = CONTENT_SIGN;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Sign");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("sign.png");
|
|
|
|
f->setTexture(4, "sign_back.png");
|
|
|
|
f->setTexture(5, "sign_front.png"); // Z-
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->sunlight_propagates = true;
|
2014-09-22 07:07:51 -07:00
|
|
|
f->air_equivalent = true;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->wallmount_alternate_node = CONTENT_SIGN_WALL;
|
|
|
|
f->roofmount_alternate_node = CONTENT_SIGN_UD;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->flammable = 1; // can be replaced by fire if the node under it is set on fire
|
|
|
|
f->fuel_time = 1;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new SignNodeMetadata("Some sign");
|
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 0.1;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2015-06-03 12:39:19 -07:00
|
|
|
f->alternate_lockstate_node = CONTENT_LOCKABLE_SIGN;
|
2014-09-19 09:36:05 -07:00
|
|
|
content_nodebox_sign(f);
|
2015-01-22 06:11:59 -08:00
|
|
|
f->setFaceText(5,FaceText(0.05,0.0675,0.95,0.55));
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setInventoryTextureNodeBox(i,"sign.png", "sign_front.png", "sign.png");
|
|
|
|
crafting::setSignRecipe(CONTENT_CRAFTITEM_WOOD_PLANK,CONTENT_SIGN);
|
|
|
|
crafting::setSignRecipe(CONTENT_CRAFTITEM_PINE_PLANK,CONTENT_SIGN);
|
|
|
|
crafting::setSignRecipe(CONTENT_CRAFTITEM_JUNGLE_PLANK,CONTENT_SIGN);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_SIGN_UD;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Sign");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("sign.png");
|
|
|
|
f->setTexture(4, "sign_back_ud.png");
|
|
|
|
f->setTexture(5, "sign_front_ud.png"); // Z-
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->sunlight_propagates = true;
|
2014-09-22 07:07:51 -07:00
|
|
|
f->air_equivalent = true;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->wallmount_alternate_node = CONTENT_SIGN_WALL;
|
|
|
|
f->floormount_alternate_node = CONTENT_SIGN;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->flammable = 1; // can be replaced by fire if the node under it is set on fire
|
|
|
|
f->fuel_time = 1;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(CONTENT_SIGN)+" 1";
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new SignNodeMetadata("Some sign");
|
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 0.1;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2015-06-03 12:39:19 -07:00
|
|
|
f->alternate_lockstate_node = CONTENT_LOCKABLE_SIGN_UD;
|
2014-09-19 09:36:05 -07:00
|
|
|
content_nodebox_sign_ud(f);
|
2015-01-22 06:11:59 -08:00
|
|
|
f->setFaceText(5,FaceText(0.05,0.45,0.95,0.8875));
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setInventoryTextureNodeBox(i,"sign.png", "sign_front.png", "sign.png");
|
|
|
|
|
|
|
|
i = CONTENT_LOCKABLE_SIGN_WALL;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Locking Sign");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("sign.png");
|
|
|
|
f->setTexture(4, "sign_back.png");
|
|
|
|
f->setTexture(5, "sign_wall_lock.png"); // Z-
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_WALLMOUNT;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->sunlight_propagates = true;
|
2014-09-22 07:07:51 -07:00
|
|
|
f->air_equivalent = true;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->floormount_alternate_node = CONTENT_LOCKABLE_SIGN;
|
|
|
|
f->roofmount_alternate_node = CONTENT_LOCKABLE_SIGN_UD;
|
|
|
|
f->walkable = false;
|
|
|
|
f->air_equivalent = true;
|
|
|
|
f->flammable = 1; // can be replaced by fire if the node under it is set on fire
|
|
|
|
f->fuel_time = 1;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(CONTENT_LOCKABLE_SIGN)+" 1";
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new LockingSignNodeMetadata("Some sign");
|
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 0.1;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2015-06-03 12:39:19 -07:00
|
|
|
f->alternate_lockstate_node = CONTENT_SIGN_WALL;
|
2014-09-19 09:36:05 -07:00
|
|
|
content_nodebox_sign_wall(f);
|
2015-01-22 06:11:59 -08:00
|
|
|
f->setFaceText(4,FaceText(0.05,0.3,0.95,0.7,FTT_OWNER));
|
|
|
|
f->setFaceText(5,FaceText(0.05,0.3,0.95,0.7));
|
2014-09-19 09:36:05 -07:00
|
|
|
|
|
|
|
i = CONTENT_LOCKABLE_SIGN;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Locking Sign");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("sign.png");
|
|
|
|
f->setTexture(4, "sign_back.png");
|
|
|
|
f->setTexture(5, "sign_lock.png"); // Z-
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->sunlight_propagates = true;
|
2014-09-22 07:07:51 -07:00
|
|
|
f->air_equivalent = true;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->wallmount_alternate_node = CONTENT_LOCKABLE_SIGN_WALL;
|
|
|
|
f->roofmount_alternate_node = CONTENT_LOCKABLE_SIGN_UD;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->flammable = 1; // can be replaced by fire if the node under it is set on fire
|
|
|
|
f->fuel_time = 1;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new LockingSignNodeMetadata("Some sign");
|
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 0.1;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2015-06-03 12:39:19 -07:00
|
|
|
f->alternate_lockstate_node = CONTENT_SIGN;
|
2014-09-19 09:36:05 -07:00
|
|
|
content_nodebox_sign(f);
|
2015-01-22 06:11:59 -08:00
|
|
|
f->setFaceText(4,FaceText(0.05,0.0675,0.95,0.55,FTT_OWNER));
|
|
|
|
f->setFaceText(5,FaceText(0.05,0.0675,0.95,0.55));
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setInventoryTextureNodeBox(i,"sign.png", "sign_lock.png", "sign.png");
|
|
|
|
crafting::set1Any2Recipe(CONTENT_SIGN,CONTENT_CRAFTITEM_STEEL_INGOT,CONTENT_LOCKABLE_SIGN);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_LOCKABLE_SIGN_UD;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Locking Sign");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("sign.png");
|
|
|
|
f->setTexture(4, "sign_back_ud.png");
|
|
|
|
f->setTexture(5, "sign_lock_ud.png"); // Z-
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->sunlight_propagates = true;
|
2014-09-22 07:07:51 -07:00
|
|
|
f->air_equivalent = true;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->wallmount_alternate_node = CONTENT_LOCKABLE_SIGN_WALL;
|
|
|
|
f->floormount_alternate_node = CONTENT_LOCKABLE_SIGN;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->flammable = 1; // can be replaced by fire if the node under it is set on fire
|
|
|
|
f->fuel_time = 1;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(CONTENT_LOCKABLE_SIGN)+" 1";
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new LockingSignNodeMetadata("Some sign");
|
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 0.1;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2015-06-03 12:39:19 -07:00
|
|
|
f->alternate_lockstate_node = CONTENT_SIGN_UD;
|
2014-09-19 09:36:05 -07:00
|
|
|
content_nodebox_sign_ud(f);
|
2015-01-22 06:11:59 -08:00
|
|
|
f->setFaceText(4,FaceText(0.05,0.45,0.95,0.8875,FTT_OWNER));
|
|
|
|
f->setFaceText(5,FaceText(0.05,0.45,0.95,0.8875));
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setInventoryTextureNodeBox(i,"sign.png", "sign_lock.png", "sign.png");
|
|
|
|
|
|
|
|
i = CONTENT_CHEST;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Chest");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->param_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_CUBELIKE;
|
|
|
|
f->setAllTextures("chest_side.png");
|
|
|
|
f->setTexture(0, "chest_top.png");
|
|
|
|
f->setTexture(1, "chest_top.png");
|
|
|
|
f->setTexture(5, "chest_front.png"); // Z-
|
|
|
|
f->setInventoryTexture("chest_top.png");
|
|
|
|
f->setInventoryTextureCube("chest_top.png", "chest_front.png", "chest_side.png");
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new ChestNodeMetadata();
|
2015-03-01 18:09:45 -08:00
|
|
|
f->sound_access = "open-chest";
|
2014-09-19 09:36:05 -07:00
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 1.0;
|
|
|
|
f->pressure_type = CST_SOLID;
|
2015-06-03 12:39:19 -07:00
|
|
|
f->alternate_lockstate_node = CONTENT_LOCKABLE_CHEST;
|
2014-09-19 09:36:05 -07:00
|
|
|
crafting::setRoundRecipe(CONTENT_WOOD,CONTENT_CHEST);
|
|
|
|
crafting::setRoundRecipe(CONTENT_JUNGLEWOOD,CONTENT_CHEST);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_CREATIVE_CHEST;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Creative Chest");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->param_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_CUBELIKE;
|
|
|
|
f->setAllTextures("chest_side.png");
|
|
|
|
f->setTexture(0, "chest_top.png");
|
|
|
|
f->setTexture(1, "chest_top.png");
|
|
|
|
f->setTexture(5, "chest_creative.png"); // Z-
|
|
|
|
f->setInventoryTexture("chest_top.png");
|
|
|
|
f->setInventoryTextureCube("chest_top.png", "chest_creative.png", "chest_side.png");
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new CreativeChestNodeMetadata();
|
2015-03-01 18:09:45 -08:00
|
|
|
f->sound_access = "open-chest";
|
2014-09-19 09:36:05 -07:00
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 1.0;
|
|
|
|
f->pressure_type = CST_SOLID;
|
|
|
|
lists::add("player-creative",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_LOCKABLE_CHEST;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Locking Chest");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->param_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_CUBELIKE;
|
|
|
|
f->setAllTextures("chest_side.png");
|
|
|
|
f->setTexture(0, "chest_top.png");
|
|
|
|
f->setTexture(1, "chest_top.png");
|
|
|
|
f->setTexture(5, "chest_lock.png"); // Z-
|
|
|
|
f->setInventoryTexture("chest_lock.png");
|
|
|
|
f->setInventoryTextureCube("chest_top.png", "chest_lock.png", "chest_side.png");
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new LockingChestNodeMetadata();
|
2015-03-01 18:09:45 -08:00
|
|
|
f->sound_access = "open-chest";
|
2014-09-19 09:36:05 -07:00
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 1.0;
|
|
|
|
f->pressure_type = CST_SOLID;
|
2015-06-03 12:39:19 -07:00
|
|
|
f->alternate_lockstate_node = CONTENT_CHEST;
|
2014-09-19 09:36:05 -07:00
|
|
|
crafting::setFilledRoundRecipe(CONTENT_WOOD,CONTENT_CRAFTITEM_STEEL_INGOT,CONTENT_LOCKABLE_CHEST);
|
|
|
|
crafting::setFilledRoundRecipe(CONTENT_JUNGLEWOOD,CONTENT_CRAFTITEM_STEEL_INGOT,CONTENT_LOCKABLE_CHEST);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_CHEST,CONTENT_CRAFTITEM_STEEL_INGOT,CONTENT_LOCKABLE_CHEST);
|
|
|
|
crafting::setFilledRoundRecipe(CONTENT_WOOD,CONTENT_CRAFTITEM_COPPER_INGOT,CONTENT_LOCKABLE_CHEST);
|
|
|
|
crafting::setFilledRoundRecipe(CONTENT_JUNGLEWOOD,CONTENT_CRAFTITEM_COPPER_INGOT,CONTENT_LOCKABLE_CHEST);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_CHEST,CONTENT_CRAFTITEM_COPPER_INGOT,CONTENT_LOCKABLE_CHEST);
|
|
|
|
crafting::setFilledRoundRecipe(CONTENT_WOOD,CONTENT_CRAFTITEM_SILVER_INGOT,CONTENT_LOCKABLE_CHEST);
|
|
|
|
crafting::setFilledRoundRecipe(CONTENT_JUNGLEWOOD,CONTENT_CRAFTITEM_SILVER_INGOT,CONTENT_LOCKABLE_CHEST);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_CHEST,CONTENT_CRAFTITEM_SILVER_INGOT,CONTENT_LOCKABLE_CHEST);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
2014-11-23 01:33:05 -08:00
|
|
|
i = CONTENT_SAFE;
|
|
|
|
f = &content_features(i);
|
|
|
|
f->description = wgettext("Safe");
|
|
|
|
f->param_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_CUBELIKE;
|
|
|
|
f->setAllTextures("safe_side.png");
|
|
|
|
f->setTexture(0, "safe_top.png");
|
|
|
|
f->setTexture(1, "safe_top.png");
|
|
|
|
f->setTexture(5, "safe_lock.png"); // Z-
|
|
|
|
f->setInventoryTexture("safe_lock.png");
|
|
|
|
f->setInventoryTextureCube("safe_top.png", "safe_lock.png", "safe_side.png");
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new SafeNodeMetadata();
|
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 1.0;
|
|
|
|
f->pressure_type = CST_SOLID;
|
|
|
|
f->destructive_mob_safe = true;
|
2014-12-08 11:48:09 -08:00
|
|
|
crafting::setFilledRoundRecipe(CONTENT_CRAFTITEM_STEEL_INGOT,CONTENT_CRAFTITEM_COPPER_INGOT,CONTENT_SAFE);
|
2014-11-23 01:33:05 -08:00
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
2014-09-19 09:36:05 -07:00
|
|
|
i = CONTENT_FURNACE;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Furnace");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->param_type = CPT_FACEDIR_SIMPLE;
|
2015-08-28 10:26:33 -07:00
|
|
|
f->draw_type = CDT_NODEBOX_META;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("furnace_side.png");
|
|
|
|
f->setTexture(0, "furnace_top.png");
|
2015-08-28 11:47:13 -07:00
|
|
|
f->setTexture(1, "furnace_top.png^[transformFY");
|
2015-08-28 10:26:33 -07:00
|
|
|
f->setTexture(2, "furnace_side.png^[transformFX");
|
|
|
|
f->setTexture(4, "furnace_back.png");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setTexture(5, "furnace_front.png"); // Z-
|
2015-08-28 10:26:33 -07:00
|
|
|
f->setAllMetaTextures("fire.png");
|
|
|
|
content_nodebox_furnace(f);
|
|
|
|
f->setInventoryTextureNodeBox(i,"furnace_top.png^[transformR90", "furnace_front.png", "furnace_side.png^[transformFX");
|
2015-08-28 11:47:13 -07:00
|
|
|
f->rotate_tile_with_nodebox = true;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new FurnaceNodeMetadata();
|
|
|
|
f->type = CMT_STONE;
|
|
|
|
f->hardness = 3.0;
|
|
|
|
f->pressure_type = CST_SOLID;
|
2015-06-03 12:39:19 -07:00
|
|
|
f->alternate_lockstate_node = CONTENT_LOCKABLE_FURNACE;
|
2014-09-19 09:36:05 -07:00
|
|
|
crafting::setRoundRecipe(CONTENT_ROUGHSTONE,CONTENT_FURNACE);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
2014-10-23 12:04:25 -07:00
|
|
|
i = CONTENT_FURNACE_ACTIVE;
|
|
|
|
f = &content_features(i);
|
|
|
|
f->description = wgettext("Furnace");
|
2015-01-06 06:01:44 -08:00
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
2014-10-23 12:04:25 -07:00
|
|
|
f->draw_type = CDT_CUBELIKE;
|
2015-01-06 06:01:44 -08:00
|
|
|
f->light_source = 9;
|
2014-10-23 12:04:25 -07:00
|
|
|
f->setAllTextures("furnace_side.png");
|
|
|
|
f->setTexture(0, "furnace_top.png");
|
|
|
|
f->setTexture(1, "furnace_top.png");
|
2015-08-28 10:26:33 -07:00
|
|
|
f->setTexture(5, "furnace_front.png"); // Z-
|
2014-10-23 12:04:25 -07:00
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(CONTENT_FURNACE)+" 1";
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new FurnaceNodeMetadata();
|
|
|
|
f->type = CMT_STONE;
|
|
|
|
f->hardness = 3.0;
|
|
|
|
f->pressure_type = CST_SOLID;
|
|
|
|
|
2014-09-19 09:36:05 -07:00
|
|
|
i = CONTENT_LOCKABLE_FURNACE;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Locking Furnace");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->param_type = CPT_FACEDIR_SIMPLE;
|
2015-08-28 10:26:33 -07:00
|
|
|
f->draw_type = CDT_NODEBOX_META;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("furnace_side.png");
|
|
|
|
f->setTexture(0, "furnace_top.png");
|
2015-08-28 11:47:13 -07:00
|
|
|
f->setTexture(1, "furnace_top.png^[transformFY");
|
2015-08-28 10:26:33 -07:00
|
|
|
f->setTexture(2, "furnace_side.png^[transformFX");
|
|
|
|
f->setTexture(4, "furnace_back.png");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setTexture(5, "furnace_lock.png"); // Z-
|
2015-08-28 10:26:33 -07:00
|
|
|
f->setAllMetaTextures("fire.png");
|
|
|
|
content_nodebox_lockedfurnace(f);
|
|
|
|
f->setInventoryTextureNodeBox(i,"furnace_top.png^[transformR90", "furnace_lock.png", "furnace_side.png^[transformFX");
|
2015-08-28 11:47:13 -07:00
|
|
|
f->rotate_tile_with_nodebox = true;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new LockingFurnaceNodeMetadata();
|
|
|
|
f->type = CMT_STONE;
|
|
|
|
f->hardness = 3.0;
|
|
|
|
f->pressure_type = CST_SOLID;
|
2015-06-03 12:39:19 -07:00
|
|
|
f->alternate_lockstate_node = CONTENT_FURNACE;
|
2014-09-19 09:36:05 -07:00
|
|
|
crafting::setFilledRoundRecipe(CONTENT_ROUGHSTONE,CONTENT_CRAFTITEM_STEEL_INGOT,CONTENT_LOCKABLE_FURNACE);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_FURNACE,CONTENT_CRAFTITEM_STEEL_INGOT,CONTENT_LOCKABLE_FURNACE);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
2014-10-23 12:04:25 -07:00
|
|
|
i = CONTENT_LOCKABLE_FURNACE_ACTIVE;
|
|
|
|
f = &content_features(i);
|
|
|
|
f->description = wgettext("Locking Furnace");
|
2015-01-06 06:01:44 -08:00
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
2014-10-23 12:04:25 -07:00
|
|
|
f->draw_type = CDT_CUBELIKE;
|
2015-01-06 06:01:44 -08:00
|
|
|
f->light_source = 9;
|
2014-10-23 12:04:25 -07:00
|
|
|
f->setAllTextures("furnace_side.png");
|
|
|
|
f->setTexture(0, "furnace_top.png");
|
|
|
|
f->setTexture(1, "furnace_top.png");
|
|
|
|
f->setTexture(5, "furnace_lock_active.png"); // Z-
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(CONTENT_LOCKABLE_FURNACE)+" 1";
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new LockingFurnaceNodeMetadata();
|
|
|
|
f->type = CMT_STONE;
|
|
|
|
f->hardness = 3.0;
|
|
|
|
f->pressure_type = CST_SOLID;
|
|
|
|
|
2014-09-19 09:36:05 -07:00
|
|
|
i = CONTENT_INCINERATOR;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Incinerator");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->param_type = CPT_FACEDIR_SIMPLE;
|
2015-08-28 10:26:33 -07:00
|
|
|
f->draw_type = CDT_NODEBOX_META;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("incinerator_side.png");
|
2015-08-28 10:26:33 -07:00
|
|
|
f->setTexture(0, "incinerator_top.png");
|
2015-08-28 11:47:13 -07:00
|
|
|
f->setTexture(1, "incinerator_top.png^[transformFY");
|
2015-08-28 10:26:33 -07:00
|
|
|
f->setTexture(2, "incinerator_side.png^[transformFX");
|
|
|
|
f->setTexture(4, "incinerator_back.png");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setTexture(5, "incinerator_front.png"); // Z-
|
2015-08-28 10:26:33 -07:00
|
|
|
f->setAllMetaTextures("fire.png");
|
|
|
|
content_nodebox_incinerator(f);
|
|
|
|
f->setInventoryTextureNodeBox(i,"incinerator_top.png^[transformR90", "incinerator_front.png", "incinerator_side.png^[transformFX");
|
2015-08-28 11:47:13 -07:00
|
|
|
f->rotate_tile_with_nodebox = true;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new IncineratorNodeMetadata();
|
|
|
|
f->type = CMT_STONE;
|
|
|
|
f->hardness = 0.4;
|
|
|
|
f->pressure_type = CST_SOLID;
|
2015-07-30 00:37:52 -07:00
|
|
|
crafting::setFilledRoundRecipe(CONTENT_ROUGHSTONE,CONTENT_CRAFTITEM_MITHRIL_UNBOUND,CONTENT_INCINERATOR);
|
2014-09-19 09:36:05 -07:00
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
2014-10-23 12:04:25 -07:00
|
|
|
i = CONTENT_INCINERATOR_ACTIVE;
|
|
|
|
f = &content_features(i);
|
|
|
|
f->description = wgettext("Incinerator");
|
2015-01-06 06:01:44 -08:00
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
2014-10-23 12:04:25 -07:00
|
|
|
f->draw_type = CDT_CUBELIKE;
|
2015-01-06 06:01:44 -08:00
|
|
|
f->light_source = 9;
|
2014-10-23 12:04:25 -07:00
|
|
|
f->setAllTextures("incinerator_side.png");
|
|
|
|
f->setTexture(0, "incinerator_top.png"); // Z-
|
|
|
|
f->setTexture(1, "incinerator_top.png"); // Z-
|
|
|
|
f->setTexture(5, "incinerator_front_active.png"); // Z-
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(CONTENT_INCINERATOR)+" 1";
|
|
|
|
if (f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new IncineratorNodeMetadata();
|
|
|
|
f->type = CMT_STONE;
|
|
|
|
f->hardness = 0.4;
|
|
|
|
f->pressure_type = CST_SOLID;
|
|
|
|
|
2014-09-19 09:36:05 -07:00
|
|
|
i = CONTENT_NC;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Nyan Cat");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->param_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->draw_type = CDT_CUBELIKE;
|
|
|
|
f->setAllTextures("nc_side.png");
|
|
|
|
f->setTexture(5, "nc_front.png"); // Z-
|
|
|
|
f->setTexture(4, "nc_back.png"); // Z+
|
2014-10-23 03:53:52 -07:00
|
|
|
f->setInventoryTextureCube("nc_side.png", "nc_front.png", "nc_side.png");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->type = CMT_STONE;
|
|
|
|
f->hardness = 3.0;
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_NC_RB;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Rainbow");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->draw_type = CDT_CUBELIKE;
|
|
|
|
f->setAllTextures("nc_rb.png");
|
|
|
|
f->setInventoryTextureCube("nc_rb.png", "nc_rb.png", "nc_rb.png");
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->type = CMT_STONE;
|
|
|
|
f->hardness = 3.0;
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_FLOWER_POT_RAW;
|
|
|
|
f = &content_features(i);
|
|
|
|
f->param_type = CPT_LIGHT;
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Unbaked Flower Pot");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("flower_pot_raw.png");
|
|
|
|
f->setTexture(0,"flower_pot_raw_top.png");
|
|
|
|
f->setTexture(1,"flower_pot_raw_bottom.png");
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->sunlight_propagates = true;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->cook_result = std::string("MaterialItem2 ")+itos(CONTENT_FLOWER_POT)+" 1";
|
|
|
|
f->type = CMT_STONE;
|
|
|
|
f->hardness = 0.75;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
2015-01-31 10:46:44 -08:00
|
|
|
content_nodebox_flower_pot(f);
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setInventoryTextureNodeBox(i,"flower_pot_raw_top.png","flower_pot_raw.png","flower_pot_raw.png");
|
|
|
|
crafting::setVRecipe(CONTENT_CRAFTITEM_CLAY,CONTENT_FLOWER_POT_RAW);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("cooking",i);
|
|
|
|
|
|
|
|
i = CONTENT_FLOWER_POT;
|
|
|
|
f = &content_features(i);
|
|
|
|
f->param_type = CPT_LIGHT;
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Flower Pot");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("flower_pot.png");
|
|
|
|
f->setTexture(0,"flower_pot_top.png");
|
|
|
|
f->setTexture(1,"flower_pot_bottom.png");
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->sunlight_propagates = true;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->type = CMT_STONE;
|
|
|
|
f->hardness = 0.75;
|
2015-01-31 10:46:44 -08:00
|
|
|
content_nodebox_flower_pot(f);
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setInventoryTextureNodeBox(i,"flower_pot_top.png","flower_pot.png","flower_pot.png");
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
// walls
|
|
|
|
i = CONTENT_COBBLE_WALL;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Cobblestone Wall");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("cobble.png");
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->jumpable = false;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_SPECIAL;
|
|
|
|
f->draw_type = CDT_WALLLIKE;
|
|
|
|
f->is_ground_content = true;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->air_equivalent = true; // grass grows underneath
|
|
|
|
content_nodebox_wall_inv(f);
|
|
|
|
content_nodebox_wall(f);
|
|
|
|
f->setInventoryTextureNodeBox(i,"cobble.png","cobble.png","cobble.png");
|
|
|
|
f->special_alternate_node = CONTENT_COBBLE;
|
|
|
|
f->type = CMT_STONE;
|
|
|
|
f->hardness = 0.9;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
crafting::setWallRecipe(CONTENT_COBBLE,CONTENT_COBBLE_WALL);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_ROUGHSTONE_WALL;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Rough Stone Wall");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("roughstone.png");
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->jumpable = false;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_SPECIAL;
|
|
|
|
f->draw_type = CDT_WALLLIKE;
|
|
|
|
f->is_ground_content = true;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->air_equivalent = true; // grass grows underneath
|
|
|
|
content_nodebox_wall_inv(f);
|
|
|
|
content_nodebox_wall(f);
|
|
|
|
f->setInventoryTextureNodeBox(i,"roughstone.png","roughstone.png","roughstone.png");
|
|
|
|
f->special_alternate_node = CONTENT_ROUGHSTONE;
|
|
|
|
f->type = CMT_STONE;
|
|
|
|
f->hardness = 0.9;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
crafting::setWallRecipe(CONTENT_ROUGHSTONE,CONTENT_ROUGHSTONE_WALL);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_MOSSYCOBBLE_WALL;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Mossy Cobblestone Wall");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("mossycobble.png");
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->jumpable = false;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_SPECIAL;
|
|
|
|
f->draw_type = CDT_WALLLIKE;
|
|
|
|
f->is_ground_content = true;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->air_equivalent = true; // grass grows underneath
|
|
|
|
content_nodebox_wall_inv(f);
|
|
|
|
content_nodebox_wall(f);
|
|
|
|
f->setInventoryTextureNodeBox(i,"mossycobble.png","mossycobble.png","mossycobble.png");
|
|
|
|
f->special_alternate_node = CONTENT_MOSSYCOBBLE;
|
|
|
|
f->type = CMT_STONE;
|
|
|
|
f->hardness = 0.8;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
crafting::setWallRecipe(CONTENT_MOSSYCOBBLE,CONTENT_MOSSYCOBBLE_WALL);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_STONE_WALL;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Stone Wall");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("stone.png");
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->jumpable = false;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_SPECIAL;
|
|
|
|
f->draw_type = CDT_WALLLIKE;
|
|
|
|
f->is_ground_content = true;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->air_equivalent = true; // grass grows underneath
|
|
|
|
content_nodebox_wall_inv(f);
|
|
|
|
content_nodebox_wall(f);
|
|
|
|
f->setInventoryTextureNodeBox(i,"stone.png","stone.png","stone.png");
|
|
|
|
f->special_alternate_node = CONTENT_STONE;
|
|
|
|
f->type = CMT_STONE;
|
|
|
|
f->hardness = 1.0;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
crafting::setWallRecipe(CONTENT_STONE,CONTENT_STONE_WALL);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_SANDSTONE_WALL;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Sand Stone Wall");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("sandstone.png");
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->jumpable = false;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_SPECIAL;
|
|
|
|
f->draw_type = CDT_WALLLIKE;
|
|
|
|
f->is_ground_content = true;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->air_equivalent = true; // grass grows underneath
|
|
|
|
content_nodebox_wall_inv(f);
|
|
|
|
content_nodebox_wall(f);
|
|
|
|
f->setInventoryTextureNodeBox(i,"sandstone.png","sandstone.png","sandstone.png");
|
|
|
|
f->special_alternate_node = CONTENT_SANDSTONE;
|
|
|
|
f->type = CMT_DIRT;
|
|
|
|
f->hardness = 1.0;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
crafting::setWallRecipe(CONTENT_SANDSTONE,CONTENT_SANDSTONE_WALL);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
2015-08-13 08:51:48 -07:00
|
|
|
i = CONTENT_LIMESTONE_WALL;
|
|
|
|
f = &content_features(i);
|
|
|
|
f->description = wgettext("Limestone Wall");
|
|
|
|
f->setAllTextures("limestone.png");
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->jumpable = false;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_SPECIAL;
|
|
|
|
f->draw_type = CDT_WALLLIKE;
|
|
|
|
f->is_ground_content = true;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->air_equivalent = true; // grass grows underneath
|
|
|
|
content_nodebox_wall_inv(f);
|
|
|
|
content_nodebox_wall(f);
|
|
|
|
f->setInventoryTextureNodeBox(i,"limestone.png","limestone.png","limestone.png");
|
|
|
|
f->special_alternate_node = CONTENT_LIMESTONE;
|
|
|
|
f->type = CMT_STONE;
|
|
|
|
f->hardness = 0.9;
|
|
|
|
f->suffocation_per_second = 0;
|
|
|
|
crafting::setWallRecipe(CONTENT_LIMESTONE,CONTENT_LIMESTONE_WALL);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
2016-07-28 16:18:48 -07:00
|
|
|
i = CONTENT_MARBLE_WALL;
|
|
|
|
f = &content_features(i);
|
|
|
|
f->description = wgettext("Marble Wall");
|
|
|
|
f->setAllTextures("marble.png");
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->jumpable = false;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_SPECIAL;
|
|
|
|
f->draw_type = CDT_WALLLIKE;
|
|
|
|
f->is_ground_content = true;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->air_equivalent = true; // grass grows underneath
|
|
|
|
content_nodebox_wall_inv(f);
|
|
|
|
content_nodebox_wall(f);
|
|
|
|
f->setInventoryTextureNodeBox(i,"marble.png","marble.png","marble.png");
|
|
|
|
f->special_alternate_node = CONTENT_MARBLE;
|
|
|
|
f->type = CMT_STONE;
|
|
|
|
f->hardness = 1.0;
|
|
|
|
f->suffocation_per_second = 0;
|
|
|
|
crafting::setWallRecipe(CONTENT_MARBLE,CONTENT_MARBLE_WALL);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
2014-09-19 09:36:05 -07:00
|
|
|
i = CONTENT_TNT;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("TNT");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("tnt.png");
|
|
|
|
f->setTexture(0, "tnt_top.png");
|
|
|
|
f->setTexture(1, "tnt_bottom.png");
|
|
|
|
f->setInventoryTextureCube("tnt_top.png", "tnt.png", "tnt.png");
|
|
|
|
f->draw_type = CDT_CUBELIKE;
|
|
|
|
f->is_ground_content = true;
|
2016-02-03 14:35:58 -08:00
|
|
|
f->energy_type = CET_DEVICE;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new TNTNodeMetadata();
|
|
|
|
f->type = CMT_DIRT;
|
|
|
|
f->hardness = 1.0;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
crafting::setSoftBlockRecipe(CONTENT_CRAFTITEM_TNT,CONTENT_TNT);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_FLASH;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("In-Progress explosion - how did you get this???");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("flash.png");
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->draw_type = CDT_GLASSLIKE;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->light_source = LIGHT_MAX-1;
|
|
|
|
f->walkable = false;
|
|
|
|
f->pointable = false;
|
|
|
|
f->diggable = false;
|
|
|
|
f->buildable_to = true;
|
2016-01-17 22:58:21 -08:00
|
|
|
f->damage_per_second = 80;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->pressure_type = CST_CRUSHED;
|
|
|
|
#ifndef SERVER
|
|
|
|
f->setAllTextureTypes(MATERIAL_ALPHA_BLEND);
|
|
|
|
f->post_effect_color = video::SColor(192, 255, 255, 64);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
i = CONTENT_STEAM;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Steam");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("steam.png");
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->draw_type = CDT_GLASSLIKE;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->sunlight_propagates = true;
|
|
|
|
f->walkable = false;
|
|
|
|
f->pointable = false;
|
|
|
|
f->diggable = false;
|
|
|
|
f->buildable_to = true;
|
2016-01-17 22:58:21 -08:00
|
|
|
f->damage_per_second = 20;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->pressure_type = CST_CRUSHED;
|
|
|
|
#ifndef SERVER
|
|
|
|
f->setAllTextureTypes(MATERIAL_ALPHA_BLEND);
|
|
|
|
f->post_effect_color = video::SColor(120, 200, 200, 200);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
// flags
|
|
|
|
i = CONTENT_FLAG;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Home Flag");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("flag.png");
|
2015-06-01 04:22:42 -07:00
|
|
|
f->setAllTextureFlags(0);
|
2014-09-19 09:36:05 -07:00
|
|
|
f->light_propagates = true;
|
|
|
|
f->walkable = false;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
2015-06-01 04:22:42 -07:00
|
|
|
f->draw_type = CDT_FLAGLIKE;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->is_ground_content = true;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->air_equivalent = true; // grass grows underneath
|
|
|
|
content_nodebox_flag(f);
|
2015-05-20 05:32:55 -07:00
|
|
|
f->home_node = PLAYERFLAG_WHITE;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 0.4;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
{
|
|
|
|
content_t r[9] = {
|
|
|
|
CONTENT_CRAFTITEM_STICK, CONTENT_CRAFTITEM_PAPER, CONTENT_IGNORE,
|
|
|
|
CONTENT_CRAFTITEM_STICK, CONTENT_IGNORE, CONTENT_IGNORE,
|
|
|
|
CONTENT_IGNORE, CONTENT_IGNORE, CONTENT_IGNORE
|
|
|
|
};
|
|
|
|
crafting::setRecipe(r,CONTENT_FLAG,1);
|
|
|
|
}
|
|
|
|
crafting::set1Any2Recipe(CONTENT_FLAG_BLUE,CONTENT_CRAFTITEM_DYE_WHITE,CONTENT_FLAG);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_FLAG_BLUE,CONTENT_CRAFTITEM_STARCH,CONTENT_FLAG);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_FLAG_GREEN,CONTENT_CRAFTITEM_DYE_WHITE,CONTENT_FLAG);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_FLAG_GREEN,CONTENT_CRAFTITEM_STARCH,CONTENT_FLAG);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_FLAG_ORANGE,CONTENT_CRAFTITEM_DYE_WHITE,CONTENT_FLAG);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_FLAG_ORANGE,CONTENT_CRAFTITEM_STARCH,CONTENT_FLAG);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_FLAG_PURPLE,CONTENT_CRAFTITEM_DYE_WHITE,CONTENT_FLAG);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_FLAG_PURPLE,CONTENT_CRAFTITEM_STARCH,CONTENT_FLAG);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_FLAG_RED,CONTENT_CRAFTITEM_DYE_WHITE,CONTENT_FLAG);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_FLAG_RED,CONTENT_CRAFTITEM_STARCH,CONTENT_FLAG);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_FLAG_YELLOW,CONTENT_CRAFTITEM_DYE_WHITE,CONTENT_FLAG);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_FLAG_YELLOW,CONTENT_CRAFTITEM_STARCH,CONTENT_FLAG);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_FLAG_BLACK,CONTENT_CRAFTITEM_DYE_WHITE,CONTENT_FLAG);
|
|
|
|
crafting::set1Any2Recipe(CONTENT_FLAG_BLACK,CONTENT_CRAFTITEM_STARCH,CONTENT_FLAG);
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new FlagNodeMetadata();
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_FLAG_BLUE;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Blue Home Flag");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("flag_blue.png");
|
2015-06-01 04:22:42 -07:00
|
|
|
f->setAllTextureFlags(0);
|
2014-09-19 09:36:05 -07:00
|
|
|
f->light_propagates = true;
|
|
|
|
f->walkable = false;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
2015-06-01 04:22:42 -07:00
|
|
|
f->draw_type = CDT_FLAGLIKE;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->is_ground_content = true;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->air_equivalent = true; // grass grows underneath
|
|
|
|
content_nodebox_flag(f);
|
2015-05-20 05:32:55 -07:00
|
|
|
f->home_node = PLAYERFLAG_BLUE;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 0.4;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
crafting::set1Any2Recipe(CONTENT_FLAG,CONTENT_CRAFTITEM_DYE_BLUE,CONTENT_FLAG_BLUE);
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new FlagNodeMetadata();
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_FLAG_GREEN;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Green Home Flag");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("flag_green.png");
|
2015-06-01 04:22:42 -07:00
|
|
|
f->setAllTextureFlags(0);
|
2014-09-19 09:36:05 -07:00
|
|
|
f->light_propagates = true;
|
|
|
|
f->walkable = false;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
2015-06-01 04:22:42 -07:00
|
|
|
f->draw_type = CDT_FLAGLIKE;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->is_ground_content = true;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->air_equivalent = true; // grass grows underneath
|
|
|
|
content_nodebox_flag(f);
|
2015-05-20 05:32:55 -07:00
|
|
|
f->home_node = PLAYERFLAG_GREEN;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 0.4;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
crafting::set1Any2Recipe(CONTENT_FLAG,CONTENT_CRAFTITEM_DYE_GREEN,CONTENT_FLAG_GREEN);
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new FlagNodeMetadata();
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_FLAG_ORANGE;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Orange Home Flag");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("flag_orange.png");
|
2015-06-01 04:22:42 -07:00
|
|
|
f->setAllTextureFlags(0);
|
2014-09-19 09:36:05 -07:00
|
|
|
f->light_propagates = true;
|
|
|
|
f->walkable = false;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
2015-06-01 04:22:42 -07:00
|
|
|
f->draw_type = CDT_FLAGLIKE;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->is_ground_content = true;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->air_equivalent = true; // grass grows underneath
|
|
|
|
content_nodebox_flag(f);
|
2015-05-20 05:32:55 -07:00
|
|
|
f->home_node = PLAYERFLAG_ORANGE;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 0.4;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
crafting::set1Any2Recipe(CONTENT_FLAG,CONTENT_CRAFTITEM_DYE_ORANGE,CONTENT_FLAG_ORANGE);
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new FlagNodeMetadata();
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_FLAG_PURPLE;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Purple Home Flag");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("flag_purple.png");
|
2015-06-01 04:22:42 -07:00
|
|
|
f->setAllTextureFlags(0);
|
2014-09-19 09:36:05 -07:00
|
|
|
f->light_propagates = true;
|
|
|
|
f->walkable = false;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
2015-06-01 04:22:42 -07:00
|
|
|
f->draw_type = CDT_FLAGLIKE;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->is_ground_content = true;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->air_equivalent = true; // grass grows underneath
|
|
|
|
content_nodebox_flag(f);
|
2015-05-20 05:32:55 -07:00
|
|
|
f->home_node = PLAYERFLAG_PURPLE;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 0.4;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
crafting::set1Any2Recipe(CONTENT_FLAG,CONTENT_CRAFTITEM_DYE_PURPLE,CONTENT_FLAG_PURPLE);
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new FlagNodeMetadata();
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_FLAG_RED;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Red Home Flag");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("flag_red.png");
|
2015-06-01 04:22:42 -07:00
|
|
|
f->setAllTextureFlags(0);
|
2014-09-19 09:36:05 -07:00
|
|
|
f->light_propagates = true;
|
|
|
|
f->walkable = false;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
2015-06-01 04:22:42 -07:00
|
|
|
f->draw_type = CDT_FLAGLIKE;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->is_ground_content = true;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->air_equivalent = true; // grass grows underneath
|
|
|
|
content_nodebox_flag(f);
|
2015-05-20 05:32:55 -07:00
|
|
|
f->home_node = PLAYERFLAG_RED;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 0.4;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
crafting::set1Any2Recipe(CONTENT_FLAG,CONTENT_CRAFTITEM_DYE_RED,CONTENT_FLAG_RED);
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new FlagNodeMetadata();
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_FLAG_YELLOW;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Yellow Home Flag");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("flag_yellow.png");
|
2015-06-01 04:22:42 -07:00
|
|
|
f->setAllTextureFlags(0);
|
2014-09-19 09:36:05 -07:00
|
|
|
f->light_propagates = true;
|
|
|
|
f->walkable = false;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
2015-06-01 04:22:42 -07:00
|
|
|
f->draw_type = CDT_FLAGLIKE;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->is_ground_content = true;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->air_equivalent = true; // grass grows underneath
|
|
|
|
content_nodebox_flag(f);
|
2015-05-20 05:32:55 -07:00
|
|
|
f->home_node = PLAYERFLAG_YELLOW;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 0.4;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
crafting::set1Any2Recipe(CONTENT_FLAG,CONTENT_CRAFTITEM_DYE_YELLOW,CONTENT_FLAG_YELLOW);
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new FlagNodeMetadata();
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
|
|
|
|
i = CONTENT_FLAG_BLACK;
|
|
|
|
f = &content_features(i);
|
2014-09-23 12:21:20 -07:00
|
|
|
f->description = wgettext("Black Home Flag");
|
2014-09-19 09:36:05 -07:00
|
|
|
f->setAllTextures("flag_black.png");
|
2015-06-01 04:22:42 -07:00
|
|
|
f->setAllTextureFlags(0);
|
2014-09-19 09:36:05 -07:00
|
|
|
f->light_propagates = true;
|
|
|
|
f->walkable = false;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
2015-06-01 04:22:42 -07:00
|
|
|
f->draw_type = CDT_FLAGLIKE;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->is_ground_content = true;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->air_equivalent = true; // grass grows underneath
|
|
|
|
content_nodebox_flag(f);
|
2015-05-20 05:32:55 -07:00
|
|
|
f->home_node = PLAYERFLAG_BLACK;
|
2014-09-19 09:36:05 -07:00
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->hardness = 0.4;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2014-09-19 09:36:05 -07:00
|
|
|
crafting::set1Any2Recipe(CONTENT_FLAG,CONTENT_CRAFTITEM_DYE_BLACK,CONTENT_FLAG_BLACK);
|
|
|
|
if(f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new FlagNodeMetadata();
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
2014-10-22 10:54:02 -07:00
|
|
|
|
|
|
|
i = CONTENT_LIFE_SUPPORT;
|
|
|
|
f = &content_features(i);
|
|
|
|
f->description = wgettext("Life Support System");
|
|
|
|
f->setAllTextures("life_support.png");
|
|
|
|
f->setTexture(0, "life_support_top.png");
|
|
|
|
f->setTexture(1, "life_support_bottom.png");
|
|
|
|
f->setInventoryTextureCube("life_support_top.png", "life_support.png", "life_support.png");
|
|
|
|
f->draw_type = CDT_CUBELIKE;
|
|
|
|
f->is_ground_content = true;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->type = CMT_DIRT;
|
|
|
|
f->hardness = 1.0;
|
2014-10-24 07:35:58 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2015-07-30 00:37:52 -07:00
|
|
|
{
|
|
|
|
content_t r[9] = {
|
|
|
|
CONTENT_IGNORE, CONTENT_SPONGE, CONTENT_IGNORE,
|
|
|
|
CONTENT_CRAFTITEM_MITHRIL_UNBOUND, CONTENT_IGNORE, CONTENT_CRAFTITEM_MITHRIL_UNBOUND,
|
|
|
|
CONTENT_CRAFTITEM_MITHRIL_UNBOUND, CONTENT_CRAFTITEM_MITHRIL_UNBOUND, CONTENT_CRAFTITEM_MITHRIL_UNBOUND
|
|
|
|
};
|
|
|
|
crafting::setRecipe(r,CONTENT_LIFE_SUPPORT,1);
|
|
|
|
}
|
2014-10-22 10:54:02 -07:00
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
2015-02-14 23:50:16 -08:00
|
|
|
|
|
|
|
i = CONTENT_PARCEL;
|
|
|
|
f = &content_features(i);
|
|
|
|
f->description = wgettext("Parcel");
|
|
|
|
f->setAllTextures("parcel.png");
|
|
|
|
f->setTexture(0, "parcel_top.png");
|
|
|
|
f->setTexture(1, "parcel_bottom.png");
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->sunlight_propagates = true;
|
|
|
|
f->walkable = false;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->rotate_tile_with_nodebox = true;
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->is_ground_content = true;
|
|
|
|
f->buildable_to = true;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->air_equivalent = true; // grass grows underneath
|
2015-08-29 01:15:44 -07:00
|
|
|
f->borderstone_diggable = true;
|
2015-02-14 23:50:16 -08:00
|
|
|
content_nodebox_parcel(f);
|
|
|
|
f->setInventoryTextureNodeBox(i,"parcel_top.png", "parcel.png", "parcel.png");
|
|
|
|
f->type = CMT_DIRT;
|
2015-03-14 09:30:32 -07:00
|
|
|
f->hardness = 0.01;
|
2015-02-14 23:50:16 -08:00
|
|
|
f->suffocation_per_second = 0;
|
|
|
|
if (f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new ParcelNodeMetadata();
|
2015-06-05 13:41:42 -07:00
|
|
|
|
|
|
|
i = CONTENT_CAULDRON;
|
|
|
|
f = &content_features(i);
|
|
|
|
f->description = wgettext("Cauldron");
|
|
|
|
f->setAllTextures("cauldron_outer.png");
|
|
|
|
f->setAllMetaTextures("cauldron_inner.png");
|
|
|
|
f->setMetaTexture(0,"water.png");
|
|
|
|
f->draw_type = CDT_NODEBOX_META;
|
|
|
|
f->type = CMT_STONE;
|
|
|
|
f->hardness = 3.0;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
content_nodebox_cauldron(f);
|
|
|
|
f->setInventoryTextureNodeBox(i,"cauldron_outer.png", "cauldron_outer.png", "cauldron_outer.png");
|
|
|
|
if (f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new CauldronNodeMetadata();
|
|
|
|
crafting::setDeepURecipe(CONTENT_CRAFTITEM_STEEL_INGOT,CONTENT_CAULDRON);
|
|
|
|
f->pressure_type = CST_SOLID;
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
f->suffocation_per_second = 0;
|
2015-08-03 01:26:32 -07:00
|
|
|
|
|
|
|
i = CONTENT_FORGE;
|
|
|
|
f = &content_features(i);
|
|
|
|
f->description = wgettext("Forge");
|
|
|
|
f->setAllTextures("forge_side.png");
|
|
|
|
f->setTexture(0,"forge_top.png");
|
|
|
|
f->setTexture(1,"forge_bottom.png");
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->type = CMT_STONE;
|
|
|
|
f->hardness = 3.0;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
content_nodebox_forge(f);
|
|
|
|
f->setInventoryTextureNodeBox(i,"forge_top.png", "forge_side.png", "forge_side.png");
|
|
|
|
if (f->initial_metadata == NULL)
|
|
|
|
f->initial_metadata = new ForgeNodeMetadata();
|
|
|
|
{
|
|
|
|
content_t r[9] = {
|
|
|
|
CONTENT_ROUGHSTONE, CONTENT_CHARCOAL, CONTENT_ROUGHSTONE,
|
|
|
|
CONTENT_ROUGHSTONE, CONTENT_SAND, CONTENT_ROUGHSTONE,
|
|
|
|
CONTENT_ROUGHSTONE, CONTENT_STEEL, CONTENT_ROUGHSTONE
|
|
|
|
};
|
|
|
|
crafting::setRecipe(r,CONTENT_FORGE,1);
|
|
|
|
}
|
|
|
|
f->pressure_type = CST_SOLID;
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
|
|
|
f->suffocation_per_second = 0;
|
|
|
|
|
|
|
|
i = CONTENT_FORGE_FIRE;
|
|
|
|
f = &content_features(i);
|
|
|
|
f->description = wgettext("Forge Fire");
|
|
|
|
f->setAllTextures("forge_fire.png");
|
|
|
|
f->setAllTextureFlags(0);
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->draw_type = CDT_PLANTLIKE;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->light_source = LIGHT_MAX-4;
|
|
|
|
f->walkable = false;
|
|
|
|
f->pointable = false;
|
|
|
|
f->diggable = false;
|
|
|
|
f->buildable_to = true;
|
|
|
|
f->sound_ambient = "env-fire";
|
|
|
|
#ifndef SERVER
|
|
|
|
f->post_effect_color = video::SColor(192, 255, 64, 0);
|
|
|
|
#endif
|
|
|
|
f->pressure_type = CST_CRUSHED;
|
2016-07-30 04:27:52 -07:00
|
|
|
|
|
|
|
i = CONTENT_SCAFFOLDING;
|
|
|
|
f = &content_features(i);
|
|
|
|
f->description = wgettext("Scaffolding");
|
|
|
|
f->setAllTextures("wood.png");
|
|
|
|
f->air_equivalent = true;
|
|
|
|
f->climbable = true;
|
|
|
|
f->cook_result = std::string("CraftItem lump_of_charcoal 1");
|
|
|
|
f->draw_type = CDT_NODEBOX;
|
|
|
|
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
|
|
|
|
f->flammable = 1;
|
|
|
|
f->fuel_time = 30/4;
|
|
|
|
f->hardness = 0.75;
|
|
|
|
f->is_ground_content = true;
|
|
|
|
f->light_propagates = true;
|
|
|
|
f->param_type = CPT_LIGHT;
|
|
|
|
f->param2_type = CPT_FACEDIR_SIMPLE;
|
|
|
|
f->pressure_type = CST_CRUSHABLE;
|
|
|
|
f->type = CMT_WOOD;
|
|
|
|
f->walkable = false;
|
2016-08-03 11:52:38 -07:00
|
|
|
f->suffocation_per_second = 0;
|
2016-07-30 04:27:52 -07:00
|
|
|
content_nodebox_scaffolding(f);
|
|
|
|
f->setInventoryTextureNodeBox(i, "wood.png", "wood.png", "wood.png");
|
|
|
|
{
|
|
|
|
u16 r[9] = {
|
|
|
|
CONTENT_IGNORE, CONTENT_WOOD_SLAB, CONTENT_IGNORE,
|
|
|
|
CONTENT_CRAFTITEM_WOOD_PLANK, CONTENT_IGNORE, CONTENT_CRAFTITEM_WOOD_PLANK,
|
|
|
|
CONTENT_CRAFTITEM_WOOD_PLANK, CONTENT_CRAFTITEM_WOOD_PLANK, CONTENT_CRAFTITEM_WOOD_PLANK,
|
|
|
|
};
|
|
|
|
crafting::setRecipe(r,CONTENT_SCAFFOLDING,1);
|
|
|
|
}
|
|
|
|
lists::add("cooking",i);
|
|
|
|
lists::add("craftguide",i);
|
|
|
|
lists::add("creative",i);
|
2014-09-19 09:36:05 -07:00
|
|
|
}
|