Laserlicht vor 3 Wochen
Ursprung
Commit
c9d866aed8

+ 17 - 0
lib/mapObjectConstructors/CommonConstructors.cpp

@@ -25,6 +25,7 @@
 #include "../mapping/TerrainTile.h"
 #include "../modding/IdentifierStorage.h"
 #include "../texts/TextIdentifier.h"
+#include "../texts/CGeneralTextHandler.h"
 
 VCMI_LIB_NAMESPACE_BEGIN
 
@@ -99,6 +100,12 @@ void MineInstanceConstructor::initTypeData(const JsonNode & input)
 	{
 		resourceType = GameResID(index);
 	});
+
+	if (!config["name"].isNull())
+		LIBRARY->generaltexth->registerString(config.getModScope(), getNameTextID(), config["name"]);
+
+	if (!config["description"].isNull())
+		LIBRARY->generaltexth->registerString(config.getModScope(), getDescriptionTextID(), config["description"]);
 }
 
 GameResID MineInstanceConstructor::getResourceType() const
@@ -106,6 +113,16 @@ GameResID MineInstanceConstructor::getResourceType() const
 	return resourceType;
 }
 
+std::string MineInstanceConstructor::getDescriptionTextID() const
+{
+	return TextIdentifier(getBaseTextID(), "description").get();
+}
+
+std::string MineInstanceConstructor::getDescriptionTranslated() const
+{
+	return LIBRARY->generaltexth->translate(getDescriptionTextID());
+}
+
 void CTownInstanceConstructor::initTypeData(const JsonNode & input)
 {
 	LIBRARY->identifiers()->requestIdentifier("faction", input["faction"], [&](si32 index)

+ 2 - 0
lib/mapObjectConstructors/CommonConstructors.h

@@ -70,6 +70,8 @@ public:
 	void initTypeData(const JsonNode & input) override;
 
 	GameResID getResourceType() const;
+	std::string getDescriptionTextID() const;
+	std::string getDescriptionTranslated() const;
 };
 
 class CTownInstanceConstructor : public CDefaultObjectTypeHandler<CGTownInstance>

+ 2 - 2
lib/mapObjects/MiscObjects.cpp

@@ -171,7 +171,7 @@ std::string CGMine::getObjectName() const
 	if(getResourceHandler()->getResourceType() == GameResID::NONE || getObjTypeIndex() < GameConstants::RESOURCE_QUANTITY)
 		return LIBRARY->generaltexth->translate("core.minename", getObjTypeIndex());
 	else
-		return getResourceHandler()->getResourceType().toResource()->getNameTranslated() + " " + LIBRARY->generaltexth->translate("core.genrltxt.617"); // TODO: new strings for new mines
+		return getResourceHandler()->getNameTranslated();
 }
 
 std::string CGMine::getHoverText(PlayerColor player) const
@@ -201,7 +201,7 @@ void CGMine::flagMine(IGameEventCallback & gameEvents, const PlayerColor & playe
 	if(getResourceHandler()->getResourceType() == GameResID::NONE || getObjTypeIndex() < GameConstants::RESOURCE_QUANTITY)
 		iw.text.appendTextID(TextIdentifier("core.mineevnt", producedResource.getNum()).get()); //not use subID, abandoned mines uses default mine texts
 	else
-		iw.text.appendRawString(getObjectName()); // TODO: new strings for new mines
+		iw.text.appendRawString(getResourceHandler()->getDescriptionTranslated());
 	iw.player = player;
 	iw.components.emplace_back(ComponentType::RESOURCE_PER_DAY, producedResource, getProducedQuantity());
 	gameEvents.showInfoDialog(&iw);