I was told that I should create a map editor, instead of hard coding out all the grids of my map. It sounds like a fun project and would make things easier in the long run, but I wouldn't even know where to start with it. It would be pretty simple, 3 cube types, a 1000x1000 grid, and the ability to stack cubes on top of each other. Exporting the map into something I can use in my game would be an issue though. Also creating the UI for the editor would be something completely new to me. Are there any links out there that can help with this?
This is a pretty broad question, but I'll try to give you a few pointers. See if they're of any help to you.
Exporting/importing map data
In order to be able to use the maps created with your map editor, you will need to define a data format for the map data. The exact format is irrelevant, but it can be as simple as a plain text file or a xml file. You should create a
MapSerializer class, which should have the functions
serialize function should take the map structure as a parameter. If you've already hard coded some maps to your game, then you already have this representation defined. The output of the function should be the serialized, e.g. string formatted, representation of your data.
deserialize method should then do the exact opposite: take the serialized map data, e.g. a string, and produce the representation you use in your game internally.
The interface should likely use your rendering engine to represent the current state of the map, with controls to move around the map freely. You can use ray tracing to find the spot in the 3D world where the user clicks.
Separating the cubes to chunks is not necessary in the map editing phase, you can do that when loading/drawing the map.