• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Tool: Tilemap Creator

3,830
Posts
14
Years
  • Age 27
  • OH
  • Seen Feb 26, 2024
I think it would be nice if the "palette tile editor" had an "select area" function. You just select your area (something like selecting in any photo software) and change every tile in this selection to the one you choose :)

If you mean like filling everything in a selected box, I could possibly do something like that. We'll see.

I tried it. Works fine, but still doesn't support horizontal/vertical flip. I will really need this feature when creating more than one townmap for my hack.

Good to know that my program works as intended. I agree that it would be cool if I implemented tile flipping, but it's kinda difficult to do, so it's not a priority.
 

daniilS

busy trying to do stuff not done yet
409
Posts
10
Years
  • Age 24
  • Seen Jan 29, 2024
If you mean like filling everything in a selected box, I could possibly do something like that. We'll see.



Good to know that my program works as intended. I agree that it would be cool if I implemented tile flipping, but it's kinda difficult to do, so it's not a priority.

Okay, thanks for the reply.
Also, could you please answer my other questions? Specifying borders is mandatory for me, since the map is located in the center, and the two palmap functions would be really helpful.


EDIT: also, the palettemap isn't really clear now. I would suggest something like NTME/NTME+ has.
 
Last edited:

Full Metal

C(++) Developer.
810
Posts
16
Years
I'm going to guess you haven't thought about this ( haven't tested it myself ) but you may want to consider what a tile looks like flipped horizontally and vertically in your tile reduction algorithm. ie, instead of

if(a==b){keep(a);discard(b);}
if(a==b||a.flipHorizontal()==b||a.flipVertical()==b||a.flipHorizontal().flipVertical()==b){keep(a);discard(b);}

It might not be that much of a huge modification in your code logic, but the effects would have substantial benefit. ( I'm going under the assumption that you don't have to write the core aspects of the flipping functions yourself and that you're using some image processing library or other -- even if you did, that code would not be too terribly complicated ).

None the less, I'm very excited to use this tool. :)
 
3,830
Posts
14
Years
  • Age 27
  • OH
  • Seen Feb 26, 2024
I'm going to guess you haven't thought about this ( haven't tested it myself ) but you may want to consider what a tile looks like flipped horizontally and vertically in your tile reduction algorithm. ie, instead of

if(a==b){keep(a);discard(b);}
if(a==b||a.flipHorizontal()==b||a.flipVertical()==b||a.flipHorizontal().flipVertical()==b){keep(a);discard(b);}

It might not be that much of a huge modification in your code logic, but the effects would have substantial benefit. ( I'm going under the assumption that you don't have to write the core aspects of the flipping functions yourself and that you're using some image processing library or other -- even if you did, that code would not be too terribly complicated ).

None the less, I'm very excited to use this tool. :)

Oh yeah, now I feel stupid. That would be quite easy to implement. :)

And thanks. The support is always nice.

Update!

Okay, so after getting my head straightened by Full Metal, I have wonderful news! I actually managed to implement X and Y flipping for the tiles, and in a record breaking 2 minutes. I amaze myself sometimes.

Proof:
Spoiler:


So yeah! Expect this, and more, in the next release!
 
Last edited:

Blah

Free supporter
1,924
Posts
11
Years
If you can make this work backwards too, that'd be awesome. Like given an image and a tile map for the image, show me where to place the tiles to "unscramble" the tile map.

More simply, if I select a tile on the original image, show me which tile on the tilemap was used and what transformation to apply to get back the original tile. Ex: If I have a bird picture and a tilemap for it. I can click on the birds peek tile from the original image and it'll highlight which tile is used for the beak and what transformation was applied during the transfer. I'm not sure how clear I'm making myself here :P
You can think of this function as another look up.
 
3,830
Posts
14
Years
  • Age 27
  • OH
  • Seen Feb 26, 2024
If you can make this work backwards too, that'd be awesome. Like given an image and a tile map for the image, show me where to place the tiles to "unscramble" the tile map.

More simply, if I select a tile on the original image, show me which tile on the tilemap was used and what transformation to apply to get back the original tile. Ex: If I have a bird picture and a tilemap for it. I can click on the birds peek tile from the original image and it'll highlight which tile is used for the beak and what transformation was applied during the transfer. I'm not sure how clear I'm making myself here :P
You can think of this function as another look up.

Yeah, I think I understand what you're asking for. I'll look into it and see what I come up with.
 

Blah

Free supporter
1,924
Posts
11
Years
Yeah, I think I understand what you're asking for. I'll look into it and see what I come up with.

I can explain how I'd do it. It's the same algorithm as deleting, but instead you just highlight the tile from the tilemap instead of deleting it.

The highlight can be as simple as putting a border around the tile or something. A possible way of doing it is to put the smaller tiles from both images into separate lists of objects/images (or whatever they are called in the language you're using). Then since list B is a collection of tile objects from the tile map, a tile object from list A will always be unique (and the first occurrence) in list B. So once you identify the tile, you can simply modify a color property of the tile to start. Like make it red or something, then work your way to a better way to identify the tile than painting the whole thing red :D
 
3,830
Posts
14
Years
  • Age 27
  • OH
  • Seen Feb 26, 2024
Update!

Just a little bit of showing off and a teaser. Following FBA agent's suggestion, I have begun implementing what I call "Trace" which will show which tile was used for at a certain location in a tilemap, as well as the transformations used and such.

And, here's an image showing it.
Spoiler:


Until next time!
 
Last edited:

Blah

Free supporter
1,924
Posts
11
Years
Update!

Just a little bit of showing off and a teaser. Following FBA agent's suggestion, I have begun implementing what I call "Trace" which will show which tile was used for at a certain location in a tilemap, as well as the transformations used and such.

And, here's an image showing it.
Spoiler:


Until next time!

Awesome work! I mostly wanted this feature so I can use it for making tilesets in advance map and then knowing which tiles to use for making the blocks. Clearly it's useful outside of that too. Great work, and great program!

I'll be sure to drop off any further ideas I have in the future.
 
3,830
Posts
14
Years
  • Age 27
  • OH
  • Seen Feb 26, 2024
Awesome work! I mostly wanted this feature so I can use it for making tilesets in advance map and then knowing which tiles to use for making the blocks. Clearly it's useful outside of that too. Great work, and great program!

I'll be sure to drop off any further ideas I have in the future.

Thanks! I always love it when people give suggestions. Let's me know they care.

New Release!

That's right people, I come to you with a new release! This time, I am sharing with you all version 2.5!

New Features Include:
  • Improved Palettemap Viewing
  • Tile Flipping
  • "Trace" Mode
  • And some more!

The download link is on the first page! Enjoy! :D
 

daniilS

busy trying to do stuff not done yet
409
Posts
10
Years
  • Age 24
  • Seen Jan 29, 2024
Tested again. Works great, but I have a suggestion about the "trace" function:
Could you maybe make it like in Advance Map? So trace mode is active when right clicking, not only giving you the ability to see where that tile is located, but also selecting it. And another option, the "gross block", will be really useful. Example: I'm still wanting to insert my worldmap. But when I set preset size to FR/LG WM, it just creates a border on the right and below the tileset. With a grosser block function, or again, borders, I could place it in the centre.
 

Rasen

ASM is very cool!
71
Posts
13
Years
I mentioned about this before but I'll say this once more: you could add a select area option for editing palettes (similar to NTME option but in your editor you change only the selected area to the palette you choose)

wb6q.png
 

Full Metal

C(++) Developer.
810
Posts
16
Years
Bug report:
* Exporting a ( non-indexed ) tileset throws this exception:
Spoiler:


If I were to guess, this means that your Color[] argument is non-nullable, and you only set it when you index the tileset. If you plan to allow exporting of non-indexed tilesets ( Please do ), perhaps adding an overloaded method that also just takes a Bitmap and filename argument would be an alright idea.

Code:
namespace TileMapCreator
{
  class MainForm{
    ...
    public void mnuSaveTS_Click(Object sender, EventArgs e){
      ...
      if(this.colorPalette.Equals(null))
        SaveBitmap(filename, bitmap);
      else
        SaveBitmap(filename, bitmap, colorPalette);
    }
  }
}
 
Last edited:
3,830
Posts
14
Years
  • Age 27
  • OH
  • Seen Feb 26, 2024
Bug report:
* Exporting a ( non-indexed ) tileset throws this exception:
Spoiler:


If I were to guess, this means that your Color[] argument is non-nullable, and you only set it when you index the tileset. If you plan to allow exporting of non-indexed tilesets ( Please do ), perhaps adding an overloaded method that also just takes a Bitmap and filename argument would be an alright idea.

Code:
namespace TileMapCreator
{
  class MainForm{
    ...
    public void mnuSaveTS_Click(Object sender, EventArgs e){
      ...
      if(this.colorPalette.Equals(null))
        SaveBitmap(filename, bitmap);
      else
        SaveBitmap(filename, bitmap, colorPalette);
    }
  }
}

Ah, thanks. I totally forgot about that. :)

I'll remember to fix that. Also, I totally like rasenshurikenbum's suggestion, so I'll add that as well.
 
3,830
Posts
14
Years
  • Age 27
  • OH
  • Seen Feb 26, 2024
Update!

Yes, that's right. I present to you all, version 3.0!

This version of Tilemap Creator is really quite something. The main change that I have for you all is a completely redesigned interface, so that the program works better as a tilemap editor rather than just a tileset creator! I have also added a 256 color image indexing feature, as well as fixed the option to save the tileset if it's not indexed. I have also added a few little helper-type things that were requested by some people, so yeah. The only thing that was really removed from version 2.5 was the "Trace" feature because I wanna rewrite it before including it in version 3.X.

Here's an image of what it looks like:
Spoiler:


So, if you wanna download it, just head on over to the main post! And of course, for those that liked the old layout better, version 2.5 is still available for download.

Enjoy!
 
Last edited:

Rasen

ASM is very cool!
71
Posts
13
Years
I think you can add in future language files in *.ini so we can edit them and make for our language. And will be "selecting area" palette option added as well? :)
 
3,830
Posts
14
Years
  • Age 27
  • OH
  • Seen Feb 26, 2024
I think you can add in future language files in *.ini so we can edit them and make for our language. And will be "selecting area" palette option added as well? :)

Certainly. I plan on adding the language .ini stuff so people can translate it if they want. And if by "selecting area" you mean like the gross block in AdvancedMap then, yes, that is the plan.
 

Rasen

ASM is very cool!
71
Posts
13
Years
Certainly. I plan on adding the language .ini stuff so people can translate it if they want. And if by "selecting area" you mean like the gross block in AdvancedMap then, yes, that is the plan.

I mean sth like this:
2zc1.png
 
Back
Top