add space suit, and materials to make them from... no textures yet

This commit is contained in:
darkrose 2014-10-23 20:53:52 +10:00
parent b329e5045d
commit c7c6a5c6f0
9 changed files with 616 additions and 66 deletions

View File

@ -55,14 +55,7 @@ void content_clothesitem_init()
f->armour = 0.10;
f->warmth = 0.30;
f->vacuum = 0.05;
{
content_t r[9] = {
CONTENT_CRAFTITEM_FUR, CONTENT_CRAFTITEM_FUR, CONTENT_CRAFTITEM_FUR,
CONTENT_CRAFTITEM_FUR, CONTENT_IGNORE, CONTENT_CRAFTITEM_FUR,
CONTENT_CRAFTITEM_FUR, CONTENT_IGNORE, CONTENT_CRAFTITEM_FUR
};
crafting::setRecipe(r,i,1);
}
crafting::setPantsRecipe(CONTENT_CRAFTITEM_FUR,i);
lists::add("craftguide",i);
lists::add("creative",i);
@ -76,14 +69,7 @@ void content_clothesitem_init()
f->armour = 0.10;
f->warmth = 0.30;
f->vacuum = 0.05;
{
content_t r[9] = {
CONTENT_CRAFTITEM_FUR, CONTENT_CRAFTITEM_FUR, CONTENT_CRAFTITEM_FUR,
CONTENT_IGNORE, CONTENT_CRAFTITEM_FUR, CONTENT_IGNORE,
CONTENT_IGNORE, CONTENT_CRAFTITEM_FUR, CONTENT_IGNORE
};
crafting::setRecipe(r,i,1);
}
crafting::setShirtRecipe(CONTENT_CRAFTITEM_FUR,i);
lists::add("craftguide",i);
lists::add("creative",i);
@ -97,14 +83,7 @@ void content_clothesitem_init()
f->armour = 0.05;
f->warmth = 0.20;
f->vacuum = 0.05;
{
content_t r[9] = {
CONTENT_CRAFTITEM_FUR, CONTENT_CRAFTITEM_FUR, CONTENT_CRAFTITEM_FUR,
CONTENT_CRAFTITEM_FUR, CONTENT_IGNORE, CONTENT_CRAFTITEM_FUR,
CONTENT_IGNORE, CONTENT_IGNORE, CONTENT_IGNORE
};
crafting::setRecipe(r,i,1);
}
crafting::setHatRecipe(CONTENT_CRAFTITEM_FUR,i);
lists::add("craftguide",i);
lists::add("creative",i);
@ -118,14 +97,63 @@ void content_clothesitem_init()
f->armour = 0.05;
f->warmth = 0.20;
f->vacuum = 0.05;
{
content_t r[9] = {
CONTENT_CRAFTITEM_FUR, CONTENT_IGNORE, CONTENT_CRAFTITEM_FUR,
CONTENT_CRAFTITEM_FUR, CONTENT_IGNORE, CONTENT_CRAFTITEM_FUR,
CONTENT_IGNORE, CONTENT_IGNORE, CONTENT_IGNORE
};
crafting::setRecipe(r,i,1);
}
crafting::setBootsRecipe(CONTENT_CRAFTITEM_FUR,i);
lists::add("craftguide",i);
lists::add("creative",i);
i = COTNENT_CLOTHESITEM_SPACESUIT_PANTS;
f = &g_content_clothesitem_features[i];
f->content = i;
f->texture = "clothes_spacepants.png";
f->overlay_texture = "clothes_player_spacepants.png";
f->description = wgettext("Space Suit Pants");
f->type = CT_PANTS;
f->armour = 0.10;
f->warmth = 0.15;
f->vacuum = 0.30;
crafting::setPantsRecipe(CONTENT_CRAFTITEM_CANVAS_SHEET,i);
lists::add("craftguide",i);
lists::add("creative",i);
i = COTNENT_CLOTHESITEM_SPACESUIT_SHIRT;
f = &g_content_clothesitem_features[i];
f->content = i;
f->texture = "clothes_spaceshirt.png";
f->overlay_texture = "clothes_player_spaceshirt.png";
f->description = wgettext("Space Suit Shirt");
f->type = CT_SHIRT;
f->armour = 0.10;
f->warmth = 0.15;
f->vacuum = 0.30;
crafting::setShirtRecipe(CONTENT_CRAFTITEM_CANVAS_SHEET,i);
lists::add("craftguide",i);
lists::add("creative",i);
i = COTNENT_CLOTHESITEM_SPACESUIT_HELMET;
f = &g_content_clothesitem_features[i];
f->content = i;
f->texture = "clothes_spacehelmet.png";
f->overlay_texture = "clothes_player_spacehelmet.png";
f->description = wgettext("Space Suit Helmet");
f->type = CT_HAT;
f->armour = 0.05;
f->warmth = 0.10;
f->vacuum = 0.20;
crafting::setHelmetRecipe(CONTENT_CRAFTITEM_CANVAS_SHEET,i);
lists::add("craftguide",i);
lists::add("creative",i);
i = COTNENT_CLOTHESITEM_SPACESUIT_BOOTS;
f = &g_content_clothesitem_features[i];
f->content = i;
f->texture = "clothes_spaceboots.png";
f->overlay_texture = "clothes_player_spaceboots.png";
f->description = wgettext("Space Suit Boots");
f->type = CT_BOOTS;
f->armour = 0.05;
f->warmth = 0.10;
f->vacuum = 0.20;
crafting::setBootsRecipe(CONTENT_CRAFTITEM_CANVAS_SHEET,i);
lists::add("craftguide",i);
lists::add("creative",i);
}

