I was looking through some of my mediafire files, and noticed an old not-so-stable version of some tools I developed for WorldBase. Those of you who have been following this blog might recognize them as the material editor, the model converter, and the world editor.
Since I ended up dropping it in favour of making the game on a stable game engine so I wouldn't get lost on the technology, and since I broke it all in the end (so I can't get you any code),
and since I noticed that even if it was never completed, it was still pretty cool, I figured you guys might be interested in trying it.
Download Link: http://www.mediafire.com/?gmmyvkoykmn
Some Guidelines:
Some elements were never completed. For instance, some nodes on the Material Editor can't even be created, and the Light entity on the World Editor will crash the editor since it was never implemented.
Before you do anything, you need to keep in mind that all tools require the Core.package file which is generated from the BuildPackages.bat file in the System folder. Whenever you add/remove/modify a resource like a model or material or texture, you need to call BuildPackages again.
Material Editor:
In the Material Editor, you can drag nodes from the node list to the middle of the screen that has other nodes.
You can middle-click-drag on that area to move the working area too, so you don't run out of space.
To delete a node, select it with the left click and press DELETE on your keyboard.
To make nodes work with each other, left click on a connector (the black squares) and drag towards another connector (Node Inputs are to the right, Node Outputs are to the left, you can't connect one kind with the same kind). This will create a Connection between the two nodes.
To remove a connection, you must left click the connector while pressing CTRL. It may not remove it immediately, so try clicking a few times. This is a bug which I probably solved later on but I can't recover it right now.
Constants are the most used datatype. They come in four flavours: Constant, Constant2, Constant3, and Constant4. Each can keep a certain amount of values. Most Nodes provide a certain datatype as their value, like the Fresnel node which returns a Constant, and the Normal node which returns a Constant3.
Sometimes you will get errors, like incompatible data types. For instance, you can't LinearInterpolate a Constant as the first value with a Constant2 as the second value, since they are different data types. You can get over this by converting from a data type to another. This is usually only possible when you convert to a higher data type.
For instance, you can't convert from a Constant2 to a Constant. However you can convert a Constant to a Constant2 by e.g., setting a Multiply node with a Constant2 with values R: 1, G: 1 to multiply by the Constant you want to convert. In this case, you'd set the Constant2 as the "A" input, and the other Constant as the "B" input.
The TextureSample Node allows you to select a texture from the package filesystem. It has 4 Outputs ("Black", Red, Green, Blue, Alpha). The first output is a Constant4, while the other ones are all Constants. This allows you to extract the components of the texture for various uses.
An example would be if you had a "filter" texture and two other textures who you want to combine. You could use a LinearInterpolate node to interpolate between the two textures, and use the filter's Alpha component as the last input to LinearInterpolate to do so.
Model Editor:
In the model editor, you can import bXporter models or modify existing wbmodel models. Do notice that I don't remember which version of bXporter I used, and I do know it's not a very popular format, so you'll have to make do with the .bx models on the System folder.
After you convert or open a model, you can swap the Z-axis of the model (if it's showing improperly rotated for instance), and change its size.
Mind you that changing its size is not the same as performing a scale to the model. It'll literally make the model be at most have a height of X units.
You can change the materials of each mesh of the model too. To do so, click on a material on the list and it'll highlight the area the material belongs to in yellow. Double-Click it to choose one of the materials on the Package Filesystem and then double-click that material to replace the first material.
World Editor:
This is probably the most complex tool of them all. First, you should either open an existing world or create a new one. When you create a new one, you should choose a relatively small amount of sectors. That is because each sector contains a huge area.
After you create a new one, please wait patiently until it is done processing it. It will randomly generate the world's terrain and calculate the world's pseudo-average normals for lighting (this last part might take a while, however generally speaking on any decent computer it shouldn't take longer than a couple of minutes.
Afterwards you can move around the world, use the terrain tools (Raise, Lower, Flatten, and Paint (Paint was never implemented)), you can even create your own entities and spawn them in the world.
Mind you that the default entities (Light) are not implemented, and trying to use them will result in a crash. You can create new entities, although a lot of entity settings (Like having Physics and Client/Server ownership) do nothing since I never got to implement them. You can select a model, and then save the entity library and use it within the world. Other than that you can also browse the world around.
The viewport controls work as soon as you left-click once at it, so the viewport will gain Focus for your mouse input. Then you can hold the right mouse button to do mouse look with the camera, and use the left mouse button to use whatever tool you're using at the time.
That should be enough detail for now. I've delayed this post long enough. Remember that this is not a production-quality release, I'm only releasing it now because, although incomplete, it is "cool".