aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2011-11-16 09:36:19 +0200
committerPerttu Ahola <celeron55@gmail.com>2011-11-29 19:13:46 +0200
commit50d63e4b0ac15ded5a9fb684586a88a91366d067 (patch)
tree291dcdfe499cf98e0fbfc0960077f3877a52419d /src
parent6a417c538f0af9e611d6f94cfb12d36f51982db8 (diff)
Add name field to ContentFeatures
Diffstat (limited to 'src')
-rw-r--r--src/content_mapnode.cpp41
-rw-r--r--src/nodedef.cpp13
-rw-r--r--src/nodedef.h5
3 files changed, 49 insertions, 10 deletions
diff --git a/src/content_mapnode.cpp b/src/content_mapnode.cpp
index c3e507e21..b836cb493 100644
--- a/src/content_mapnode.cpp
+++ b/src/content_mapnode.cpp
@@ -162,6 +162,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_STONE;
f = nodemgr->getModifiable(i);
+ f->name = "stone";
f->setAllTextures("stone.png");
f->setInventoryTextureCube("stone.png", "stone.png", "stone.png");
f->param_type = CPT_MINERAL;
@@ -172,6 +173,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_GRASS;
f = nodemgr->getModifiable(i);
+ f->name = "grass";
f->setAllTextures("mud.png^grass_side.png");
f->setTexture(0, "grass.png");
f->setTexture(1, "mud.png");
@@ -182,6 +184,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_GRASS_FOOTSTEPS;
f = nodemgr->getModifiable(i);
+ f->name = "grass_footsteps";
f->setAllTextures("mud.png^grass_side.png");
f->setTexture(0, "grass_footsteps.png");
f->setTexture(1, "mud.png");
@@ -192,6 +195,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_MUD;
f = nodemgr->getModifiable(i);
+ f->name = "dirt";
f->setAllTextures("mud.png");
f->setInventoryTextureCube("mud.png", "mud.png", "mud.png");
f->param_type = CPT_MINERAL;
@@ -201,6 +205,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_SAND;
f = nodemgr->getModifiable(i);
+ f->name = "sand";
f->setAllTextures("sand.png");
f->setInventoryTextureCube("sand.png", "sand.png", "sand.png");
f->param_type = CPT_MINERAL;
@@ -211,6 +216,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_GRAVEL;
f = nodemgr->getModifiable(i);
+ f->name = "gravel";
f->setAllTextures("gravel.png");
f->setInventoryTextureCube("gravel.png", "gravel.png", "gravel.png");
f->param_type = CPT_MINERAL;
@@ -220,6 +226,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_SANDSTONE;
f = nodemgr->getModifiable(i);
+ f->name = "sandstone";
f->setAllTextures("sandstone.png");
f->setInventoryTextureCube("sandstone.png", "sandstone.png", "sandstone.png");
f->param_type = CPT_MINERAL;
@@ -229,6 +236,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_CLAY;
f = nodemgr->getModifiable(i);
+ f->name = "clay";
f->setAllTextures("clay.png");
f->setInventoryTextureCube("clay.png", "clay.png", "clay.png");
f->param_type = CPT_MINERAL;
@@ -238,6 +246,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_BRICK;
f = nodemgr->getModifiable(i);
+ f->name = "brick";
f->setAllTextures("brick.png");
f->setInventoryTextureCube("brick.png", "brick.png", "brick.png");
f->param_type = CPT_MINERAL;
@@ -247,6 +256,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_TREE;
f = nodemgr->getModifiable(i);
+ f->name = "tree";
f->setAllTextures("tree.png");
f->setTexture(0, "tree_top.png");
f->setTexture(1, "tree_top.png");
@@ -259,6 +269,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_JUNGLETREE;
f = nodemgr->getModifiable(i);
+ f->name = "jungletree";
f->setAllTextures("jungletree.png");
f->setTexture(0, "jungletree_top.png");
f->setTexture(1, "jungletree_top.png");
@@ -269,6 +280,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_JUNGLEGRASS;
f = nodemgr->getModifiable(i);
+ f->name = "junglegrass";
f->drawtype = NDT_PLANTLIKE;
f->visual_scale = 1.3;
f->setAllTextures("junglegrass.png");
@@ -283,6 +295,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_LEAVES;
f = nodemgr->getModifiable(i);
+ f->name = "leaves";
f->drawtype = NDT_ALLFACES_OPTIONAL;
f->setAllTextures("leaves.png");
//f->setAllTextures("[noalpha:leaves.png");
@@ -296,6 +309,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_CACTUS;
f = nodemgr->getModifiable(i);
+ f->name = "cactus";
f->setAllTextures("cactus_side.png");
f->setTexture(0, "cactus_top.png");
f->setTexture(1, "cactus_top.png");
@@ -308,6 +322,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_PAPYRUS;
f = nodemgr->getModifiable(i);
+ f->name = "papyrus";
f->drawtype = NDT_PLANTLIKE;
f->setAllTextures("papyrus.png");
f->setInventoryTexture("papyrus.png");
@@ -321,6 +336,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_BOOKSHELF;
f = nodemgr->getModifiable(i);
+ f->name = "bookshelf";
f->setAllTextures("bookshelf.png");
f->setTexture(0, "wood.png");
f->setTexture(1, "wood.png");
@@ -334,6 +350,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_GLASS;
f = nodemgr->getModifiable(i);
+ f->name = "glass";
f->drawtype = NDT_GLASSLIKE;
f->setAllTextures("glass.png");
f->light_propagates = true;
@@ -346,6 +363,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_FENCE;
f = nodemgr->getModifiable(i);
+ f->name = "fence";
f->drawtype = NDT_FENCELIKE;
f->setInventoryTexture("fence.png");
f->setTexture(0, "wood.png");
@@ -362,6 +380,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_RAIL;
f = nodemgr->getModifiable(i);
+ f->name = "rail";
f->drawtype = NDT_RAILLIKE;
f->setInventoryTexture("rail.png");
f->setTexture(0, "rail.png");
@@ -380,6 +399,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_LADDER;
f = nodemgr->getModifiable(i);
+ f->name = "ladder";
f->drawtype = NDT_SIGNLIKE;
f->setAllTextures("ladder.png");
f->setInventoryTexture("ladder.png");
@@ -398,12 +418,14 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
// Deprecated
i = CONTENT_COALSTONE;
f = nodemgr->getModifiable(i);
+ f->name = "coalstone";
f->setAllTextures("stone.png^mineral_coal.png");
f->is_ground_content = true;
setStoneLikeMaterialProperties(f->material, 1.5);
i = CONTENT_WOOD;
f = nodemgr->getModifiable(i);
+ f->name = "wood";
f->setAllTextures("wood.png");
f->setInventoryTextureCube("wood.png", "wood.png", "wood.png");
f->is_ground_content = true;
@@ -413,6 +435,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_MESE;
f = nodemgr->getModifiable(i);
+ f->name = "mese";
f->setAllTextures("mese.png");
f->setInventoryTextureCube("mese.png", "mese.png", "mese.png");
f->is_ground_content = true;
@@ -422,6 +445,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_CLOUD;
f = nodemgr->getModifiable(i);
+ f->name = "cloud";
f->setAllTextures("cloud.png");
f->setInventoryTextureCube("cloud.png", "cloud.png", "cloud.png");
f->is_ground_content = true;
@@ -429,6 +453,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_AIR;
f = nodemgr->getModifiable(i);
+ f->name = "air";
f->param_type = CPT_LIGHT;
f->light_propagates = true;
f->sunlight_propagates = true;
@@ -440,6 +465,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_WATER;
f = nodemgr->getModifiable(i);
+ f->name = "water_flowing";
f->drawtype = NDT_FLOWINGLIQUID;
f->setAllTextures("water.png");
f->alpha = WATER_ALPHA;
@@ -460,6 +486,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_WATERSOURCE;
f = nodemgr->getModifiable(i);
+ f->name = "water_source";
f->drawtype = NDT_LIQUID;
f->setAllTextures("water.png");
f->alpha = WATER_ALPHA;
@@ -481,6 +508,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_LAVA;
f = nodemgr->getModifiable(i);
+ f->name = "lava_flowing";
f->drawtype = NDT_FLOWINGLIQUID;
f->setAllTextures("lava.png");
f->setInventoryTextureCube("lava.png", "lava.png", "lava.png");
@@ -502,6 +530,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_LAVASOURCE;
f = nodemgr->getModifiable(i);
+ f->name = "lava_source";
f->drawtype = NDT_LIQUID;
f->setAllTextures("lava.png");
f->setInventoryTextureCube("lava.png", "lava.png", "lava.png");
@@ -525,6 +554,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_TORCH;
f = nodemgr->getModifiable(i);
+ f->name = "torch";
f->drawtype = NDT_TORCHLIKE;
f->setTexture(0, "torch_on_floor.png");
f->setTexture(1, "torch_on_ceiling.png");
@@ -550,6 +580,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_SIGN_WALL;
f = nodemgr->getModifiable(i);
+ f->name = "sign_wall";
f->drawtype = NDT_SIGNLIKE;
f->setAllTextures("sign_wall.png");
f->setInventoryTexture("sign_wall.png");
@@ -568,6 +599,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_CHEST;
f = nodemgr->getModifiable(i);
+ f->name = "chest";
f->param_type = CPT_FACEDIR_SIMPLE;
f->setAllTextures("chest_side.png");
f->setTexture(0, "chest_top.png");
@@ -583,6 +615,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_LOCKABLE_CHEST;
f = nodemgr->getModifiable(i);
+ f->name = "locked_chest";
f->param_type = CPT_FACEDIR_SIMPLE;
f->setAllTextures("chest_side.png");
f->setTexture(0, "chest_top.png");
@@ -598,6 +631,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_FURNACE;
f = nodemgr->getModifiable(i);
+ f->name = "furnace";
f->param_type = CPT_FACEDIR_SIMPLE;
f->setAllTextures("furnace_side.png");
f->setTexture(5, "furnace_front.png"); // Z-
@@ -610,6 +644,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_COBBLE;
f = nodemgr->getModifiable(i);
+ f->name = "cobble";
f->setAllTextures("cobble.png");
f->setInventoryTextureCube("cobble.png", "cobble.png", "cobble.png");
f->param_type = CPT_NONE;
@@ -620,6 +655,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_MOSSYCOBBLE;
f = nodemgr->getModifiable(i);
+ f->name = "mossycobble";
f->setAllTextures("mossycobble.png");
f->setInventoryTextureCube("mossycobble.png", "mossycobble.png", "mossycobble.png");
f->param_type = CPT_NONE;
@@ -629,6 +665,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_STEEL;
f = nodemgr->getModifiable(i);
+ f->name = "steelblock";
f->setAllTextures("steel_block.png");
f->setInventoryTextureCube("steel_block.png", "steel_block.png",
"steel_block.png");
@@ -639,6 +676,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_NC;
f = nodemgr->getModifiable(i);
+ f->name = "nyancat";
f->param_type = CPT_FACEDIR_SIMPLE;
f->setAllTextures("nc_side.png");
f->setTexture(5, "nc_front.png"); // Z-
@@ -650,6 +688,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_NC_RB;
f = nodemgr->getModifiable(i);
+ f->name = "nyancat_rainbow";
f->setAllTextures("nc_rb.png");
f->setInventoryTexture("nc_rb.png");
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
@@ -658,6 +697,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_SAPLING;
f = nodemgr->getModifiable(i);
+ f->name = "sapling";
f->drawtype = NDT_PLANTLIKE;
f->visual_scale = 1.0;
f->setAllTextures("sapling.png");
@@ -672,6 +712,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
i = CONTENT_APPLE;
f = nodemgr->getModifiable(i);
+ f->name = "apple";
f->drawtype = NDT_PLANTLIKE;
f->visual_scale = 1.0;
f->setAllTextures("apple.png");
diff --git a/src/nodedef.cpp b/src/nodedef.cpp
index 210e466d2..166d9cba0 100644
--- a/src/nodedef.cpp
+++ b/src/nodedef.cpp
@@ -114,10 +114,10 @@ void ContentFeatures::reset()
backface_culling = true;
#endif
used_texturenames.clear();
- modified = true; // NodeDefManager explicitly sets to false
/*
Actual data
*/
+ name = "";
drawtype = NDT_NORMAL;
visual_scale = 1.0;
for(u32 i=0; i<6; i++)
@@ -159,6 +159,7 @@ void ContentFeatures::reset()
void ContentFeatures::serialize(std::ostream &os)
{
writeU8(os, 0); // version
+ os<<serializeString(name);
writeU8(os, drawtype);
writeF1000(os, visual_scale);
writeU8(os, 6);
@@ -213,6 +214,7 @@ void ContentFeatures::deSerialize(std::istream &is, IGameDef *gamedef)
int version = readU8(is);
if(version != 0)
throw SerializationError("unsupported ContentFeatures version");
+ name = deSerializeString(is);
drawtype = (enum NodeDrawType)readU8(is);
visual_scale = readF1000(is);
if(readU8(is) != 6)
@@ -320,13 +322,11 @@ public:
{
ContentFeatures *f = &m_content_features[i];
f->reset(); // Reset to defaults
- f->modified = false; // Not changed from default
if(i == CONTENT_IGNORE || i == CONTENT_AIR){
f->drawtype = NDT_AIRLIKE;
continue;
}
f->setAllTextures("unknown_block.png");
- //f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
}
#ifndef SERVER
// Make CONTENT_IGNORE to not block the view when occlusion culling
@@ -361,14 +361,14 @@ public:
// Writable
virtual void set(content_t c, const ContentFeatures &def)
{
- infostream<<"registerNode: registering content \""<<c<<"\""<<std::endl;
+ infostream<<"registerNode: registering content id \""<<c
+ <<"\": name=\""<<def.name<<"\""<<std::endl;
assert(c <= MAX_CONTENT);
m_content_features[c] = def;
}
virtual ContentFeatures* getModifiable(content_t c)
{
assert(c <= MAX_CONTENT);
- m_content_features[c].modified = true; // Assume it is modified
return &m_content_features[c];
}
virtual void updateTextures(ITextureSource *tsrc)
@@ -500,7 +500,7 @@ public:
for(u16 i=0; i<=MAX_CONTENT; i++)
{
ContentFeatures *f = &m_content_features[i];
- if(!f->modified)
+ if(f->name == "")
continue;
writeU16(tmp_os, i);
f->serialize(tmp_os);
@@ -523,7 +523,6 @@ public:
}
ContentFeatures *f = &m_content_features[i];
f->deSerialize(tmp_is, gamedef);
- f->modified = true;
}
}
private:
diff --git a/src/nodedef.h b/src/nodedef.h
index b29f21734..a29626b10 100644
--- a/src/nodedef.h
+++ b/src/nodedef.h
@@ -138,13 +138,12 @@ struct ContentFeatures
// the texture atlas
std::set<std::string> used_texturenames;
- // True if this actually contains non-default data
- bool modified;
-
/*
Actual data
*/
+ std::string name; // "" = undefined node
+
// Visual definition
enum NodeDrawType drawtype;
float visual_scale; // Misc. scale parameter
uot; "Controlleur ATC, mode @1\n" "Commande : @2" #: advtrains/atc.lua msgid "Command" msgstr "Commande" #: advtrains/atc.lua msgid "Command (on)" msgstr "Commande (marche)" #: advtrains/atc.lua msgid "Digiline channel" msgstr "Canal Digiline" #: advtrains/atc.lua advtrains_line_automation/stoprail.lua #: advtrains_luaautomation/active_common.lua msgid "Save" msgstr "Sauvegarder" #: advtrains/atc.lua msgid "Unconfigured ATC controller" msgstr "Controlleur ATC, non-configuré" #: advtrains/copytool.lua msgid "Back of train would end up off track, cancelling." msgstr "La fin du train serait hors voie : annulation." #: advtrains/copytool.lua msgid "No such lua entity." msgstr "Pas de telle entité lua." #: advtrains/copytool.lua msgid "No such train: @1." msgstr "Pas de tel train : @1." #: advtrains/copytool.lua msgid "No such wagon: @1." msgstr "Pas de tel wagon : @1." #: advtrains/copytool.lua msgid "The clipboard couldn't access the metadata. Copy failed." msgstr "Le presse-papier ne peut accéder aux métadonnées. Échec de la copie." #: advtrains/copytool.lua msgid "The clipboard couldn't access the metadata. Paste failed." msgstr "Le presse-papier ne peut accéder aux métadonnées. Échec du collage." #: advtrains/copytool.lua msgid "The clipboard is empty." msgstr "Le presse-papier est vide." #: advtrains/copytool.lua msgid "The track you are trying to place the wagon on is not long enough." msgstr "La voie sur laquelle vous tentez de placer le wagon est trop courte." #: advtrains/copytool.lua msgid "Train copied." msgstr "Train copié." #: advtrains/copytool.lua msgid "" "Train copy/paste tool\n" "\n" "Left-click: copy train\n" "Right-click: paste train" msgstr "" "Outil de copie/collage de train\n" "\n" "Clic-Gauche : copie\n" "\n" "Clic-Droit : collage" #: advtrains/copytool.lua msgid "You do not have the @1 privilege." msgstr "Vous ne possédez pas le privilège \"@1\"." #: advtrains/couple.lua msgid "<No coupler>" msgstr "<Pas de coupleur>" #: advtrains/couple.lua msgid "Buffer and Chain Coupler" msgstr "Attelage à tampon et vis" #: advtrains/couple.lua msgid "Can not couple: The couplers of the trains do not match (@1 and @2)." msgstr "" "Accouplement impossible: les attelages des trains ne concordent pas (@1 et " "@2)." #: advtrains/couple.lua msgid "Scharfenberg Coupler" msgstr "Attelage Scharfenberg" #: advtrains/couple.lua msgid "" "You are not allowed to couple trains without the train_operator privilege." msgstr "" "Vous n'êtes pas autorisé à coupler des trains sans le privilège " "\"train_operator\"." #: advtrains/craft_items.lua msgid "Boiler" msgstr "Chaudière à vapeur" #: advtrains/craft_items.lua msgid "Chimney" msgstr "Cheminée" #: advtrains/craft_items.lua msgid "Driver's cab" msgstr "Cabine de pilotage" #: advtrains/craft_items.lua msgid "Wheel" msgstr "Roue" #: advtrains/misc_nodes.lua msgid "@1 Platform (45 degree)" msgstr "Quai @1 (haut, 45°)" #: advtrains/misc_nodes.lua msgid "@1 Platform (high)" msgstr "Quai @1 (haut)" #: advtrains/misc_nodes.lua msgid "@1 Platform (low)" msgstr "Quai @1 (bas)" #: advtrains/misc_nodes.lua msgid "@1 Platform (low, 45 degree)" msgstr "Quai @1 (bas, 45°)" #: advtrains/protection.lua msgid "Can operate turnouts and signals in unprotected areas" msgstr "" "Possibilité d'opérer des embranchements et signaux dans les zones non " "protégées" #: advtrains/protection.lua msgid "Can place and dig tracks in unprotected areas" msgstr "Possibilité de poser ou retirer des voies dans les zones non protégées" #: advtrains/protection.lua msgid "" "Can place, remove and operate any train, regardless of owner, whitelist, or " "protection" msgstr "" "Possibilité de poser, retirer ou opérer un quelconque train, indépendamment " "du propriétaire, de la liste blanche ou de protection" #: advtrains/protection.lua msgid "Can place, remove and operate trains" msgstr "Possibilité de poser, retirer ou opérer les trains" #: advtrains/protection.lua msgid "You are not allowed to build near tracks at this protected position." msgstr "" "Vous ne pouvez pas construire à proximité d'une voie à cet emplacement " "protégé." #: advtrains/protection.lua msgid "" "You are not allowed to build near tracks without the track_builder privilege." msgstr "" "Vous ne pouvez pas construire à proximité d'une voie sans le privilège " "\"track_builder\" (?)" #: advtrains/protection.lua msgid "You are not allowed to build tracks at this protected position." msgstr "Vous ne pouvez pas construire une voie à cet emplacement protégé." #: advtrains/protection.lua msgid "" "You are not allowed to build tracks without the track_builder privilege." msgstr "" "Vous ne pouvez pas construire une voie sans le privilège \"track_builder\"." #: advtrains/protection.lua msgid "" "You are not allowed to operate turnouts and signals without the " "railway_operator privilege." msgstr "" "Vous ne pouvez pas actionner les aiguillages ou les signaux (privilège " "\"railway_operator\" manquant)" #: advtrains/signals.lua msgid "Andrew's Cross" msgstr "Croix de Saint André" #: advtrains/signals.lua msgid "Lampless Signal" msgstr "Sémaphore" #: advtrains/signals.lua msgid "Signal" msgstr "Signal" #: advtrains/signals.lua msgid "Wallmounted Signal (left)" msgstr "Signal mural (gauche)" #: advtrains/signals.lua msgid "Wallmounted Signal (right)" msgstr "Signal mural (droit)" #: advtrains/signals.lua msgid "Wallmounted Signal (top)" msgstr "Signal mural (plafond)" #: advtrains/trackplacer.lua msgid "This node can't be changed using the trackworker." msgstr "Ce nœud ne peut être modifié avec l'outil \"Trackworker\"." #: advtrains/trackplacer.lua msgid "This node can't be rotated using the trackworker." msgstr "Ce nœud ne peut être tourné avec l'outil \"Trackworker\"." #: advtrains/trackplacer.lua msgid "This track can not be changed." msgstr "Cette voie ne peut pas être modifiée." #: advtrains/trackplacer.lua msgid "This track can not be rotated." msgstr "Cette voie ne peut pas être tournée." #: advtrains/trackplacer.lua msgid "" "Track Worker Tool\n" "\n" "Left-click: change rail type (straight/curve/switch)\n" "Right-click: rotate object" msgstr "" "Outil \"Trackworker\"\n" "\n" "Clic-Gauche : change le type de rail (droit/courbé/aiguillage)\n" "\n" "Clic-Droit : tourne l'objet" #: advtrains/tracks.lua msgid "@1 Slope" msgstr "Pente @1" #: advtrains/tracks.lua msgid "Can't place slope: Not enough slope items left (@1 required)." msgstr "" "Placement impossible : quantité insuffisante de voie pentue (@1 manquant)." #: advtrains/tracks.lua msgid "Can't place slope: There's no slope of length @1." msgstr "Placement impossible : il n'y a pas de voie pentue de longueur @1." #: advtrains/tracks.lua msgid "Can't place slope: no supporting node at upper end." msgstr "Placement impossible : pas de nœud d'appui à l'extrémité supérieure." #: advtrains/tracks.lua msgid "Can't place slope: not pointing at node." msgstr "Placement impossible : ne pointe pas un nœud." #: advtrains/tracks.lua msgid "Can't place slope: space occupied." msgstr "Placement impossible : espace occupé." #: advtrains/tracks.lua msgid "Position is occupied by a train." msgstr "Cet emplacement est occupé par un train." #: advtrains/tracks.lua msgid "There's a Signal Influence Point here." msgstr "Il y a un \"Signal Influence Point\" ici." #: advtrains/tracks.lua msgid "There's a Track Circuit Break here." msgstr "Il y a un \"Track Circuit Break\" ici." #: advtrains/tracks.lua msgid "This track can not be removed." msgstr "Cette voie ne peut pas être enlevée." #: advtrains/trainhud.lua msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again." msgstr "" "Franchissement de signal rouge : examinez la situation et inversez le sens " "de marche du train." #: advtrains/wagonprop_tool.lua msgid "Insufficient privileges to use this!" msgstr "" #: advtrains/wagonprop_tool.lua #, fuzzy msgid "Wagon Properties Tool" msgstr "Propriétés du wagon" #: advtrains/wagonprop_tool.lua msgid "" "Wagon Properties Tool\n" "Punch a wagon to view and edit the Wagon Properties" msgstr "" #: advtrains/wagons.lua msgid "(Doors closed)" msgstr "(Portes closes)" #: advtrains/wagons.lua msgid "Doors are closed! (Try holding sneak key!)" msgstr "Portes closes : (Essayez la \"sneak key\"!\")" #: advtrains/wagons.lua msgid "" "Doors are closed. Use Sneak+rightclick to ignore the closed doors and get " "off." msgstr "" "Portes closes ! Utilisez \"Marcher lentement (Sneak)\" et Clic-Droit pour " "franchir les portes et débarquer." #: advtrains/wagons.lua msgid "Get off" msgstr "Débarquer" #: advtrains/wagons.lua msgid "Get off (forced)" msgstr "Débarquer (de force)" #: advtrains/wagons.lua msgid "Line" msgstr "Ligne" #: advtrains/wagons.lua msgid "Onboard Computer" msgstr "Ordinateur embarqué" #: advtrains/wagons.lua msgid "Routingcode" msgstr "Code de routage" #: advtrains/wagons.lua msgid "Save wagon properties" msgstr "Sauvegarder les propriétés du wagon" #: advtrains/wagons.lua msgid "Select seat:" msgstr "Choisir le siège :" #: advtrains/wagons.lua msgid "Show Inventory"