craftworkgames / MonoGame.Extended

Extensions to make MonoGame more awesome
http://www.monogameextended.net/
Other
1.44k stars 324 forks source link

TileMapReader Could not find ContentTypeReader #955

Open frits191 opened 1 month ago

frits191 commented 1 month ago

Originally posted by @frits191 in https://github.com/craftworkgames/MonoGame.Extended/issues/816#issuecomment-2403712262

Heya! I'm currently experiencing this exact problem with 4.0.3, OnLoad I get the could not find content type warning. should I copy just the TiledMapReader class? Or rather the whole tiled folder? Not really sure what the answer of the original one meant. Any help would be greatly appreciated!

The error: Could not find ContentTypeReader Type. Please ensure the name of the Assembly that contains the Type matches the assembly in the full type name: MonoGame.Extended.Tiled.TiledMapReader, MonoGame.Extended.Tiled (MonoGame.Extended.Tiled.TiledMapReader, MonoGame.Extended.Tiled)'

What is failing: _tiledMap = this.Content.Load<TiledMap>("TileMaps/Grass");

frits191 commented 1 month ago

If it helps, I originally started this project on 3.8 and then upgraded to 4 by removing the plugins and then installing the new ones via nuget

AristurtleDev commented 3 weeks ago

@frits191 catching up on some issues, are you still experiencing this problem?

kevld commented 2 weeks ago

Hi, I encountered the same issue, I'll try to investigate tomorrow Meanwhile, here is a zip containing my tmx map if it helps (taken from a github repo) I tried with the included map DebugScene Maps.zip

kevld commented 2 weeks ago

Ok, I have more data, hope it helps !

I work on mac and windows. On mac the issue is not present On windows the issue is present.

BUT, on windows, if I target Windows as OS, and use MonoGame.Framework.WindowsDX as nuget instead of the OpenGL one, I don't have any issue

I'll try when i'll have time on simple project to see if the issue comes from Monogame.Extended or juste Monogame

Also it maybe is a beginner error, I'm pretty new with MonoGame

nkast commented 2 weeks ago

Since the libraries were merged together into a single library, there isn't a MonoGame.Extended.Tiled dll anymore. The reader sould be in MonoGame.Extended.dll.

The xnb should had the following typereader MonoGame.Extended.Tiled.TiledMapReader, MonoGame.Extended

I checked the Writer, because I originally had the typereader hardcoded as a literal, and it is now updated to return a typeof(reader), which should work.

Maybe you are using old .xnb. make sure you clean the project. Delete the \bin\ and \obj\ folder inside your \Content\ to be sure.

Or maybe you are using the old importer. Check inside .mgcb and see where the \reference: for MGE pipeline is pointing to. Verify that the dll is the latest version.

You can inspect the .xnb by opening it in a hex editor or notepad. It's binary, but the type readers are readable text at the begining. You have to disable compression in the .mgcb to be able to read them.