Browse Source

correctly register them

Laserlicht 2 tháng trước cách đây
mục cha
commit
a4b09f8310

+ 1 - 0
client/adventureMap/AdventureMapWidget.cpp

@@ -160,6 +160,7 @@ std::shared_ptr<CIntObject> AdventureMapWidget::buildMapButton(const JsonNode &
 		auto assetGenerator = ENGINE->renderHandler().getAssetGenerator();
 		auto layout = assetGenerator->createAdventureMapButton(ImagePath::fromJson(input["generateFromBaseImage"]), small);
 		assetGenerator->addAnimationFile(AnimationPath::builtin("SPRITES/" + input["image"].String()), layout);
+		ENGINE->renderHandler().updateGeneratedAssets();
 	}
 
 	auto button = std::make_shared<CButton>(position.topLeft(), image, help, 0, EShortcut::NONE, playerColored);

+ 2 - 0
client/render/IRenderHandler.h

@@ -55,4 +55,6 @@ public:
 	virtual void exportGeneratedAssets() = 0;
 
 	virtual std::shared_ptr<AssetGenerator> getAssetGenerator() = 0;
+
+	virtual void updateGeneratedAssets() = 0;
 };

+ 6 - 1
client/renderSDL/RenderHandler.cpp

@@ -486,7 +486,7 @@ void RenderHandler::onLibraryLoadingFinished(const Services * services)
 {
 	assert(animationLayouts.empty());
 	assetGenerator->initialize();
-	animationLayouts = assetGenerator->generateAllAnimations();
+	updateGeneratedAssets();
 
 	addImageListEntries(services->creatures());
 	addImageListEntries(services->heroTypes());
@@ -545,3 +545,8 @@ std::shared_ptr<AssetGenerator> RenderHandler::getAssetGenerator()
 {
 	return assetGenerator;
 }
+
+void RenderHandler::updateGeneratedAssets()
+{
+	animationLayouts = assetGenerator->generateAllAnimations();
+}

+ 1 - 0
client/renderSDL/RenderHandler.h

@@ -69,4 +69,5 @@ public:
 	void exportGeneratedAssets() override;
 
 	std::shared_ptr<AssetGenerator> getAssetGenerator() override;
+	void updateGeneratedAssets() override;
 };