Releases: kilgoar/RustMapperBeta
Precision Update
Wireframe Heightmap Visualization
To view terrain heightmap wireframe, click the heightmap icon in the visibility panel in the top left of the screen. The wireframe colors high vertex density red and low density blue. These are dependent on LOD's (camera distance).
SpawnAnyItem and bugfixes
This release introduces the SpawnAnyItem command, which will place a prefab, .monument, or .prefab file in any defined position:
g.SpawnAnyItem,[appdata path, asset path, or uint asset id],x,y,x
Also included are several bug fixes related to the new Undo system
QOL Features
Camera hotkeys
ctrl+0 - ctrl+9 will save camera locations (unique locations per current filename)
1-9 will restore camera to saved location
Localization
AppData/Roaming/RustMapper/Presets/Language contains translations for Russian and Mandarin (Chinese). These are placeholder machine translations and may be inaccurate and ridiculous to native speakers.
Copy Pasting Transforms
There are five new buttons in the inspector. Three of these will copy positions/rotations/scales and the fourth will copy all values. The paste button will apply whatever values are present in the clipboard.
The fill tool now includes a button to copy console commands which are equivalent to pressing "Apply," to help users create .rmml scripts.
Fill Window and Easier Plugin Development
The new Fill Window allows users to analyze height, slope, and curvature topography to fill the map, or alternatively the Blend Map's area. The area to be filled will be shown with a live preview overlay, similar to the Geology Window's.
The Fill Window was made utilizing programmatic UI-generation and serves as an example of how to most easily implement your own plugin: TerrainGenWindow.cs
The correct entry point for window creation is AppManager's GenerateWindows method.
Attributes are used to manage layout [HorizontalGroup] [EndHorizontalGroup], signal the creation and binding of fields and UI Elements [RustMapperUIElement][RustMapperButton][RangeSlideMin][RangeSlideMax][SliderUIElement] etc, bind field changes to additional methods [OnBind], refresh all the bound fields in the window [Sync], etc
Minor Geology feature
Added six "snaps" to geology's "Rotation" menu for highest or lowest valid ray tests per each terrain translation axis
Bug fixes
This update points custom geology items (.monument, .prefab) to raytest .prefab files to AppData/Roaming/RustMapper/Presets/Geology/*rays.prefab where * is the original file name without its extension.
Additionally, some prefabs that weren't showing up are now shown, and the group select tool looks a bit better and is closer to the camera.
Selection Update
Clicking and dragging selectPrefab bind (left click) will open a group selection tool with two modes, toggled with toggle3d bind (middle click).
2d (default) all objects within the square will be selected
3d all objects within the cube will be selected (depth adjustable with scroll wheel)
The group select tool live-updates to show which items may be selected. Hold multiSelect (left shift) to add to your previously selected items.
Selection actions are now shown in history window and are registered as Undo/Redo actions.
Ctrl+Shift+D will "mirror duplicate" items across the X axis, creating a symmetrical effect.
Many prefabs which weren't showing due to broken LODs have been corrected as well as some shaders that weren't showing textures. Many prefabs with oversized colliders have been corrected.
ModManager.cs features a new example of programmatic UI which uses reflection to generate a window and bind it to an instance of the TestConfig class.
[BeginWindow("Test Configuration Window")] - This optional tag will begin the block of code which is scanned with reflection, defining the window's title. (there is no closer). without it, the scan for UI elements will begin with the first field or method and use the class name for the window title.
[RustMapperUIElement("Custom Text")] - This optional tag will change the label preceding a field to the defined text. Elements without tags will still be made into UI elements and bound using their field name for labeling.
[HorizontalGroup] - [EndHorizontalGroup] Enclosed items will be put into a horizontal layout group.
[Sync] - Upon completion of a method with this tag, UI elements will be refreshed to reflect the object instance.
[RustMapperButton("Apply Changes")] - RustMapperUIElement to label buttons. All other methods with no parameters included in the class will also be made into buttons and labeled with field names.
Inspector Window Tools and Items List sorting
Inspector window now reflects global/local status of Transform Gizmo. Rotations can now be controlled by green arrow buttons on each axis which add or subtract 90 degrees and a red "mirror" button which multiplies rotational values by -1. There is also a toggle to enable and disable colliders among selected items.
The transform gizmo will now change scale along with the menu window.
The Items List can now be sorted by distance to camera and the order in which items were added to the scene by making selections in the dropdown menu. A new refresh button will rebuild the list.
File Window consistency and expanded Undo/Redo actions
The File Window will no longer show recent files that have been removed or altered, and will no longer focus on the most recently saved or opened file on launch. Instead, it will now focus on the most recently selected directory. I have increased the File Window size for easier navigation. Changing the file extension will not reset the currently selected directory.
Undo/Redos now support prefab placement and deletion. Only terrain undo/redos will apply fluidly, while all other undo/redo actions will happen only once per key press.
Transform gizmo size has been increased for easier manipulation.
On spawn, prefabs lacking colliders will receive colliders matching their meshes' bounding boxes.
A handful of missing prefab shaders have been corrected.