View File

@ -2,6 +2,7 @@
#define CONTENT_CLOTHESITEM_HEADER
#include "mapnode.h"
#include <map>
#define CONTENT_CLOTHESITEM_MASK 0x1000
@ -45,6 +46,7 @@ struct ClothesItemFeatures {
{}
};
extern std::map<content_t,struct ClothesItemFeatures> g_content_clothesitem_features;
// For getting the default properties, set id=CONTENT_IGNORE
void content_clothesitem_init();
ClothesItemFeatures & content_clothesitem_features(content_t i);
@ -53,5 +55,9 @@ ClothesItemFeatures & content_clothesitem_features(content_t i);
#define CONTENT_CLOTHESITEM_FUR_SHIRT (CONTENT_CLOTHESITEM_MASK | 0x02)
#define CONTENT_CLOTHESITEM_FUR_HAT (CONTENT_CLOTHESITEM_MASK | 0x03)
#define CONTENT_CLOTHESITEM_FUR_BOOTS (CONTENT_CLOTHESITEM_MASK | 0x04)
#define COTNENT_CLOTHESITEM_SPACESUIT_PANTS (CONTENT_CLOTHESITEM_MASK | 0x05)
#define COTNENT_CLOTHESITEM_SPACESUIT_SHIRT (CONTENT_CLOTHESITEM_MASK | 0x06)
#define COTNENT_CLOTHESITEM_SPACESUIT_HELMET (CONTENT_CLOTHESITEM_MASK | 0x07)
#define COTNENT_CLOTHESITEM_SPACESUIT_BOOTS (CONTENT_CLOTHESITEM_MASK | 0x08)
#endif

View File

