diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dbe9c82 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.vscode/ \ No newline at end of file diff --git a/src/SUMMARY.md b/src/SUMMARY.md index e2d7b32..71bdf05 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -25,8 +25,10 @@ - [Selections](editor/selections.md) - [Gizmos](editor/gizmos.md) - [Tool Presets](editor/toolpresets.md) + - [Placements](editor/placement.md) + - [Common UI Elements](editor/commonUIelements.md) - [Windows](editor/windows/intro.md) - - [Clipboard](editor/clipboard.md) + - [Clipboard](editor/windows/clipboard.md) - [Views](editor/windows/views.md) - [Blueprints](editor/windows/blueprints.md) - [Active Block](editor/windows/activeblock.md) diff --git a/src/advanced/commands.md b/src/advanced/commands.md index 2580e36..7dcffe6 100644 --- a/src/advanced/commands.md +++ b/src/advanced/commands.md @@ -48,4 +48,4 @@ These are some extra commands for controlling the world and its properties. Thes ## Compatible commands -`//pos1` and `//pos2` are part of Axiom, but are intended to be used alongside WorldEdit. They expand the provided corner point to the player's position. \ No newline at end of file +`//pos1` and `//pos2` can be used in conjunction with WorldEdit. Using these commands will cause Axiom to render a box to visualise your selection. \ No newline at end of file diff --git a/src/advanced/configuration.md b/src/advanced/configuration.md index e690aff..af340f5 100644 --- a/src/advanced/configuration.md +++ b/src/advanced/configuration.md @@ -14,6 +14,7 @@ Below are the three files alongside their descriptions. | ------------------------------ | -------------------------------------------------------------------------------------- | | completedTutorials | Lists the tools that have shown their short tutorial. | | customDowngradeSuggestions | Lists the downgrades suggested by Axiom. | +| defaultLayout | Stores the UI data for the currently enabled UI layout. | | globalScale | A float representing the [Editor](editor/intro.md) UI Scale. | | lastTranslationCount | A value determining the amount of translations. | | openEditorWindowTypes | A list of open windows in the editor. | diff --git a/src/builder/displayentities.md b/src/builder/displayentities.md index 0304e50..cf81666 100644 --- a/src/builder/displayentities.md +++ b/src/builder/displayentities.md @@ -28,7 +28,7 @@ The tables below cover the settings for the **Create Display** Entity menu. | Setting | Description | | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Text | The black box provides space to enter text for the text display. | -| Background Color | The background colour determines the colour surrounding the text. The colour fomat for the background colour is ARGB in Hexadecimal. | +| Background Color | The background colour determines the colour surrounding the text. The colour fomat for the background colour is ARGB in Hexadecimal. | | Line Width | The line width determines the amount of space required to start a new line. | | Alignment | The alignment determines the offset relative to the gizmo. | | Shadow | Adds a shadow effect to the text. | @@ -42,28 +42,23 @@ The **Additional Settings** submenu provides further options for the display ent ## Display Entity Manipulation -When the white box at the centre of the display entity is selected, a [Gizmo](/editor/gizmos.md) will appear. Clicking the white box with left-click will select it. - -The gizmo allows movement, rotation and resizing in all directions. To move display entities with the gizmo, use left-click and drag one of the three arrows in a direction. Rotation is almost the same, click and drag the outer rings in any direction to rotate the display entity. To resize the display entity, drag one of the outer cubes in any direction. - -The three flat squares within the gizmo lock the movement to a 2D plane. Dragging one of these squares will move the display entity along the 2D plane. - -The central, white cube can be used to move the display entity in all three dimensions. +Left-clicking the white node at the centre of the Display Entity will display a [Gizmo](/editor/gizmos.md). Using the gizmo, you can move, rotate and scale the Display Entity in any direction. ## Keybinds -There are many key combinations that can be used while moving, rotating or resizing display entities. Listed below are all key combinations alongside their description. - -| Key | Description | -| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Right Click | Moves the Display Entity to the block you're facing. However, while looking at the white cube on the gizmo, it opens the [Editing Menu](displayentities.md#editing-menu) for the selected display entity. | -| Scroll | Nudges the display by the default step size[^note3]. | -| Control | Used alongside Left Click to increase the step size. The movement step is changed to 1 block, the rotation step is set to 15 degrees and the scale is set to affect all axes rather than one. | -| Shift | Lowers the step size for movement and scale to 0.0001 blocks and sets the rotation step size to 1 degree. | -| Control + C | Copies the display entity to the clipboard. This can be pasted using `Control + V`. | -| Delete / Backspace | Deletes the selected Display Entity. | -| Control + Z | Undo the previous edit. | -| Control + Y | Redo the undone edit. | +There are many key combinations that can be used while the gizmo is active. Listed below are all key combinations alongside their description. + +| Key | Description | +| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Right Click | Moves the Display Entity to the block you're facing. However, while looking at the white cube on the gizmo, it opens the [Editing Menu](displayentities.md#editing-menu) for the selected display entity. | +| Scroll | Nudges the display by the default step size[^note3]. | +| Control | Used alongside Left Click to increase the step size. The movement step is changed to 1 block, the rotation step is set to 15 degrees and the scale is set to affect all axes rather than one. | +| Shift | Lowers the step size for movement and scale to 0.0001 blocks and sets the rotation step size to 1 degree. | +| Control + C | Copies the display entity to the clipboard. This can be pasted using `Control + V`. | +| Delete / Backspace | Deletes the selected Display Entity. | +| Control + Z | Undo the previous edit. | +| Control + Y | Redo the undone edit. | +| Middle-Click | Copies the Display Entity to an item. This works the same as spawn eggs and can be snapped to different rotation steps by using control or shift while placing. | ## Editing Menu diff --git a/src/builder/intro.md b/src/builder/intro.md index 5b0c530..e5ad2fa 100644 --- a/src/builder/intro.md +++ b/src/builder/intro.md @@ -8,7 +8,7 @@ Many features for builder mode can be toggled or accessed through the Context Me ![Builder Context Menu](/img/AltMenuOverview.png) ## Builder Tools -To the right of the hotbar, you can find the Builder Tools. These tools are very simple and are intended to ease structural/small scale building where use of the more powerful [Editor Mode](/editor/intro.md) is too unwieldly. +To the right of the hotbar, you can find the Builder Tools. These tools are very simple and are intended to ease structural/small scale building where use of the more powerful [Editor Mode](/editor/intro.md) is too unwieldy. To start using a Builder Tool, scroll to the 10th slot or press 0. To switch to a different Builder Tool, hold Left Alt and then scroll. @@ -17,8 +17,6 @@ The three main keybinds for the Builder Tools are left-click, right-click and mi When working with a selection, useful information such as offset and size is displayed above the hotbar. -Holding either x, y or z while scrolling to move the placement will lock it to that direction. - The tools that are currently available in this section are: - [Move](/builder/move.md) - [Clone](/builder/clone.md) @@ -28,11 +26,10 @@ The tools that are currently available in this section are: - [Erase](/builder/erase.md) - [Setup Symmetry](/builder/setupsymmetry.md) -![Builder Tools](/img/BuilderToolsOverview.png) - +There are two flags that apply to all builder tools: +- **Copy Air** + - Toggles the ability to copy air when moving a selection. +- **Copy Entities** + - Toggles the ability to copy entities when moving a selection. -## Gameplay - -Using Ctrl + C while looking at a block will copy its exact nbt state. - -When searching in the creative inventory, pressing enter will add the first listed block to your current hotbar slot. \ No newline at end of file +![Builder Tools](/img/BuilderToolsOverview.png) diff --git a/src/builder/marker.md b/src/builder/marker.md index 96f5846..30a547b 100644 --- a/src/builder/marker.md +++ b/src/builder/marker.md @@ -6,6 +6,8 @@ Right-clicking the marker gizmo will open a menu, allowing you to input custom NBT for the marker. +Using `Ctrl+C` while the gizmo is active, will copy the marker data to the clipboard. Using `Ctrl+V` will paste the copied marker into the world. + ## Notes [^note1]: [Display Entities Wiki](https://minecraft.wiki/w/Marker). \ No newline at end of file diff --git a/src/capabilities/intro.md b/src/capabilities/intro.md index 90cc275..93230bc 100644 --- a/src/capabilities/intro.md +++ b/src/capabilities/intro.md @@ -15,3 +15,9 @@ The Capabilities that are currently available are: Capabilities can be toggled using the left side of the [Context Menu](/builder/contextmenu.md) Additionally, keybinds can be associated with capabilities to quickly toggle them. By default, only the [Replace Mode](/capabilities/replacemode.md) has a keybind (R), but more can be added in the vanilla controls menu (Esc > Options > Controls) + +## Gameplay + +Using Ctrl + C while looking at a block will copy its exact nbt state. + +When searching in the creative inventory, pressing enter will add the first listed block to your current hotbar slot. \ No newline at end of file diff --git a/src/capabilities/tinker.md b/src/capabilities/tinker.md index c8dda3e..ab210c1 100644 --- a/src/capabilities/tinker.md +++ b/src/capabilities/tinker.md @@ -6,37 +6,49 @@ Aiming at specific parts of a block can change the effect of the tinker. This le Tinker interactions can be negated while the capability is toggled on by either having a non-empty hand or by holding down the sneak or ‘shift’ button. -| Block | Tinker Property Effect | -| ------------------------------------ | ---------------------------------------------------------- | -| Blocks with full/stair/slab variants | Convert between full/stair/slab by adding/removing corners | -| Walls | Cycle WallSide (none/low/tall) of targeted side | -| Fences/Iron bars/Chorus Plant | Toggle north/east/south/west sides | -| Piston | [Side] Change facing, [Front] Extends/retracts the piston | -| Furnace | [Side] Change facing, [Front] Toggles lit state | -| Carved Pumpkin/Jack O Lantern | [Side] Change facing, [Front] Swaps between the 2 blocks | -| Barrel | [Side] Change facing, [Front] Opens/closes | -| Iron Trapdoor/Door | Open/closes the block | -| Brewing Stand | Add/remove bottles | -| Glazed Terracotta | Change facing | -| Farmland | Cycle moisture | -| Scaffolding | Toggle bottom | -| Small/Medium/Large/Cluster Amethyst | Cycles between the 4 blocks | -| Lectern | Toggles book | -| Candle/Campfire/Redstone Torch | Toggles lit | -| Cave Vines | Toggles berries | -| Bamboo Stalk | Toggles bamboo leaves | -| Cauldron | Cycles fluid level | -| Composter | Cycles compost level | -| Beehive | Cycles honey level | -| Cake | Cycles bites | -| Lantern | Toggles hanging | -| Fence Gate | Toggles lowered and facing axis | -| Player Head | Cycles rotation | -| Banner | Cycles rotation | -| Attached Melon/Pumpkin Stem | Switches facing axis | -| Rails | Cycles rotation | -| Any block with 'Age' property | Cycles age | -| Any block with 'Powered' property | Toggles powered | +| Block | Tinker Property Effect | +| --------------------------------- | ------------------------------------------------------- | +| Walls | Cycle `axis` and cycle `none`, `low`, `tall` | +| Fences | Cycle `axis` | +| Chorus Plant | Cycle `axis` and toggle `up` / `down` | +| Iron Bars | Cycle `axis` | +| Piston | Cycle `facing` and switches `Extended` / `Retracted` | +| Furnace | Cycle `facing` and toggle `lit` | +| Carved Pumpkin/Jack o'Lantern | Cycle `facing` and switches `Carved` / `Jack o'Lantern` | +| Barrel | Cycle `facing` | +| Iron Trapdoor/Door | Cycle `open` | +| Brewing Stand | Cycle `bottles` | +| Glazed Terracotta | Cycle `facing` | +| Farmland | Cycle `moisture` | +| Scaffolding | Toggle `bottom` | +| Amethyst Cluster | Cycles `stages` | +| Lectern | Toggles `book` | +| Cave Vines | Toggles `berries` | +| Bamboo Stalk | Toggles `leaves` | +| Cauldron | Cycles `fluid level` | +| Composter | Cycles `compost level` | +| Beehive | Cycles `honey level` | +| Cake | Cycles `bites` | +| Lantern | Toggles `hanging` | +| Fence Gate | Toggles `lowered` and cycles `facing` | +| Player Head | Cycles `rotation` | +| Banner | Cycles `rotation` | +| Attached Melon/Pumpkin Stem | Cycles `facing` | +| Rails | Cycles `rotation` | +| Bell | Cycles `facing` | +| Bamboo Block | Cycle `facing` and toggles `stripped` | +| Chest | Cycle facing | +| End Portal Frame | Cycle `facing` and toggles `eye` | +| Observer | Cycle `facing` and toggle `powered` | +| Snow | Cycle layer | +| Turtle Egg | Cycle eggs | +| Suspicious Sand/Gravel | Switch `Suspicious Sand` and `Suspicious Gravel` | +| Grass Block / Dirt Path | Switch `Grass Block` and `Dirt Path` | +| Azalea | Switch `flowering` | +| Water / Lave | Cycle `level` | +| Any block with 'age' property | Cycles `age` | +| Any block with 'lit' property | Toggles `lit` | +| Any block with 'powered' property | Toggles `powered` | Additionally: diff --git a/src/editor/commonUIelements.md b/src/editor/commonUIelements.md new file mode 100644 index 0000000..39afb11 --- /dev/null +++ b/src/editor/commonUIelements.md @@ -0,0 +1,15 @@ +# Common UI Elements + +The following UI elements consistently appear throughout the [Editor Mode](/editor/intro.md). + +## Sliders + +Sliders are used for almost every feature in axiom. However, Every slider can have any numerical value inputted by using Ctrl+Click on the slider. + +## Block Icons + +Block Icons can be used quickly set what blocks are used in certain tools. Dragging a block with Middle-Click into a block icon such as the [Active Block](/editor/windows/activeblock.md) or [Tool Masks](/editor/windows/toolmasks.md). You can even drag one block icon into another using Left-Click. + +## Lua Code Editor + +The Lua code editor is used for [Mask Scripting](/editor/windows/toolmasks.md) and the [Script Brush](/tools/painting/scriptbrush.md). The code editor includes a line count and tab indenting alongside some custom functions and variables. \ No newline at end of file diff --git a/src/editor/gizmos.md b/src/editor/gizmos.md index 10c7cf6..59df9d5 100644 --- a/src/editor/gizmos.md +++ b/src/editor/gizmos.md @@ -2,18 +2,38 @@ Gizmos are a common UI element which allows positioning within the 3D world. +![Gizmo With All Elements](/src/img/gizmo.png) + +## Gizmo Properties + A gizmo can contain the following elements: -- **Axis Arrows** These coloured arrows correspond to the Cartesian coordinate system, otherwise known as XYZ coordinates. The red, green and blue arrows allow the gizmo to be dragged along the X, Y and Z axis respectively. -- **Center Node** The center node can be clicked and dragged to move the gizmo on all 3 axis. While dragging, the gizmo will maintain the same distance to the camera. -- **Rotation Rings** Some operations like placement or shape placement will add a rotation ring to the Gizmo, allowing you to perform rotations in addition to translations. The rotation ring can be grabbed and drag to rotate the object around that axis. +- **Axis Arrows** These coloured arrows correspond to XYZ coordinates. The red, green and blue arrows allow the gizmo to be dragged along the X, Y and Z axis respectively. +- **Center Node** The center node can be dragged to move the gizmo on all 3 axis. While dragging, the gizmo will maintain the same distance to the camera. +- **Plane Nodes** The +- **Rotation Rings** The three Rotation rings allow you to perform rotations on objects. The red, green and blue rings allow the gizmo to be rotated on the X, Y and Z axis respectively. +- **Scale Nodes** The Scale nodes are used for [Display Entities](/builder/displayentities.md). Dragging one of the three Scale Nodes will stretch along the X, Y and Z axis respectively. +- **Global Gizmos** When a gizmo is set to global, the **Axis Arrows**, **Centre Node** and **Rotation Rings** are locked to the world's rotation. +- **Local Gizmos** A local gizmo is when the **Axis Arrows**, **Centre Node** and **Rotation Rings** are locked to the gizmo's rotation. + +## Gizmo Controls + +### Builder Mode Gizmo Controls -- **Global Gizmos** A global gizmo has its rotation and axis arrows locked to the world xyz. -- **Local Gizmos** Unlike global gizmos, local gizmos have their rotation and axis locked to the object itself. Rotating your object 45 degrees will alter your axis arrows by 45 degrees. +When using [Display Entities](/builder/displayentities.md) or [Marker Entities](/builder/marker.md), a gizmo is used to move and modify the entity. There are multiple keys you can use to alter how the gizmo is used to modify the entity. To select a gizmo, use left-click on the **Center Node**. -## Placement +| Key | Description | +| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Right-Click | Used to adjust any of the gizmo elements such as the Axis Arrows. | +| Left-Click | Relocates the entity to the block the player is facing. | +| Scroll | Nudges the entity along the axis you're facing. Holding the Center Node while scrolling will push and pull the entity relative to the player. | +| Control | While adjusting gizmo elements, the movement snapping size is increased to one block and the rotation snapping is set to 15 degrees. When using control while adjusting the scale nodes, all three axis will be scaled simultaneously. | +| Shift | Removes all snapping when adjusting gizmo elements. | +| Control + C | Copies the entity data to the clipboard. | +| Delete / Backspace | Permanently removes the selected entity. | +| Control + V | Pastes the entity in the clipboard. | -Placements can be repositioned and rotated using the Gizmo. +### Editor Mode Gizmo Controls -Once the placement is in the correct position, you can use Enter or Ctrl+V to confirm it. To cancel a placement, use the Delete or Backspace key. +The Editor utilises gizmos for many features such as [Selections](selections.md) and the [Path Tool](/tools/other/path.md). However, each tool or feature may have a different gizmo type depending on its usage. This means one tool could have less gizmo features than another. -> Tip: The placement can be rotated clockwise using the Ctrl+R keybind, and can be flipped in the direction of your mouse vector using the Ctrl+F keybind. \ No newline at end of file +> Tip: You can use the arrow keys to nudge gizmos on the X and Z axis. \ No newline at end of file diff --git a/src/editor/intro.md b/src/editor/intro.md index 902d9a3..0f55e31 100644 --- a/src/editor/intro.md +++ b/src/editor/intro.md @@ -18,6 +18,6 @@ The default camera controls are: The [Flight Speed](/builder/contextmenu.md#Flight_Speed) can be changed using the slider at the bottom right corner of the Editor UI. -Keybinds can be found in the [Main Menu Bar](mainmenubar.md) titled 'Keybinds'. +Keybinds can be found in the [Main Menu Bar](mainmenubar.md#keybinds) titled 'Keybinds'. If you'd prefer a default key layout reminiscent of Blender, use Load Default > Blender-like. diff --git a/src/editor/mainmenubar.md b/src/editor/mainmenubar.md index c9e5c52..18c8b44 100644 --- a/src/editor/mainmenubar.md +++ b/src/editor/mainmenubar.md @@ -2,83 +2,247 @@ The main menu bar gives users access to crucial functionality of the mod. Here you can find menu items for accessing windows, manipulating selections, performing operations and viewing helpful information. ## File - -| Function | Description | -| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Import Schematic | Imports schematic files to your clipboard. | -| Export Schematic | Exports clipboard as a schematic file. With the [Commercial License](https://axiom.moulberry.com/commercial), you can set what version the schematic should be. This can go all the way back to 1.7. | -| Open Reference Image | Adds a window with an image of your choice. | -| Load Bedrock Packs | Allows you to import Bedrock Edition textures or models. (Requires [Commercial License](https://axiom.moulberry.com/commercial)) | -| Save Selection as CSV | Exports a selection to a CSV[^note1] format. | -| Save Clipboard as JSON Model | This allows you to take blocks and convert them to an item model. Models can be used in resource packs or imported into Blockbench. | + +The 'File' drop-down provides many useful features regarding loading and saving files to use within Axiom. + +### Import Schematic + +When pressed, a file explorer window will be opened. Here you can select a schematic to import into Axiom. Both `.schem` and `.schematic` are supported, however only one schematic can be loaded at a time. + +After you've opened a schematic in your file explorer, it will be loaded into your [Clipboard](/editor/windows/clipboard.md). + +### Export Schematic + +The Export Schematic option allows you to export a schematic using your clipboard. Once you have something in your clipboard, you'll be able to export it as a schematic. + +For users with a [Commercial License](https://axiom.moulberry.com/commercial), you'll be able to export to any version from 1.7 to 1.19. + +### Open Reference Image + +Opens a file explorer window for you to select an image to be loaded into Axiom. Once opened, you can drag and resize the image window to wherever you want. + +Right-Clicking on an image window will display some options to adjust the reference image. + +- **Close Window** removes the image. +- **Set Filtering: Nearest** "smoothes" out sharp pixels to reduce the blocky look. +- **Set Filtering: Linear** stops it from smoothing out pixels, leaving the sharp edges. +- **Show In Game UI** makes it so the image is always shown. When disabled, the image is hidden when outside of the [Editor](/editor/intro.md). +- **Borderless** removes the outer padding and resizing tab. + +### Load Bedrock Packs + +This is a [Commercial License](https://axiom.moulberry.com/commercial) feature. + +The 'Load Bedrock Packs' option allows you to replace existing models with Bedrock Edition models. + +This would be most used by Bedrock Marketplace creators who would want to see their models on Java. + +### Save Selection as CSV + +Exports a [Selection](/editor/selections.md) to a Comma-Seperated Value (CSV) format. + +### Save Clipboard as JSON Model + +This allows you to convert your clipboard to an item model. Models can be used in resource packs or imported into Blockbench. ## Edit -| Function | Default Shortcut | Description | -|----------------|------------------|----------------------------------------------------------| -| Undo | Ctrl+Z | Reverses the most recent action | -| Redo | Ctrl+Y | Reverses the most recent undo | -| Cut | Ctrl+X | Removes the selection and stores it in the clipboard | -| Copy | Ctrl+C | Copies the selected item to the clipboard | -| Save Blueprint | Ctrl+P | Saves the current selection as a blueprint for later use | +| Function | Default Shortcut | Description | +| -------------- | ---------------- | --------------------------------------------------------------------------------- | +| Undo | Ctrl+Z | Reverses the most recent action | +| Redo | Ctrl+Y | Reverses the most recent undo | +| Cut | Ctrl+X | Removes the selection and stores it in the clipboard | +| Copy | Ctrl+C | Copies the selected item to the [Clipboard](/editor/windows/clipboard.md) | +| Save Blueprint | Ctrl+P | Saves the clipboard as a [Blueprint](/editor/windows/blueprints.md) for later use | ## Select -The Select submenu lets users perform a variety of functions related to selections. +The Select submenu lets users perform a variety of functions to modify [Selections](/tools/selection/intro.md). -| Function | Description | -|----------|------------------------------| -| Clear | Clears the current selection | -| Expand | Expands the current selection by a specified number of blocks | -| Shrink | Shrinks the current selection by a specified number of blocks | -| Distort | Distorts the current selection with simplex noise by a specified radius and distance. Radius is the scale of the noise and the distance is the amount it gets distorted by. | -| Smooth | Applies a Gaussian blur on the selection to smooth out the selection. StdDev is the intensity of the smoothing operation and the threshold is the ‘cut-off’ of how much input weight is needed to affect the output. | -| Bounding Box | Creates a cuboid selection around the furthest points of the selection, encapsulating the entire selection. | +| Function | Description | +| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Clear | Clears the current selection | +| Expand | Expands the current selection by a specified number of blocks | +| Shrink | Shrinks the current selection by a specified number of blocks | +| Distort | Distorts the current selection with simplex noise by a specified radius and distance. Radius is the scale of the noise and the distance is the amount it gets distorted by. | +| Smooth | Applies a Gaussian blur on the selection to smooth out the selection. StdDev is the intensity of the smoothing operation and the threshold is the 'cut-off' of how much input weight is needed to affect the output. | +| Bounding Box | Creates a cuboid selection around the furthest points of the selection, encapsulating the entire selection. | ## View -The View submenu lets you configure options related to viewing and rendering certain elements in your world. +The View submenu lets you configure options related to viewing and rendering certain elements in the Editor Menu. + +### New View + +Creates a new [View](/editor/windows/views.md) located at the current position. + +### Show Selection + +Toggles the rendering of [Selections](/editor/selections.md). + +### Show Biomes -| Function | Default Shortcut | Description | -|----------------|------------------|-------------| -| New View | None | Create a new [View](views.html) | -| Show Selection | None | Lets you toggle the rendering of your selections | -| Show Biomes | Ctrl+B | Enables the biome overlay[^note2] | -| Show Key Presses| None | This shows your inputs including mouse clicks on the bottom right of the viewport. This can be useful for making tutorials. | -| UI Scale | None | A slider ranging from 0.5 to 2. This lets you change the size of all graphical elements in the editor mode. | -| Min Brightness | None | A slider ranging from 0 to 1. This lets you change how dark unlit places look in your world. A value of 1 means all blocks are fully lit, this is also known as Fullbright. | -| Fluid Opacity | None | A slider ranging from 0 to 1. This lets you change the opacity of transluscent[^note3] fluids to make it easier to look through. A value of 0 will make the fluid invisible. | +Toggles the visualisation of biomes. Each biome is represented with its own colour. + +Be aware that biomes in Minecraft are defined in a 4x4x4 grid. However, to make biomes feel more natural, vanilla warps the biomes visually. The biome overlay shows the "real" position of biomes, while biome blending and the f3 screen show the "warped" position of biomes. + +The default shortcut for this view is `Ctrl+B`. + +### Show Key Presses + +This shows your keyboard and mouse inputs in the bottom-right corner of the screen. This can be useful for making tutorials or debugging problems. + +### UI Scale + +This slider ranges from 0.5 to 2. This lets you change the size of all graphical elements in the editor mode. + +### Min Brightness + +The 'Min Brightness' slider ranges from 0 to 1. This lets you change how dark unlit places look in your world. A value of 1 means all blocks are fully lit, this functions similar to night vision. + +### Fluid Opacity + +The 'Fluid Opacity' slider ranges from 0 to 1. This lets you change the opacity of water to alter its visibility. A value of 0 will result in water being invisible. + +Lava and modded fluids are not affected due to performance concerns. ## Operations - -The **Operations** submenu contains various useful features for building. All operations require and affect selections. - -| Function | Default Shortcut | Description | -|----------------------|------------------|--------------| -| Fill | Ctrl+F | Fill a selection with the chosen block | -| Fill Nearest | None | Fills an area with the closest neighbour blocks, useful to repair areas or fill in gaps. | -| Replace | Ctrl+R | Replace specific blocks in the selection with the chosen block | -| Set Biome | None | Sets the selection to the chosen biome | -| Autoshade | None | Shades your selection using a sun angle, either at the player position or at a set value. Different blocks can be set for the appropriate shading. | -| Drain | None | Drains an area of all fluids, including waterlogged blocks. | -| Waterlog | None | Floods an area with water, including turning water-loggable blocks into their waterlogged counterpart. | -| Smoothsnow | None | Creates a smooth area of snow based on the existing terrain. | -| Simulate Gravity | None | Gravity simulation makes all blocks with air below 'fall' as if they were affected by gravity. | -| Trigger Updates | None | Updates blocks by simulating a random tick on every block that doesn't have a valid surface or neighbouring block. | -| Hollow | None | Hollows solid objects by filling them with air. | -| Fill Gaps | None | Fill Gaps does the opposite of the hollow operation, empty space within an object is filled with your active block. | -| Generate Colour Field| None | Generates a CIELAB[^note4] colour field using all non-transparrent blocks. | -| Analyze | None | Analyzes the blocks in the selection, giving information on counts and distribution | -| Animated Rebuild | None | The Animated Rebuild operation allows creators to present their build in a timelapse-style rebuild of the selected structure. | + +The **Operations** submenu contains various useful 'operations' to modify blocks within [Selections](/editor/selections.md). + +> IMPORTANT: Operations only affect [Selections](/editor/selections.md). + +### Fill + +The 'Fill' operation fills the selected area of blocks with a specified block. A small [Window](/editor/windows/intro.md) will open, allowing you to choose which block by clicking the block icon. This will open the 'Select Block' Window. + +The default keybind for this operation is `Ctrl+F`. + +### Fill Nearest + +The 'Fill Nearest' operation doesn't use a specified block. Rather, it uses the nearest block that isn't air for each block within the selection. + +### Replace + +The 'Replace' operation is similar to 'Fill'. However, instead of filling every block in the selection, you can replace a specific block with another. + +The default keybind for this operation is `Ctrl+R`. Note that this shortcut is overridden when a [Placement](/editor/placement.md) is active. + +### Set Biome + +The 'Set Biome' Operation sets the biome within the selection with a specified biome. + +### Autoshade + +The 'Autoshade' operation shades your selection using a sun angle, either at the player position or at a set value. Different blocks can be set for the appropriate shading. + +The Autoshade Window has many options to control how blocks are lit. + +| Option | Description | +| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Sun | When enabled, lighting is used to shade blocks. When disabled, blocks are shaded with Ambient Occlusion. | +| From | The 'From' drop-down controls how the selection is lit. The different lighting modes include: **Player Position**, **Custom Positions** and **Sun Angle**. When the **Player Position** is selected, the light source is centred to the player position. With **Custom Positions**, you can set multiple fixed light sources. Pressing 'Add Position' will add a new light source at your current position. Each source is marked with a yellow 'sun' and the intensity can be changed to alter how bright the light source is. The **Sun Angle** creates a 'sun' light source at a set angle. This is similar to a 'spot' light source, however, sun light sources affect everything at the same angle. | +| Ambient Occlusion | Ambient Occlusion determines how exposed the block is to the light source. The less exposed a block is, the darker it'll be shaded. | +| Global Illumination | Global Illumination is the effect of light 'bouncing' off multiple objects. Increasing this slider will result in more 'bounces'. | +| Dither | Adds a blending effect to reduce the sharp texture changes. | +| Palette Options | The 'Palette Options' section is used to determine what blocks are used when shading. When the 'Type' drop-down is set to **Automatic**, blocks will be chosen depending on the surface. You will be provided with a set of toggles to filder out blocks you don't want. When the 'Type' drop-down is set to **Custom**, You'll be able to input your own blocks. The list is ordered from dark to light and you can influence the amount of a specific block by using the slider adjacent to the block icon. | + +You can save and load [Presets](/editor/toolpresets.md) for the Autoshade operation in the 'Presets' section. + +To confirm the Autoshade, press the 'Autoshade' button at the bottom of the window. + +### Drain + +Removes all water in your selection. This operation also removes the 'waterlogged' property from blocks. + +### Waterlog + +Replaces all air blocks with water and replaces all water-loggable blocks with their waterlogged variant. + +### Smoothsnow + +Adds a layer of snow between one and eight layers above existing terrain. No blocks are replaced as existing terrain is prioritised. + +The operation attempts to generate snow as smooth as possible. + +### Simulate Gravity + +The 'Simulate Gravity' operation processes simulates the effect of gravity to all blocks, regardless of whether they normally float or not. + +### Trigger Updates + +The 'Trigger Updates' operation removes any blocks that are incorrectly positioned. + +For example, a floating sign within the selection will be removed. + +### Hollow + +Fills the inside of the selected object with air, leaving the a shell of the original object. + +The 'Hollow' operation also considers transparent/non-solid blocks so having an exterior that includes glass will be accounted for. + +### Fill Gaps + +The 'Fill Gaps' does the opposite of the 'Hollow' operation, empty space within an object is filled with your active block. + +Again, transparent and non-solid blocks are considered. + +### Generate Colour Field + +The 'Generate Colour Field' operation Generates a colour field using the [CIELAB colour space](https://en.wikipedia.org/wiki/CIELAB_color_space) within a selection. + +A colour field (colour space) is a way to organise colours. CIELAB was chosen as it utilises XYZ coordinates to represent LAB. LAB represents three components of the colour space: +#### **L - (Lightness)** +- Brightness is mapped to positive X +- Darkness is mapped to negative X +#### **A - (Red/Green)** +- Red is mapped to positive Y +- Green is mapped to negative Y +#### **B - (Yellow/Blue)** +- Yellow is mapped to positive Z +- Blue is mapped to negative Z + +All blocks within the colour field used are full, non-transparent blocks to reduce overlapping. + +If two blocks are similar enough, Axiom will attempt to place them in the same position. However, Axiom prevents this by offsetting blocks until there is no overlap. This means there's little chance for blocks to be excluded. + +### Analyze + +Displays each block type within a selection ordered by the count of each block. A total for both the count and distribution is shown in the last row. + +### Animated Rebuild + +The 'Animated Rebuild' option allows for creating cinematics of a build being built block-by-block. + +> IMPORTANT: Animated Rebuild should be used with caution, as it may permanently break your structure. + +Below are all settings in the Animated Rebuild window. All settings for refer to the delay between block placement. + +| Delay Setting | Description | +| --------------------- | ---------------------------------------------------------------------------------------------------- | +| Start Delay | The time until the first block is placed.[^note1] | +| Max Delay | Determines the maximum delay for all delays. | +| Air Block Delay | The time it takes to place an air block within your selection. | +| Same Block Delay | The time taken to place the same adjacent block (excluding air). | +| Different Block Delay | The time it takes to place different adjacent blocks. | +| Random Extra Delay | A random delay added to each block delay. The extra delay is randomised for each block placed. | +| Horizontal Multiplier | Muliplies the delay with the provided value for all blocks placed with an offset on the Y axis. | +| Vertical Multiplier | Muliplies the delay with the provided value for all blocks placed with an offset on the X or Z axis. | + +By default, the starting point for the Animated Rebuild operation is located at the centre of the selection. To Change this, place a structure block at the position you'd like the rebuild to start. You can place multiple structure blocks to have more than one starting point. + +Pressing 'Do Animated Rebuild' will start the animation. To cancel mid-animation, press `Ctrl+Z` to revert to the original structure. ## Tool Masks - + Clear and open the tool mask editing window. See [Tool Masks](toolmasks.md) ## Window - -The **Windows** submenu lets the user toggle the visibility of [Windows](windows/intro.md). If you ever close a window and want it back, this submenu allows you to reenable it. - + +The **Windows** submenu lets the user toggle [Windows](windows/intro.md). If you ever close a window and want it back, this submenu allows you to re-enable it. With this window, you can also save and restore a default layout. + +To store a layout, pressing the 'Store Current Layout as Default' will save your current window layout. To restore the saved layout, press the 'Restore Default Layout' button. You can export and import layouts to and from your clipboard. + ## Keybinds The **Keybinds** button opens a window to edit and set keybinds for tools and operations. @@ -87,14 +251,8 @@ The **Keybinds** button opens a window to edit and set keybinds for tools and op The **Help** submenu contains useful information and configuration options. -The dropdown contains links to information and resources. The [style editor](windows/themes.md) can be accessed through this window, allowing you to change and import custom colours for the UI. +The dropdown contains links to information and resources. The [style editor](windows/themes.md) can be accessed through this window, allowing you to change and import custom colours for the Editor UI. ## Notes -[^note1]: comma-separated values (CSV) is a plaintext format that uses commas to separate values in a table-like manner. - -[^note2]: Be aware that biomes in Minecraft are defined in a 4x4x4 grid. However, to make biomes feel more natural, vanilla warps the biomes visually. The biome overlay shows the "real" position of biomes, while biome blending and the f3 screen show the "warped" position of biomes. - -[^note3]: Lava and other non-translucent fluids (if the game is modded) are not affected by opacity due to performance and mod compatibility concerns. - -[^note4]: [CIELAB](https://en.wikipedia.org/wiki/CIELAB_color_space) is a type of colour space that can utilise the XYZ coordinates to display colours. \ No newline at end of file +[^note1]: For versions 3.1.0 and below, a bug caused 'Start Delay' to be measured in ticks rather than seconds. \ No newline at end of file diff --git a/src/editor/placement.md b/src/editor/placement.md new file mode 100644 index 0000000..9d7d056 --- /dev/null +++ b/src/editor/placement.md @@ -0,0 +1,30 @@ +# Placement + +Placements can be repositioned and rotated using the [Gizmo](gizmos.md). + +Once the placement is in the correct position, you can use Enter or Ctrl+V to confirm it. To cancel a placement, use the Delete or Backspace key. + +> Tip: The placement can be rotated clockwise along the X and Z axis by using `Ctrl+R`. Placements can be flipped in the direction of your mouse vector by using `Ctrl+F`. + + ## Placement Options + +| Option | Description | +| --------------- | ---------------------------------------------------------------------------- | +| Keep Existing | Stops the placement from overriding pre-existing blocks | +| Paste Air | Enables air to override pre-existing blocks | +| Merge Blocks | Merges new blocks with existing blocks based on the block shape. | +| Unlock Rotation | Allows the placement to be rotated at any angle rather than 90 degree steps. | +| Rotate/Scale | Opens the [Rotate/Scale](placement.md#Rotate_and_Scale) window. | +| Snap to ground | Repositions the placement down to the nearest solid surface. | +| Paste Copy | Places a copy of the placement without cancelling the placement. | + +## Rotate and Scale + +The Rotate/Scale window allows for rotating and resizing by any amount. This window contains a drop-down with for multiple functions. Below are all options with a description. + +| Option | Description | +| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Nearest Neighbour | Nearest Neighbour has 6 translation inputs, one for each rotation axis and one for each scale axis. However the output may contain more artifacts than using the other translation types. | +| RotSprite | RotSprite has 3 translation inputs, there is one input for each rotation axis. | +| Scale2x | Scale2x has no inputs. It scales your placement by two times its size. | +| Scale3x | Scale3x has no inputs. It scales your placement by three times its size. | diff --git a/src/editor/selections.md b/src/editor/selections.md index ccaf4dc..310b867 100644 --- a/src/editor/selections.md +++ b/src/editor/selections.md @@ -2,10 +2,19 @@ A **Selection** is a set of highlighted blocks that affect the functionality of other systems. -There are three selection tools in Axiom that you can use to make selections. Each of these tools feature several options to further finetune what and how you might want to select something. See [Selection Tools](/tools/selection/intro.md) for more info. -With a selection, you can constrain the brush strokes of [Tools](/tools/intro.md) (note: some more complex tools don't respect selections yet, this will be addressed soon). +There are many selection tools in Axiom that you can use to make selections. Each of these tools feature several options to further fine-tune what and how you might want to select something. See [Selection Tools](/tools/selection/intro.md) for more info. -You can also apply [Operations](/editor/mainmenubar.md#operations) to the blocks in your selection. +With a selection, you can constrain the brush strokes of [Tools](/tools/intro.md). -Finally, to clear a selection, use '[Select](/editor/mainmenubar.md#select) > Clear' or press the Enter key +[Operations](/editor/mainmenubar.md#operations) rely on selections to affect blocks within a region. + +Finally, to clear a selection, use '[Select](/editor/mainmenubar.md#select) -> Clear' or press the Enter key + +Below are a few keybinds that can be used to move and copy selections. +- `Ctrl+C` + - Copies the selection to the [Clipboard](/windows/clipboard.md) +- `Ctrl+X` + - Cuts the selection, allowing you to move it anywhere you'd like using the [Gizmo](gizmos.md) +- `Ctrl+J` + - Duplicates the selection, similar to cut, but doesn't remove the blocks in the process. \ No newline at end of file diff --git a/src/editor/toolpresets.md b/src/editor/toolpresets.md index 4238fa2..998387b 100644 --- a/src/editor/toolpresets.md +++ b/src/editor/toolpresets.md @@ -1,7 +1,31 @@ # Tool Presets -Tool Presets allow for easy saving and loading of tool settings and configurations. Tool presets are saved in the axiom [configuration](/advanced/configuration.md) at `.minecraft/config/axiom/tool_presets` as NBT format. +Tool Presets allow for easy saving and loading of tool settings and configurations. Tool presets are saved in the Axiom [configuration](/advanced/configuration.md) at `.minecraft/config/axiom/tool_presets` as NBT format. ## Saving Presets -To save presets, first set the configuration of the tool you'd like to save. Clicking the plus icon next to the presets drop-down will display a text field. Here you can name the preset. After clicking save, your preset will appear in the drop-down. \ No newline at end of file +To save presets, first set the configuration of the tool you'd like to save. Clicking the plus icon next to the presets drop-down will display a text field. Here you can name the preset. After clicking save, your preset will appear in the drop-down. + +## Tools That Use Presets + +| Tool | +| -------------------------------------------------------- | +| [Autoshade](mainmenubar.md#autoshade) | +| [Distort](/tools/manipulation/distort.md) | +| [Elevation](/tools/heightmap/elevation.md) | +| [Gradient Painter](/tools/painting/gradientpainter.md) | +| [Melt](/tools/drawing/melt.md) | +| [Noise Painter](/tools/painting/noisepainter.md) | +| [Painter](/tools/painting/painter.md) | +| [Path](/tools/other/path.md) | +| [Rock](/tools/drawing/rock.md) | +| [Roughen](/tools/manipulation/roughen.md) | +| [Script Brush](/tools/painting/scriptbrush.md) | +| [Sculpt Draw](/tools/drawing/sculptdraw.md) | +| [Shatter](/tools/manipulation/shatter.md) | +| [Slope](/tools/heightmap/slope.md) | +| [Smooth](/tools/manipulation/smooth.md) | +| [Stamp](/tools/drawing/stamp.md) | +| [Tool Masks](/editor/windows/toolmasks.md) | +| [Lua Tool Masks](/editor/windows/toolmasks.md#scripting) | +| [Weld](/tools/drawing/weld.md) | \ No newline at end of file diff --git a/src/editor/windows/clipboard.md b/src/editor/windows/clipboard.md index 4e8c1b4..a14474f 100644 --- a/src/editor/windows/clipboard.md +++ b/src/editor/windows/clipboard.md @@ -4,38 +4,18 @@ A selection can be copied to the clipboard using Ctrl+C. -With blocks in your clipboard, you can paste back into the world by hovering over the desired location using your cursor position and pressing Ctrl+V. Pasting like this will initiate a [Placement](/editor/gizmos.md#Placement). +With blocks in your clipboard, you can paste back into the world by hovering over the desired location using your cursor position and pressing Ctrl+V. Pasting like this will initiate a [Placement](/editor/placement.md). The clipboard can be cleared by right-clicking the icon and choosing the 'clear' option. ## Rotation and Scaling -While the placement is initiated and the [Gizmo](/editor/gizmos.md) is visible, some options will appear on your [View](views.md) window[^note1]. - -## Placement Options - -| Option | Description | -| --------------- | ---------------------------------------------------------------------------- | -| Keep Existing | Stops the placement from overriding pre-existing blocks | -| Paste Air | Enables air to override pre-existing blocks | -| Merge Blocks | Merges new blocks with existing blocks based on the block shape. | -| Unlock Rotation | Allows the placement to be rotated at any angle rather than 90 degree steps. | -| Rotate/Scale | Opens the [Rotate/Scale](clipboard.md#Rotate_and_Scale) window. | -| Snap to ground | Repositions the placement down to the nearest solid surface. | - -## Rotate and Scale - -The Rotate/Scale window allows for rotating and resizing by any amount. This window contains a drop-down with for multiple functions. Below are all options with a description. - -| Option | Description | -| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Nearest Neighbour | Nearest Neighbour has 6 translation inputs, one for each rotation axis and one for each scale axis. However the output may contain more artifacts than using the other translation types. | -| RotSprite | RotSprite has 3 translation inputs, there is one input for each rotation axis. | -| Scale2x | Scale2x has no inputs. It scales your placement by two times its size. | -| Scale3x | Scale3x has no inputs. It scales your placement by three times its size. | +While the [placement](/editor/placement.md) is initiated and the [Gizmo](/editor/gizmos.md) is visible, some [options](/editor/placement.md#placement-options) will appear on your [View](views.md) window[^note1]. > Tip: Left-clicking the 'Empty' clipboard icon opens up the [Blueprint Browser](blueprints.md). +> Tip: You can set the Cut function save to the clipboard in the [Keybinds Menu](/editor/mainmenubar.md#Keybinds). + ## Notes [^note1]: For versions 3.0.0 and below, the options will appear inside the clipboard window. \ No newline at end of file diff --git a/src/img/BuilderToolsOverview.png b/src/img/BuilderToolsOverview.png index 57426b4..bd85fc0 100644 Binary files a/src/img/BuilderToolsOverview.png and b/src/img/BuilderToolsOverview.png differ diff --git a/src/img/buildertools/builderIcons.gif b/src/img/buildertools/builderIcons.gif deleted file mode 100644 index bc36ccd..0000000 Binary files a/src/img/buildertools/builderIcons.gif and /dev/null differ diff --git a/src/img/buildertools/builderIconsLarge.gif b/src/img/buildertools/builderIconsLarge.gif deleted file mode 100644 index 0e1794f..0000000 Binary files a/src/img/buildertools/builderIconsLarge.gif and /dev/null differ diff --git a/src/img/gizmo.png b/src/img/gizmo.png new file mode 100644 index 0000000..c965d47 Binary files /dev/null and b/src/img/gizmo.png differ diff --git a/src/tools/drawing/shape.md b/src/tools/drawing/shape.md index e576cd2..ca53657 100644 --- a/src/tools/drawing/shape.md +++ b/src/tools/drawing/shape.md @@ -48,9 +48,14 @@ Each shape lets you tweak its XZ or XYZ dimensions. In addition to controlling r | Placement           | Description                                                 | |---------------------|-------------------------------------------------------------| | Gizmo               | Switch between a global or local [gizmo](/editor/gizmos.md) | -| Pivot               | Switch between centred gizmo or base gizmo position | +| Pivot               | Switch between centred gizmo or base gizmo position | -**Keep Existing** Disables the overriding of other blocks when placing the shape. +## Paste + +| Paste | Description | +| ------------- | --------------------------------------------------------------- | +| Keep Existing | Disables the overriding of other blocks when placing the shape. | +| Paste Copy | Places a copy of the shape at the current position. | ## Video Demo diff --git a/src/tools/drawing/stamp.md b/src/tools/drawing/stamp.md index 36e979d..333c622 100644 --- a/src/tools/drawing/stamp.md +++ b/src/tools/drawing/stamp.md @@ -7,7 +7,7 @@ The **Stamp Tool** is a [Blueprint](/editor/windows/blueprints.md) placement too | Base Chance | The base chance is the final factor that determines placement. A base chance of 1 means it will always place the blueprint regarding the Min Spacing. | | Min Spacing | The Minimum Spacing is the first factor that determines placement. A minimum spacing of 5 will result in the centre of two blueprints being at least five blocks apart. | | Place (Immediate) | The immediate option places all blueprints immediately after releasing your brush stroke. | -| Place (Deferred) | The deferred option allows you to place blueprints with multiple strokes. You can also manually offset the positions of the blueprints by using the [Gizmo](/editor/gizmos.md) located at the centre of the blueprint. New brush strokes will still apply the placement rules to previously placed blueprints. | +| Place (Deferred) | The deferred option allows you to place blueprints with multiple strokes. You can also manually offset and rotate the blueprints by using the [Gizmo](/editor/gizmos.md) located at the centre of the blueprint. New brush strokes will still apply the placement rules to previously placed blueprints. | | Random Yaw | Randomises the placement by rotating the blueprint in a random direction. | | Random X/Z Flip | Randomises the placement by flipping the blueprint on the X and Z axis. | | Keep Existing | When enabled, pre-existing blocks are not overridden. | diff --git a/src/tools/manipulation/modify.md b/src/tools/manipulation/modify.md index 416ea96..e25c049 100644 --- a/src/tools/manipulation/modify.md +++ b/src/tools/manipulation/modify.md @@ -17,6 +17,8 @@ With your selection active, two circular lines will appear, the red indicates th The Revolve tool can rotate on all three axes separately and has an option to control the amount of angle the tool uses. An angle of 360 does a full loop and 180 does a half loop.   +The **Add Translation** button will allow you to offset the end position of the revolve using whole or decimal numbers. + ## Translate Copies Similar to[stack](/builder/stack.md), Translate Copies allows for offsetting by relative or absolute values. The count controls the amount of copies to be made with the offset. diff --git a/src/tools/other/path.md b/src/tools/other/path.md index 404d8d1..d9ad55f 100644 --- a/src/tools/other/path.md +++ b/src/tools/other/path.md @@ -1,56 +1,64 @@ -# Paths +# Path -The path tool allows you create curves in 3d space using gizmos as nodes. Click on any point to create a gizmo. It will be automatically selected. Click `ctrl + z` or the undo keybind to remove the currently selected gizmo. +The path tool features the ability to set multiple points in a 3D environment and choose how each point is connected with blocks. -# Curve types +The block used is determined by the [Active Block](/editor/windows/activeblock.md) -You may select from Linear(Bresenham), Linear(DDA), Catenary, Catmull-Rom Spline, and Bezier curve. +You can choose from either a line or a curved path to connect the points. There are multiple variants for both lines and curves: -# Linear(Bresenham) +- Line + - Bresenham + - DDA +- Curve + - Catenary + - Catmull-Rom Spline + - Bezier Curve -This creates a straight line from node to node. Diagonal blocks are not filled in. You cannot change the radius and shape. +## Path Types -![Linear(Bresenham)](https://imagedelivery.net/W9K_l6ndK9x4x8m3rurakg/5fd8e02b-0698-453c-8f90-cbd716807d00/original) +### Line (Bresenham) -# Linear(DDA) +A line which is always one block wide and only changes angle once it has reached a node. This is the only path type without a modifiable width. -This also creates a straight line from node to node. The diagonal blocks are filled in. You may change the radius and shape. -![Linear(DDA)](https://imagedelivery.net/W9K_l6ndK9x4x8m3rurakg/b9d88f87-5f1a-4e87-deb1-60a6485e1300/original) +### Line (DDA) -# Catenary +Unlike the Bresenham Line, the DDA has a modifiable width using the **Radius** slider, allowing for rounded path lines. -This creates a line which has some slack. It dangles down from node to node. The diagonal blocks are filled in. You may change the radius and shape. +### Catenary -There are two more parameters for this curve. You may invert it such that it is flipped upside down. You may also adjust the slack, a 0% slack is a straight line. +This path type creates the effect of hanging rope or bunting. For each point, the path takes a 'dipped' approach to the next point. You can increase the slack by increasing the **Slack** slider. -![Catenary](https://imagedelivery.net/W9K_l6ndK9x4x8m3rurakg/90849c39-9774-4ad7-377a-efed21509400/original) +You can also invert the slack direction by enabling the **Inverted** button. -# Catmull-Rom Spline -This type of spline is particularly useful for creating smooth paths. The spline passes through every node. The spline is also continuously smoothed between nodes evenly*. +### Catmull-Rom Spline -![Catmull-Rom Spline](https://imagedelivery.net/W9K_l6ndK9x4x8m3rurakg/d2b12da7-3514-4be9-6ba1-3ae1d589d900/original) +This path type smoothes out the path direction while still reaching each node. -# Bezier Curve +### Bezier Curve -A Bezier curve is formed by specifying a set of nodess that influence the shape of the curve. The curve starts at the first nodes, ends at the last node, and is influenced by the positions of the intermediate control points. The curve smoothly interpolates between the control points. The curve does NOT pass through all the nodes. The nodes other than the start and end nodes affect how the curve is shaped. -[Read more here](https://www.wikiwand.com/en/B%C3%A9zier_curve) +The Bezier Curve path type smoothes the path but isn't required to reach each node except for the start and end nodes. Unlike the Catmull-Rom Spline, the nodes influence the direction rather than direct it. -![Bezier Curve](https://imagedelivery.net/W9K_l6ndK9x4x8m3rurakg/24a41357-17ef-4403-8ecd-6994d06cad00/original) +## Path Tool Options -# Additional curve options +| Option | Description | +| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Looped | Connects the end position to the start position to form a loop. | +| Use Stairs and Slabs | This option only appears when using a block with stair or slab variants such as stone or planks. It smooths out the path by adding stairs and slabs to the curve or line. This works best with a radius of one or more. | +| Shape | Allows you to switch between a flat or spherical path shape. This setting is not available for the Bresenham line. | +| Radius | Used to adjust the width of the chosen shape. This setting is not available for the Bresenham line. | +| Keep Existing | When enabled, all existing blocks will not be overridden by the path. | +| Extend to Ground | When enabled, the path is extended to the ground until it reaches a solid surface. | +| Paste Copy | The 'Paste Copy' button places the path while allowing you to continue editing it. | -Looped: When enabled, this connects the first and last nodes, forming a loop. +## Node Options -# Node specific options +When an individual node is selected, you can adjust the position using the [Gizmo](/editor/gizmos.md). -**Overried Block** +Alongside adjusting node positions, you can modify the node properties individually. -This option allows you to override the block for that node. It forms a gradient between the connected node(s). If this option is not enabled, the active block is used by default, forming a gradient with that block. - -**Override Radius** - -This option allows you to override the radius for that node. When enabled, the radius will smoothly transition between each node, allowing you to create curves with changes in thickness. - -**Catmull-Rom Spline Easing** - -You may select between Linear, Slight, Quadratic, Cubic, or Quartic easing. Each easing looks different. This only affects the easing of the selected node. \ No newline at end of file +| Option | Description | +| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Position | Allows for changing the coordinates of the selected node directly. | +| Override Block | Allows for overriding the block used for the node. The blocks between each node are blended using a [Bezier gradient](/painting/gradientpainter.md#interpolation). | +| Override Radius | Enables the ability to set a radius for that node specifically. The path smoothly increases width along two points. | +| Remove | Deletes the current node. This can also be done by pressing the `Del` or `Backspace` key. | \ No newline at end of file diff --git a/src/tools/painting/painter.md b/src/tools/painting/painter.md index 57e9b08..d05210a 100644 --- a/src/tools/painting/painter.md +++ b/src/tools/painting/painter.md @@ -4,4 +4,6 @@ The **Painter** is the most basic painting tool. It allows you to paint blocks w The **Mask Surface** option allows only painting blocks which are adjacent to a non-solid block. -The **Mode** drop-down allows switching between [Active Block](/editor/windows/activeblock.md), [Clipboard](/editor/windows/clipboard.md) and Gradient. The active block mode paints with your active block. The clipboard mode paints using your clipboard in a repeating grid pattern. The gradient mode is similar to The [Gradient Painter](gradientpainter.md) but instead paints the gradient around the centre of the brush. The merge strokes option for the gradient mode stops the painter from overriding blocks that are in the gradient. \ No newline at end of file +The **Copy Properties** option appears when the [Active Block](/editor/windows/activeblock.md) has a block that has more than one variant. This could include stairs or slabs. When enabled, it replacing existing slabs, stairs, etc to the active block. This is similar to the [Type Replace](/builder/contextmenu.md#Toolbox) found in the [Replace Capability](/capabilities/replacemode.md). + +The **Mode** drop-down allows switching between Active Block, [Clipboard](/editor/windows/clipboard.md) and Gradient. The active block mode paints with your active block. The clipboard mode paints using your clipboard in a repeating grid pattern. The gradient mode is similar to The [Gradient Painter](gradientpainter.md) but instead paints the gradient around the centre of the brush. The merge strokes option for the gradient mode stops the painter from overriding blocks that are in the gradient. \ No newline at end of file