@ -260,6 +260,16 @@ void setRow1Recipe(u16 input, u16 result)
};
setRecipe(r,result,1);
}
// three input in a horizontal row yields two result
void setRow2Recipe(u16 input, u16 result)
{
u16 r[9] = {
input, input, input,
CONTENT_IGNORE, CONTENT_IGNORE, CONTENT_IGNORE,
CONTENT_IGNORE, CONTENT_IGNORE, CONTENT_IGNORE
};
setRecipe(r,result,2);
}
// three input in a horizontal row yields three result
void setRow3Recipe(u16 input, u16 result)
{
@ -280,6 +290,16 @@ void setCol1Recipe(u16 input, u16 result)
};
setRecipe(r,result,1);
}
// three input in a vertical row yields two result
void setCol2Recipe(u16 input, u16 result)
{
u16 r[9] = {
CONTENT_IGNORE, input, CONTENT_IGNORE,
CONTENT_IGNORE, input, CONTENT_IGNORE,
CONTENT_IGNORE, input, CONTENT_IGNORE
};
setRecipe(r,result,2);
}
// three input in a vertical row yields three result
void setCol3Recipe(u16 input, u16 result)
{
@ -557,6 +577,66 @@ void setGateRecipe(u16 input1, u16 input2, u16 result)
};
setRecipe(r,result,1);
}
// pants recipe 7 input in an upside-down U yields one result
void setPantsRecipe(u16 input, u16 result)
{
u16 r[9] = {
input, input, input,
input, CONTENT_IGNORE, input,
input, CONTENT_IGNORE, input
};
setRecipe(r,result,1);
}
// shirt recipe 5 input in a T yields one result
void setShirtRecipe(u16 input, u16 result)
{
u16 r[9] = {
input, input, input,
CONTENT_IGNORE, input, CONTENT_IGNORE,
CONTENT_IGNORE, input, CONTENT_IGNORE
};
setRecipe(r,result,1);
}
// shirt recipe 5 input in a t yields one result
void setTShirtRecipe(u16 input, u16 result)
{
u16 r[9] = {
CONTENT_IGNORE, input, CONTENT_IGNORE,
input, input, input,
CONTENT_IGNORE, input, CONTENT_IGNORE
};
setRecipe(r,result,1);
}
// boots recipe 4 input in 2 separated columns yields one result
void setBootsRecipe(u16 input, u16 result)
{
u16 r[9] = {
input, CONTENT_IGNORE, input,
input, CONTENT_IGNORE, input,
CONTENT_IGNORE, CONTENT_IGNORE, CONTENT_IGNORE
};
setRecipe(r,result,1);
}
// hat recipe, 5 input in an upside down u yields one result
void setHatRecipe(u16 input, u16 result)
{
u16 r[9] = {
input, input, input,
input, CONTENT_IGNORE, input,
CONTENT_IGNORE, CONTENT_IGNORE, CONTENT_IGNORE
};
setRecipe(r,result,1);
}
// helmet recipe, 5 input in an upside down u around a glass pane yields one result
void setHelmetRecipe(u16 input, u16 result)
{
u16 r[9] = {
input, input, input,
input, CONTENT_GLASS_PANE, input,
CONTENT_IGNORE, CONTENT_IGNORE, CONTENT_IGNORE
};
setRecipe(r,result,1);
}
InventoryItem *getResult(InventoryItem **items)
{

View File

@ -202,10 +202,14 @@ namespace crafting {
void setURecipe(u16 input, u16 result);
// three input in a horizontal row yields one result
void setRow1Recipe(u16 input, u16 result);
// three input in a horizontal row yields two result
void setRow2Recipe(u16 input, u16 result);
// three input in a horizontal row yields three result
void setRow3Recipe(u16 input, u16 result);
// three input in a vertical row yields one result
void setCol1Recipe(u16 input, u16 result);
// three input in a vertical row yields two result
void setCol2Recipe(u16 input, u16 result);
// three input in a vertical row yields three result
void setCol3Recipe(u16 input, u16 result);
// six input as a stair yields six result
@ -248,6 +252,18 @@ namespace crafting {
void setSwordRecipe(u16 input, u16 result);
// gate recipe 1 2 1 in two rows yields one result
void setGateRecipe(u16 input1, u16 input2, u16 result);
// pants recipe 7 input in an upside-down U yields one result
void setPantsRecipe(u16 input, u16 result);
// shirt recipe 5 input in a T yields one result
void setShirtRecipe(u16 input, u16 result);
// shirt recipe 5 input in a t yields one result
void setTShirtRecipe(u16 input, u16 result);
// boots recipe 4 input in 2 separated columns yields one result
void setBootsRecipe(u16 input, u16 result);
// hat recipe, 5 input in an upside down u yields one result
void setHatRecipe(u16 input, u16 result);
// helmet recipe, 5 input in an upside down u around a glass pane yields one result
void setHelmetRecipe(u16 input, u16 result);
InventoryItem *getResult(InventoryItem **items);
content_t *getRecipe(InventoryItem *item);

View File

@ -678,6 +678,8 @@ void content_craftitem_init()
f->description = wgettext("Mese Dust");
f->drop_count = 1;
crafting::set1To2Recipe(CONTENT_MESE,CONTENT_CRAFTITEM_MESEDUST);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_RESIN;
f = &g_content_craftitem_features[i];
@ -686,6 +688,8 @@ void content_craftitem_init()
f->name = "lump_of_resin";
f->description = wgettext("Resin");
f->drop_count = 1;
lists::add("cooking",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_OERKKI_DUST;
f = &g_content_craftitem_features[i];
@ -719,14 +723,6 @@ void content_craftitem_init()
lists::add("creative",i);
lists::add("cooking",i);
i = CONTENT_CRAFTITEM_FUR;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_FUR;
f->texture = "fur.png";
f->name = "fur";
f->description = wgettext("Fur");
lists::add("creative",i);
i = CONTENT_CRAFTITEM_MEAT;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_MEAT;
@ -748,4 +744,371 @@ void content_craftitem_init()
lists::add("creative",i);
lists::add("cooking",i);
i = CONTENT_CRAFTITEM_COTTON_SHEET;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_COTTON_SHEET;
f->texture = "cotton_sheet.png";
f->name = "cotton_sheet";
f->description = wgettext("Cotton Sheet");
crafting::setRow2Recipe(CONTENT_CRAFTITEM_STRING,CONTENT_CRAFTITEM_COTTON_SHEET);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_STARCH,CONTENT_CRAFTITEM_COTTON_SHEET_BLUE,CONTENT_CRAFTITEM_COTTON_SHEET);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_STARCH,CONTENT_CRAFTITEM_COTTON_SHEET_GREEN,CONTENT_CRAFTITEM_COTTON_SHEET);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_STARCH,CONTENT_CRAFTITEM_COTTON_SHEET_ORANGE,CONTENT_CRAFTITEM_COTTON_SHEET);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_STARCH,CONTENT_CRAFTITEM_COTTON_SHEET_PURPLE,CONTENT_CRAFTITEM_COTTON_SHEET);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_STARCH,CONTENT_CRAFTITEM_COTTON_SHEET_RED,CONTENT_CRAFTITEM_COTTON_SHEET);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_STARCH,CONTENT_CRAFTITEM_COTTON_SHEET_YELLOW,CONTENT_CRAFTITEM_COTTON_SHEET);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_STARCH,CONTENT_CRAFTITEM_COTTON_SHEET_BLACK,CONTENT_CRAFTITEM_COTTON_SHEET);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_COTTON_SHEET_BLUE;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_COTTON_SHEET_BLUE;
f->texture = "cotton_sheet_blue.png";
f->name = "cotton_sheet_blue";
f->description = wgettext("Blue Cotton Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_COTTON_SHEET,CONTENT_CRAFTITEM_DYE_BLUE,CONTENT_CRAFTITEM_COTTON_SHEET_BLUE);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_COTTON_SHEET_GREEN;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_COTTON_SHEET_GREEN;
f->texture = "cotton_sheet_green.png";
f->name = "cotton_sheet_green";
f->description = wgettext("Green Cotton Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_COTTON_SHEET,CONTENT_CRAFTITEM_DYE_GREEN,CONTENT_CRAFTITEM_COTTON_SHEET_GREEN);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_COTTON_SHEET_ORANGE;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_COTTON_SHEET_ORANGE;
f->texture = "cotton_sheet_orange.png";
f->name = "cotton_sheet_orange";
f->description = wgettext("Orange Cotton Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_COTTON_SHEET,CONTENT_CRAFTITEM_DYE_ORANGE,CONTENT_CRAFTITEM_COTTON_SHEET_ORANGE);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_COTTON_SHEET_PURPLE;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_COTTON_SHEET_PURPLE;
f->texture = "cotton_sheet_purple.png";
f->name = "cotton_sheet_purple";
f->description = wgettext("Purple Cotton Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_COTTON_SHEET,CONTENT_CRAFTITEM_DYE_PURPLE,CONTENT_CRAFTITEM_COTTON_SHEET_PURPLE);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_COTTON_SHEET_RED;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_COTTON_SHEET_RED;
f->texture = "cotton_sheet_red.png";
f->name = "cotton_sheet_red";
f->description = wgettext("Red Cotton Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_COTTON_SHEET,CONTENT_CRAFTITEM_DYE_RED,CONTENT_CRAFTITEM_COTTON_SHEET_RED);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_COTTON_SHEET_YELLOW;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_COTTON_SHEET_YELLOW;
f->texture = "cotton_sheet_yellow.png";
f->name = "cotton_sheet_yellow";
f->description = wgettext("Yellow Cotton Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_COTTON_SHEET,CONTENT_CRAFTITEM_DYE_YELLOW,CONTENT_CRAFTITEM_COTTON_SHEET_YELLOW);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_COTTON_SHEET_BLACK;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_COTTON_SHEET_BLACK;
f->texture = "cotton_sheet_black.png";
f->name = "cotton_sheet_black";
f->description = wgettext("Black Cotton Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_COTTON_SHEET,CONTENT_CRAFTITEM_DYE_BLACK,CONTENT_CRAFTITEM_COTTON_SHEET_BLACK);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_CANVAS_SHEET;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_CANVAS_SHEET;
f->texture = "canvas_sheet.png";
f->name = "canvas_sheet";
f->description = wgettext("Canvas Sheet");
crafting::setCol2Recipe(CONTENT_CRAFTITEM_COTTON_SHEET,CONTENT_CRAFTITEM_CANVAS_SHEET);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_STARCH,CONTENT_CRAFTITEM_CANVAS_SHEET_BLUE,CONTENT_CRAFTITEM_CANVAS_SHEET);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_STARCH,CONTENT_CRAFTITEM_CANVAS_SHEET_GREEN,CONTENT_CRAFTITEM_CANVAS_SHEET);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_STARCH,CONTENT_CRAFTITEM_CANVAS_SHEET_ORANGE,CONTENT_CRAFTITEM_CANVAS_SHEET);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_STARCH,CONTENT_CRAFTITEM_CANVAS_SHEET_PURPLE,CONTENT_CRAFTITEM_CANVAS_SHEET);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_STARCH,CONTENT_CRAFTITEM_CANVAS_SHEET_RED,CONTENT_CRAFTITEM_CANVAS_SHEET);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_STARCH,CONTENT_CRAFTITEM_CANVAS_SHEET_YELLOW,CONTENT_CRAFTITEM_CANVAS_SHEET);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_STARCH,CONTENT_CRAFTITEM_CANVAS_SHEET_BLACK,CONTENT_CRAFTITEM_CANVAS_SHEET);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_CANVAS_SHEET_BLUE;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_CANVAS_SHEET_BLUE;
f->texture = "canvas_sheet_blue.png";
f->name = "canvas_sheet_blue";
f->description = wgettext("Blue Canvas Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_CANVAS_SHEET,CONTENT_CRAFTITEM_DYE_BLUE,CONTENT_CRAFTITEM_CANVAS_SHEET_BLUE);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_CANVAS_SHEET_GREEN;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_CANVAS_SHEET_GREEN;
f->texture = "canvas_sheet_green.png";
f->name = "canvas_sheet_green";
f->description = wgettext("Green Canvas Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_CANVAS_SHEET,CONTENT_CRAFTITEM_DYE_GREEN,CONTENT_CRAFTITEM_CANVAS_SHEET_GREEN);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_CANVAS_SHEET_ORANGE;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_CANVAS_SHEET_ORANGE;
f->texture = "canvas_sheet_orange.png";
f->name = "canvas_sheet_orange";
f->description = wgettext("Orange Canvas Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_CANVAS_SHEET,CONTENT_CRAFTITEM_DYE_ORANGE,CONTENT_CRAFTITEM_CANVAS_SHEET_ORANGE);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_CANVAS_SHEET_PURPLE;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_CANVAS_SHEET_PURPLE;
f->texture = "canvas_sheet_purple.png";
f->name = "canvas_sheet_purple";
f->description = wgettext("Purple Canvas Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_CANVAS_SHEET,CONTENT_CRAFTITEM_DYE_PURPLE,CONTENT_CRAFTITEM_CANVAS_SHEET_PURPLE);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_CANVAS_SHEET_RED;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_CANVAS_SHEET_RED;
f->texture = "canvas_sheet_red.png";
f->name = "canvas_sheet_red";
f->description = wgettext("Red Canvas Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_CANVAS_SHEET,CONTENT_CRAFTITEM_DYE_RED,CONTENT_CRAFTITEM_CANVAS_SHEET_RED);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_CANVAS_SHEET_YELLOW;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_CANVAS_SHEET_YELLOW;
f->texture = "canvas_sheet_yellow.png";
f->name = "canvas_sheet_yellow";
f->description = wgettext("Yellow Canvas Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_CANVAS_SHEET,CONTENT_CRAFTITEM_DYE_YELLOW,CONTENT_CRAFTITEM_CANVAS_SHEET_YELLOW);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_CANVAS_SHEET_BLACK;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_CANVAS_SHEET_BLACK;
f->texture = "canvas_sheet_black.png";
f->name = "canvas_sheet_black";
f->description = wgettext("Black Canvas Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_CANVAS_SHEET,CONTENT_CRAFTITEM_DYE_BLACK,CONTENT_CRAFTITEM_CANVAS_SHEET_BLACK);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_FUR;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_FUR;
f->texture = "fur.png";
f->name = "fur";
f->description = wgettext("Fur");
lists::add("creative",i);
i = CONTENT_CRAFTITEM_FUR_WHITE;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_FUR_WHITE;
f->texture = "fur_white.png";
f->name = "fur_white";
f->description = wgettext("White Fur");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR,CONTENT_CRAFTITEM_DYE_WHITE,CONTENT_CRAFTITEM_FUR_WHITE);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR,CONTENT_CRAFTITEM_STARCH,CONTENT_CRAFTITEM_FUR_WHITE);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_FUR_BLUE;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_FUR_BLUE;
f->texture = "fur_blue.png";
f->name = "fur_blue";
f->description = wgettext("Blue Fur");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR_WHITE,CONTENT_CRAFTITEM_DYE_BLUE,CONTENT_CRAFTITEM_FUR_BLUE);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR,CONTENT_CRAFTITEM_DYE_BLUE,CONTENT_CRAFTITEM_FUR_BLUE);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_FUR_GREEN;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_FUR_GREEN;
f->texture = "fur_green.png";
f->name = "fur_green";
f->description = wgettext("Green Fur");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR_WHITE,CONTENT_CRAFTITEM_DYE_GREEN,CONTENT_CRAFTITEM_FUR_GREEN);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR,CONTENT_CRAFTITEM_DYE_GREEN,CONTENT_CRAFTITEM_FUR_GREEN);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_FUR_ORANGE;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_FUR_ORANGE;
f->texture = "fur_orange.png";
f->name = "fur_orange";
f->description = wgettext("Orange Fur");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR_WHITE,CONTENT_CRAFTITEM_DYE_ORANGE,CONTENT_CRAFTITEM_FUR_ORANGE);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR,CONTENT_CRAFTITEM_DYE_ORANGE,CONTENT_CRAFTITEM_FUR_ORANGE);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_FUR_PURPLE;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_FUR_PURPLE;
f->texture = "fur_purple.png";
f->name = "fur_purple";
f->description = wgettext("Purple Fur");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR_WHITE,CONTENT_CRAFTITEM_DYE_PURPLE,CONTENT_CRAFTITEM_FUR_PURPLE);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR,CONTENT_CRAFTITEM_DYE_PURPLE,CONTENT_CRAFTITEM_FUR_PURPLE);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_FUR_RED;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_FUR_RED;
f->texture = "fur_red.png";
f->name = "fur_red";
f->description = wgettext("Red Fur");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR_WHITE,CONTENT_CRAFTITEM_DYE_RED,CONTENT_CRAFTITEM_FUR_RED);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR,CONTENT_CRAFTITEM_DYE_RED,CONTENT_CRAFTITEM_FUR_RED);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_FUR_YELLOW;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_FUR_YELLOW;
f->texture = "fur_yellow.png";
f->name = "fur_yellow";
f->description = wgettext("Yellow Fur");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR_WHITE,CONTENT_CRAFTITEM_DYE_YELLOW,CONTENT_CRAFTITEM_FUR_YELLOW);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR,CONTENT_CRAFTITEM_DYE_YELLOW,CONTENT_CRAFTITEM_FUR_YELLOW);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_FUR_BLACK;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_FUR_BLACK;
f->texture = "fur_black.png";
f->name = "fur_black";
f->description = wgettext("Black Fur");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR_WHITE,CONTENT_CRAFTITEM_DYE_BLACK,CONTENT_CRAFTITEM_FUR_BLACK);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR,CONTENT_CRAFTITEM_DYE_BLACK,CONTENT_CRAFTITEM_FUR_BLACK);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_LEATHER;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_LEATHER;
f->texture = "leather.png";
f->name = "leather";
f->description = wgettext("Leather");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR,CONTENT_CRAFTITEM_ASH,CONTENT_CRAFTITEM_LEATHER);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR,CONTENT_CRAFTITEM_MUSH,CONTENT_CRAFTITEM_LEATHER);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_LEATHER_WHITE;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_LEATHER_WHITE;
f->texture = "leather_white.png";
f->name = "leather_white";
f->description = wgettext("White Leather");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER,CONTENT_CRAFTITEM_DYE_WHITE,CONTENT_CRAFTITEM_LEATHER_WHITE);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER,CONTENT_CRAFTITEM_STARCH,CONTENT_CRAFTITEM_LEATHER_WHITE);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_LEATHER_BLUE;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_LEATHER_BLUE;
f->texture = "leather_blue.png";
f->name = "leather_blue";
f->description = wgettext("Blue Leather");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER_WHITE,CONTENT_CRAFTITEM_DYE_BLUE,CONTENT_CRAFTITEM_LEATHER_BLUE);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER,CONTENT_CRAFTITEM_DYE_BLUE,CONTENT_CRAFTITEM_LEATHER_BLUE);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_LEATHER_GREEN;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_LEATHER_GREEN;
f->texture = "leather_green.png";
f->name = "leather_green";
f->description = wgettext("Green Leather");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER_WHITE,CONTENT_CRAFTITEM_DYE_GREEN,CONTENT_CRAFTITEM_LEATHER_GREEN);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER,CONTENT_CRAFTITEM_DYE_GREEN,CONTENT_CRAFTITEM_LEATHER_GREEN);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_LEATHER_ORANGE;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_LEATHER_ORANGE;
f->texture = "leather_orange.png";
f->name = "leather_orange";
f->description = wgettext("Orange Leather");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER_WHITE,CONTENT_CRAFTITEM_DYE_ORANGE,CONTENT_CRAFTITEM_LEATHER_ORANGE);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER,CONTENT_CRAFTITEM_DYE_ORANGE,CONTENT_CRAFTITEM_LEATHER_ORANGE);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_LEATHER_PURPLE;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_LEATHER_PURPLE;
f->texture = "leather_purple.png";
f->name = "leather_purple";
f->description = wgettext("Purple Leather");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER_WHITE,CONTENT_CRAFTITEM_DYE_PURPLE,CONTENT_CRAFTITEM_LEATHER_PURPLE);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER,CONTENT_CRAFTITEM_DYE_PURPLE,CONTENT_CRAFTITEM_LEATHER_PURPLE);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_LEATHER_RED;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_LEATHER_RED;
f->texture = "leather_red.png";
f->name = "leather_red";
f->description = wgettext("Red Leather");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER_WHITE,CONTENT_CRAFTITEM_DYE_RED,CONTENT_CRAFTITEM_LEATHER_RED);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER,CONTENT_CRAFTITEM_DYE_RED,CONTENT_CRAFTITEM_LEATHER_RED);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_LEATHER_YELLOW;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_LEATHER_YELLOW;
f->texture = "leather_yellow.png";
f->name = "leather_yellow";
f->description = wgettext("Yellow Leather");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER_WHITE,CONTENT_CRAFTITEM_DYE_YELLOW,CONTENT_CRAFTITEM_LEATHER_YELLOW);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER,CONTENT_CRAFTITEM_DYE_YELLOW,CONTENT_CRAFTITEM_LEATHER_YELLOW);
lists::add("craftguide",i);
lists::add("creative",i);
i = CONTENT_CRAFTITEM_LEATHER_BLACK;
f = &g_content_craftitem_features[i];
f->content = CONTENT_CRAFTITEM_LEATHER_BLACK;
f->texture = "leather_black.png";
f->name = "leather_black";
f->description = wgettext("Black Leather");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER_WHITE,CONTENT_CRAFTITEM_DYE_BLACK,CONTENT_CRAFTITEM_LEATHER_BLACK);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER,CONTENT_CRAFTITEM_DYE_BLACK,CONTENT_CRAFTITEM_LEATHER_BLACK);
lists::add("craftguide",i);
lists::add("creative",i);
}

View File

@ -105,8 +105,41 @@ CraftItemFeatures & content_craftitem_features(std::string subname);
#define CONTENT_CRAFTITEM_OERKKI_DUST (CONTENT_CRAFTITEM_MASK | 0x44)
#define CONTENT_CRAFTITEM_FISH (CONTENT_CRAFTITEM_MASK | 0x45)
#define CONTENT_CRAFTITEM_COOKED_FISH (CONTENT_CRAFTITEM_MASK | 0x46)
#define CONTENT_CRAFTITEM_FUR (CONTENT_CRAFTITEM_MASK | 0x47)
#define CONTENT_CRAFTITEM_MEAT (CONTENT_CRAFTITEM_MASK | 0x48)
#define CONTENT_CRAFTITEM_COOKED_MEAT (CONTENT_CRAFTITEM_MASK | 0x49)
#define CONTENT_CRAFTITEM_MEAT (CONTENT_CRAFTITEM_MASK | 0x47)
#define CONTENT_CRAFTITEM_COOKED_MEAT (CONTENT_CRAFTITEM_MASK | 0x48)
#define CONTENT_CRAFTITEM_COTTON_SHEET (CONTENT_CRAFTITEM_MASK | 0x49)
#define CONTENT_CRAFTITEM_COTTON_SHEET_BLUE (CONTENT_CRAFTITEM_MASK | 0x4A)
#define CONTENT_CRAFTITEM_COTTON_SHEET_GREEN (CONTENT_CRAFTITEM_MASK | 0x4B)
#define CONTENT_CRAFTITEM_COTTON_SHEET_ORANGE (CONTENT_CRAFTITEM_MASK | 0x4C)
#define CONTENT_CRAFTITEM_COTTON_SHEET_PURPLE (CONTENT_CRAFTITEM_MASK | 0x4D)
#define CONTENT_CRAFTITEM_COTTON_SHEET_RED (CONTENT_CRAFTITEM_MASK | 0x4E)
#define CONTENT_CRAFTITEM_COTTON_SHEET_YELLOW (CONTENT_CRAFTITEM_MASK | 0x4F)
#define CONTENT_CRAFTITEM_COTTON_SHEET_BLACK (CONTENT_CRAFTITEM_MASK | 0x50)
#define CONTENT_CRAFTITEM_CANVAS_SHEET (CONTENT_CRAFTITEM_MASK | 0x51)
#define CONTENT_CRAFTITEM_CANVAS_SHEET_BLUE (CONTENT_CRAFTITEM_MASK | 0x52)
#define CONTENT_CRAFTITEM_CANVAS_SHEET_GREEN (CONTENT_CRAFTITEM_MASK | 0x53)
#define CONTENT_CRAFTITEM_CANVAS_SHEET_ORANGE (CONTENT_CRAFTITEM_MASK | 0x54)
#define CONTENT_CRAFTITEM_CANVAS_SHEET_PURPLE (CONTENT_CRAFTITEM_MASK | 0x55)
#define CONTENT_CRAFTITEM_CANVAS_SHEET_RED (CONTENT_CRAFTITEM_MASK | 0x56)
#define CONTENT_CRAFTITEM_CANVAS_SHEET_YELLOW (CONTENT_CRAFTITEM_MASK | 0x57)
#define CONTENT_CRAFTITEM_CANVAS_SHEET_BLACK (CONTENT_CRAFTITEM_MASK | 0x58)
#define CONTENT_CRAFTITEM_FUR (CONTENT_CRAFTITEM_MASK | 0x59)
#define CONTENT_CRAFTITEM_FUR_WHITE (CONTENT_CRAFTITEM_MASK | 0x5A)
#define CONTENT_CRAFTITEM_FUR_BLUE (CONTENT_CRAFTITEM_MASK | 0x5B)
#define CONTENT_CRAFTITEM_FUR_GREEN (CONTENT_CRAFTITEM_MASK | 0x5C)
#define CONTENT_CRAFTITEM_FUR_ORANGE (CONTENT_CRAFTITEM_MASK | 0x5D)
#define CONTENT_CRAFTITEM_FUR_PURPLE (CONTENT_CRAFTITEM_MASK | 0x5E)
#define CONTENT_CRAFTITEM_FUR_RED (CONTENT_CRAFTITEM_MASK | 0x5F)
#define CONTENT_CRAFTITEM_FUR_YELLOW (CONTENT_CRAFTITEM_MASK | 0x60)
#define CONTENT_CRAFTITEM_FUR_BLACK (CONTENT_CRAFTITEM_MASK | 0x61)
#define CONTENT_CRAFTITEM_LEATHER (CONTENT_CRAFTITEM_MASK | 0x62)
#define CONTENT_CRAFTITEM_LEATHER_WHITE (CONTENT_CRAFTITEM_MASK | 0x63)
#define CONTENT_CRAFTITEM_LEATHER_BLUE (CONTENT_CRAFTITEM_MASK | 0x64)
#define CONTENT_CRAFTITEM_LEATHER_GREEN (CONTENT_CRAFTITEM_MASK | 0x65)
#define CONTENT_CRAFTITEM_LEATHER_ORANGE (CONTENT_CRAFTITEM_MASK | 0x66)
#define CONTENT_CRAFTITEM_LEATHER_PURPLE (CONTENT_CRAFTITEM_MASK | 0x67)
#define CONTENT_CRAFTITEM_LEATHER_RED (CONTENT_CRAFTITEM_MASK | 0x68)
#define CONTENT_CRAFTITEM_LEATHER_YELLOW (CONTENT_CRAFTITEM_MASK | 0x69)
#define CONTENT_CRAFTITEM_LEATHER_BLACK (CONTENT_CRAFTITEM_MASK | 0x6A)
#endif

View File

@ -1236,7 +1236,7 @@ void content_mapnode_special(bool repeat)
f->setAllTextures("nc_side.png");
f->setTexture(5, "nc_front.png"); // Z-
f->setTexture(4, "nc_back.png"); // Z+
f->setInventoryTextureCube("nc_front.png", "nc_side.png", "nc_side.png");
f->setInventoryTextureCube("nc_side.png", "nc_front.png", "nc_side.png");
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
f->type = CMT_STONE;
f->hardness = 3.0;

View File

@ -179,6 +179,15 @@ enum ContentPressureType {
CST_CRUSHED // node is always obliterated when pushed
};
enum NodeTextureIndex {
NODETEXTURE_TOP = 0,
NODETEXTURE_BOTTOM,
NODETEXTURE_RIGHT,
NODETEXTURE_LEFT,
NODETEXTURE_BACK,
NODETEXTURE_FRONT
};
struct MapNode;
class NodeMetadata;

View File

@ -34,6 +34,7 @@
#endif
#include "settings.h"
#include "path.h"
#include "content_clothesitem.h"
Player::Player():
touching_ground(false),
@ -81,35 +82,49 @@ void Player::checkInventory()
inventory.addList("main", PLAYER_INVENTORY_SIZE);
if (!inventory.getList("hat"))
inventory.addList("hat",1);
{
InventoryList *l = inventory.getList("hat");
l->setStackable(false);
l->clearAllowed();
l->addAllowed(CONTENT_CLOTHESITEM_FUR_HAT);
}
if (!inventory.getList("shirt"))
inventory.addList("shirt",1);
{
InventoryList *l = inventory.getList("shirt");
l->setStackable(false);
l->clearAllowed();
l->addAllowed(CONTENT_CLOTHESITEM_FUR_SHIRT);
}
if (!inventory.getList("pants"))
inventory.addList("pants",1);
{
InventoryList *l = inventory.getList("pants");
l->setStackable(false);
l->clearAllowed();
l->addAllowed(CONTENT_CLOTHESITEM_FUR_PANTS);
}
if (!inventory.getList("boots"))
inventory.addList("boots",1);
// this allows only the correct clothing type in a player's
// relevant clothing slot
{
InventoryList *l = inventory.getList("boots");
l->setStackable(false);
l->clearAllowed();
l->addAllowed(CONTENT_CLOTHESITEM_FUR_BOOTS);
InventoryList *h = inventory.getList("hat");
InventoryList *s = inventory.getList("shirt");
InventoryList *p = inventory.getList("pants");
InventoryList *b = inventory.getList("boots");
h->setStackable(false);
h->clearAllowed();
s->setStackable(false);
s->clearAllowed();
p->setStackable(false);
p->clearAllowed();
b->setStackable(false);
b->clearAllowed();
for (
std::map<content_t,struct ClothesItemFeatures>::iterator i = g_content_clothesitem_features.begin();
i != g_content_clothesitem_features.end();
i++
) {
ClothesItemFeatures c = i->second;
switch (c.type) {
case CT_HAT:
h->addAllowed(c.content);
break;
case CT_SHIRT:
s->addAllowed(c.content);
break;
case CT_PANTS:
p->addAllowed(c.content);
break;
case CT_BOOTS:
b->addAllowed(c.content);
break;
default:;
}
}
}
if (!inventory.getList("discard"))
inventory.addList("discard",1);