reposbox-spritetoolscancel

118 Commits over 92 Days - 0.05cph!

5 Days Ago
Fix SpriteComponent.UsePixelScale when AspectRatio != 1
5 Days Ago
Added SpriteComponent.UsePixelScale. When enabled, a 32x32 Sprite will have the dimensions of 32x32 instead of the default 100x100.
8 Days Ago
Fix massive Performance spike when loading certain Tilesets
9 Days Ago
Fix NREs when a Tileset has no Tiles defined Fix Performance issues with the Tileset RenderingWidget in Tileset Editor and Tileset Tool
10 Days Ago
Update .sbproj Completely refactor how tile textures are cropped in the Tileset Editor. Allows you to work with tilesets around or above 4K without massive hitches. Cursor shows as pointer when hovering a TileControl
15 Days Ago
Update .sbproj Added SpriteResource.GetAllTexturePaths()
18 Days Ago
Revert shader back to the manually edited shader since it's still needed for shadows
18 Days Ago
Revert manual shader changes and add calculated Bounds to TilesetSceneObject to prevent improper ordereing. Update Example Scene
18 Days Ago
Fix not being able to Zoom in certain Rendering Widgets Fixed issues with Sprites that had an aspect ratio of < 1 (scales width instead of height and vice-versa so things always fit in view)
18 Days Ago
Added Tags to TileResource
19 Days Ago
Potential NRE fix for GetAttachmentPosition Fix AspectRatio only returning integer values
19 Days Ago
Queue Broadcast Events on the correct frame. Resolves Facepunch/sbox-spritetools#17
20 Days Ago
Don't place tile at -MaxValue,-MaxValue when using Line Tool or Rect Tool on a single position
27 Days Ago
Fix AspectRatio NRE
27 Days Ago
Clear Animation Queue properly 😅 Pre-cache all animations in SpriteResource PostLoad. Can eventually calculate these when they are saved and have them be part of the resource in the future. do not compile shadergraph for now since i am manually applying depth for shadows until theres a proper fix
29 Days Ago
Tileset Component uses hulls for necessary collisions
29 Days Ago
Moved existing Code files into a "Sprite" folder Create Tileset folder and add a basic TilesetResource Add empty TilesetComponent with stripped Tile class. Will optimize this further later. Began basic Tileset Tool, Draw grid with gizmo instead Create TilesetToolInspector, rebuild on hotload Strip TilesetComponent.Tile class and add TilesetComponent.Layer class TileMapTools -> TilesetTools. Add ControlSheet to TilesetToolInspector Create GameObject w Component when necessary Added SelectedLayer and Active to TilesetTool. Tileset Tool Header shows Selected Layer Created Layer List Widget and Layer Widget, displays in both ToolInspector and TileComponent https://files.facepunch.com/CarsonKompon/2024/July/22_22-51-HugeOtter.mp4 TilesetComponent.Layers is now a property under the Layers group Added Dragging to re-order Layers https://files.facepunch.com/CarsonKompon/2024/July/22_23-09-ThoughtfulNabarlek.mp4 Change Height of Layer Scroll Area Darken the layer being dragged Ask for confirmation before deleting animation w/ right click Added .Copy() functions to Tile and Layer classes TilesetToolInspector NRE fix Added Context Menu to TilesetLayerControl https://files.facepunch.com/CarsonKompon/2024/July/23_07-52-ImperfectAmphibian.mp4 Fix TilesetLayerListControl Height Create TilesetSceneObject for drawing tiles in a single Graphics.Draw call. Replace Delete IconButton with Lock Button. https://files.facepunch.com/CarsonKompon/2024/July/23_08-49-GrowingMastiff.png Import some tile assets Test Tileset Resource TilesetLayerControl deletes on right click without the additional popup Rebuild TilesetToolInspector when Selected Layer changes. Serialize Selected Layer as part of the ControlSheet Fixed TilesetComponent SceneObject vertex maths. Each layer now gets its own material, sharing materials between layers if same atlas is used. Update Grid Size to follow Tileset size Fix Selected Layer inspector update TilesetComponent NRE fixes Fix e defined but not set Removed unused variable viewerPosition Show preview tile under cursor when in Tileset Tool. Fit to Grid nicely Updated TileResource structure and prepared for creating Tileset Editor Move UndoStack from SpriteTools.SpriteEditor to SpriteTools namespace Removed AllWindows from SpriteEditor. Removed some debug logs from SpriteEditor. StateCookie is based on resource opened More updates to TilesetResource. TilesetResource is titled "2D Tileset" and Tileset Component is "2D Tileset component". Added SpriteComponent and TilesetComponent to "2D" category Basic TilesetEditor (Empty Window for now. Fitted with asset saving/loading, toolbars, undostack, ect. Move SpriteRenderingWidget up to SpriteTools namespace Move SpritesheetImporter from SpriteTools.SpriteEditor namespace to SpriteTools namespace and make import an Action that SpriteEditor hooks into. Hook up SpritesheetImporter to TilesetEditor window Add Inspector to Tileset Editor Add RenderingWidget/Preview to Tileset Editor Add base settings to TilesetEditor Inspector. Minor changes to TilesetResource MultiPick -> MultiSelect Add SegmentedControl to Tileset Editor with Setup and Tiles tabs Tileset Editor undo/redo works properly now and has undo steps for properties changing Add Regenerate Tiles button with warning beneath explaining what it will do Only show warning when tiles already exist Display image in Preview when set/updated. Show import gizmos when in setup tab. Show WarningBox with a different message when trying to view Tiles tab with no Tiles Generate Tiles button generates tiles from shown import gizmos. Doesnt display in Tiles tab yet Start on Tiles tab if Tileset already has Tiles Onlyu display new import gizmos when no tiles exist or when hovering the Regenerate Button Added "Delete All Tiles" button when resource has tiles. When undoing/redoing an action the inspector will rebuild appropriately Added Tile Gizmos. Hovering over a Tile Gizmo will highlight it. Implemented TilesetResource.CurrentTileSize so Setup variable can affect current tiles (with optional regeneration button) https://files.facepunch.com/CarsonKompon/2024/July/26_00-18-MadeupHoneybee.mp4 Organized Editor folder and made LabelTextEntry agnostic with OnStopEditing action Add Name to TileResource.Tile Fix not used warning Add EmptyValue to LabelTextEntry Add PixmapCache for creating cropped pixmaps from textures Use PixmapCache in SpriteEditor Created TileListControl and TileControl for TilesetEditor. Shows list of all created tiles. Shows preview icon. Can be renamed/reordered/ect. https://files.facepunch.com/CarsonKompon/2024/July/26_10-38-TrickyHellbender.mp4 Move Editor Controls to Controls folder Clean up some tile control styling Added SelectedTile to Tileset Editor. Can select from list. Deleted tiles show as ghost tiles, selected tile is highlighted and is a different colour. Can click on Tile Gizmo to select it, right click to delete. Deleting selected tile will select first tile it can. Clicking on ghost tile creates tile at that position. Make necessary fixes to allow swapping out sheets https://files.facepunch.com/CarsonKompon/2024/July/26_12-06-NextMealworm.mp4 Draw selected widget above others Add CornerDrag Gizmos to Selected Tile. Change cursor when hovering based on direction. Show as hidden when movement is invalid. Can click and drag Corners to resize the tile. Bunch of updates to invalid resize checks https://files.facepunch.com/CarsonKompon/2024/July/26_14-08-PlainArmednylonshrimp.mp4 Adding/Removing tiles by clicking on gizmos are part of the undo stack Tiles have their own Guid now. This does not get serialized and are assigned on load Don't allow to box to resize into others. Prevent deselecting gizmo when resizing up-left LabelTextEntry text now updates when property updates (if it was edited elsewhere) Added "Selected Tile" section to Tileset Editor Inspector Put Selected Tile section in an Expand Group so we can have ControlSheet groups within that are less confusing Display [ReadOnly] Index in Selected Tile group Removed TilesetResource.SheetRect and replaced it with two Vector2Ints (Position and Size). Fixed can drag logic on Corners Remove cooldown on resize so it's snappier Added Multi-Select to Tiles List and supported MultiEdit in the Selected Tile Inspector. Adding/Removing tiles no longer rebuilds entire list, only makes necessary changes. Also fixed a few NREs from previous commit Can remove from selection when CTRL selecting in tile list Can now MultiSelect from gizmos directly https://files.facepunch.com/CarsonKompon/2024/July/26_20-12-InsidiousChinchilla.mp4 Can now create new tile even if tiles have yet to be generated. Will use current settings from Setup tab. Updated warning box text in Tiles tab to fit. Update inspector when adding first tile/removing last. Fix divide by zero error when dragging sprite with single frame in first animation Support TileSize of non-square size. Draw grid accordingly. Push the example assets for now since old ones are ancient Added Click and Drag to move tiles in Tileset Editor https://files.facepunch.com/CarsonKompon/2024/July/28_16-49-VibrantIvorybilledwoodpecker.mp4 Update TilesetComponent.Tile and UVs on drawing Fix TilesetTool NRE Setup BaseTileTool for Tileset Subtools Added PaintTileTool for painting tiles Fix tile drawing so higher layers are drawn above lower ones. Fix layer index on Tile Tools Add EraseTileTool. Choose when preview tile renders Added Shortcuts using new Shortcut attribute Don't draw tileset tool sceneobject when no subtool is selected https://files.facepunch.com/CarsonKompon/2024/July/30_20-54-LivelyAldabratortoise.mp4 Update Shortcuts to use the new Editor Keybinds system Did some minor tileset optimizations. Added Line Tool to Tileset Tool https://files.facepunch.com/CarsonKompon/2024/August/02_10-44-SickBird.mp4 Update example project assets Round calculated line positions instead of flooring them (prevents lines from looking oddly curved at certain angles) Added Rectangle Tool Tileset Tool Inspector now shows Properties on the currently selected tool. Added Separation to Line Tool and Hollow to Rectangle Tool https://files.facepunch.com/CarsonKompon/2024/August/02_11-11-IllinformedArmyworm.mp4 Right Click with Rectangle Tool will delete https://files.facepunch.com/CarsonKompon/2024/August/02_12-33-CheerfulAngora.mp4 Fix Rectangle Tool Delete Gizmo displaying incorrectly Rectangle Tool optimizations and bug fixes Make TilesetComponent.Tiles a Dictionary instead of a List so position lookup is much more easy/optimal Add Collider generation to Tileset Component https://files.facepunch.com/CarsonKompon/2024/August/02_19-31-DarkgoldenrodFlycatcher.mp4 Added TileComponent.HasCollider, defaults to false. Rebuild TilesetComponent collision on tile add/remove. https://files.facepunch.com/CarsonKompon/2024/August/02_19-45-IndianredAsiandamselfly.mp4 Can mark a Layer as a Collision Layer. Collision Mesh will only be generated from this layer. https://files.facepunch.com/CarsonKompon/2024/August/02_20-37-TotalAss.png Fixed a bunch of NREs when Layer(s) or Tile(s) weren't set yet. Also fixed tools not updating when certain properties were changed in the inspector Tileset Tool Inspector NRE fix Tiles are referenced by Guid instead of CellPosition. Allows you to edit existing tiles after being placed already https://files.facepunch.com/CarsonKompon/2024/August/03_10-17-HelplessSanddollar.mp4 Update example scene to use guid format Fix Deserialization on TilesetComponent.Tile Added "Bake Selected Layer" button to Tileset Tool. This detaches any placed tiles from their references. https://files.facepunch.com/CarsonKompon/2024/August/03_11-01-MediocrePaddlefish.mp4 Added Tile Picker to Tileset Tool Inspector https://files.facepunch.com/CarsonKompon/2024/August/03_12-52-StormyRabbit.mp4 Paint Tool can now paint tiles larger than size 1x1 https://files.facepunch.com/CarsonKompon/2024/August/03_13-06-OutrageousAnemone.mp4 Don't draw tiles with broken id references, don't rent those verts Don't draw multi-tile brush in non-paint tool. Added Rotation and Flip variables w/ Shortcuts Can now place rotated/flipped tiles. https://files.facepunch.com/CarsonKompon/2024/August/03_13-37-VirtuousDarklingbeetle.mp4 Updated example again More example scene stuff NRE fix Only draw Collision Gizmo when TilesetComponent is selected Draw Missing Tiles (When a placed unbaked tile has their referenced tile deleted/regenerated) https://files.facepunch.com/CarsonKompon/2024/August/04_10-56-UnlawfulGallinule.png Various minor optimizations Don't show base Collider Properties in the Tileset Tool Inspector TilesetComponent now has proper collisions. Also cleaned up the Rebuild function https://files.facepunch.com/CarsonKompon/2024/August/08_13-55-GummyTopi.mp4 Created TileAtlas class which will create a new texture from a Tileset that adds 1px of bleed around each tile so you don't see UV seems at medium-to-far zoom levels. Rewrote TilesetComponent to use TileAtlas w some other minor optimizations https://files.facepunch.com/CarsonKompon/2024/August/08_17-04-SnivelingQuetzalcoatlus.mp4 TileAtlas now properly adds bleeding tiles for tiles of sizes larger than 1,1 Fix AspectRatio returning 1 (even when not 1) for single frame sprites OnAnimationComplete is now run on the main thread so code isn't unknowingly run on other threads Added TileScale to TilesetResource. Changes scale of placed tiles. Fixed some TilesetComponent collision faces facing the wrong way Added support for rotating tiles of size larger than 1,1 https://files.facepunch.com/CarsonKompon/2024/August/09_12-14-ElatedEarthworm.mp4 Added Undo/Redo support to Tileset Tools Merge branch 'tilemap-tools'
29 Days Ago
Added Undo/Redo support to Tileset Tools
29 Days Ago
Added TileScale to TilesetResource. Changes scale of placed tiles. Fixed some TilesetComponent collision faces facing the wrong way Added support for rotating tiles of size larger than 1,1 https://files.facepunch.com/CarsonKompon/2024/August/09_12-14-ElatedEarthworm.mp4
30 Days Ago
OnAnimationComplete is now run on the main thread so code isn't unknowingly run on other threads
30 Days Ago
Fix AspectRatio returning 1 (even when not 1) for single frame sprites
30 Days Ago
TileAtlas now properly adds bleeding tiles for tiles of sizes larger than 1,1
30 Days Ago
Created TileAtlas class which will create a new texture from a Tileset that adds 1px of bleed around each tile so you don't see UV seems at medium-to-far zoom levels. Rewrote TilesetComponent to use TileAtlas w some other minor optimizations https://files.facepunch.com/CarsonKompon/2024/August/08_17-04-SnivelingQuetzalcoatlus.mp4
30 Days Ago
Don't show base Collider Properties in the Tileset Tool Inspector TilesetComponent now has proper collisions. Also cleaned up the Rebuild function https://files.facepunch.com/CarsonKompon/2024/August/08_13-55-GummyTopi.mp4
31 Days Ago
Don't apply LocalScale to GetAttachmentTransform
32 Days Ago
Temporary shadow fix for sprite_2d shader
32 Days Ago
Various minor optimizations
34 Days Ago
More example scene stuff NRE fix Only draw Collision Gizmo when TilesetComponent is selected Draw Missing Tiles (When a placed unbaked tile has their referenced tile deleted/regenerated) https://files.facepunch.com/CarsonKompon/2024/August/04_10-56-UnlawfulGallinule.png
35 Days Ago
Don't draw tiles with broken id references, don't rent those verts Don't draw multi-tile brush in non-paint tool. Added Rotation and Flip variables w/ Shortcuts Can now place rotated/flipped tiles. https://files.facepunch.com/CarsonKompon/2024/August/03_13-37-VirtuousDarklingbeetle.mp4 Updated example again
35 Days Ago
Paint Tool can now paint tiles larger than size 1x1 https://files.facepunch.com/CarsonKompon/2024/August/03_13-06-OutrageousAnemone.mp4
35 Days Ago
Added Tile Picker to Tileset Tool Inspector https://files.facepunch.com/CarsonKompon/2024/August/03_12-52-StormyRabbit.mp4
35 Days Ago
Added "Bake Selected Layer" button to Tileset Tool. This detaches any placed tiles from their references. https://files.facepunch.com/CarsonKompon/2024/August/03_11-01-MediocrePaddlefish.mp4
35 Days Ago
Tileset Tool Inspector NRE fix Tiles are referenced by Guid instead of CellPosition. Allows you to edit existing tiles after being placed already https://files.facepunch.com/CarsonKompon/2024/August/03_10-17-HelplessSanddollar.mp4 Update example scene to use guid format Fix Deserialization on TilesetComponent.Tile
35 Days Ago
Fixed a bunch of NREs when Layer(s) or Tile(s) weren't set yet. Also fixed tools not updating when certain properties were changed in the inspector
36 Days Ago
Fix Rectangle Tool Delete Gizmo displaying incorrectly Rectangle Tool optimizations and bug fixes Make TilesetComponent.Tiles a Dictionary instead of a List so position lookup is much more easy/optimal Add Collider generation to Tileset Component https://files.facepunch.com/CarsonKompon/2024/August/02_19-31-DarkgoldenrodFlycatcher.mp4 Added TileComponent.HasCollider, defaults to false. Rebuild TilesetComponent collision on tile add/remove. https://files.facepunch.com/CarsonKompon/2024/August/02_19-45-IndianredAsiandamselfly.mp4 Can mark a Layer as a Collision Layer. Collision Mesh will only be generated from this layer. https://files.facepunch.com/CarsonKompon/2024/August/02_20-37-TotalAss.png
36 Days Ago
Right Click with Rectangle Tool will delete https://files.facepunch.com/CarsonKompon/2024/August/02_12-33-CheerfulAngora.mp4
36 Days Ago
Added Rectangle Tool Tileset Tool Inspector now shows Properties on the currently selected tool. Added Separation to Line Tool and Hollow to Rectangle Tool https://files.facepunch.com/CarsonKompon/2024/August/02_11-11-IllinformedArmyworm.mp4
36 Days Ago
Round calculated line positions instead of flooring them (prevents lines from looking oddly curved at certain angles)
36 Days Ago
Did some minor tileset optimizations. Added Line Tool to Tileset Tool https://files.facepunch.com/CarsonKompon/2024/August/02_10-44-SickBird.mp4 Update example project assets
37 Days Ago
Update Shortcuts to use the new Editor Keybinds system
39 Days Ago
Fix layer index on Tile Tools Add EraseTileTool. Choose when preview tile renders Added Shortcuts using new Shortcut attribute Don't draw tileset tool sceneobject when no subtool is selected https://files.facepunch.com/CarsonKompon/2024/July/30_20-54-LivelyAldabratortoise.mp4
40 Days Ago
Update TilesetComponent.Tile and UVs on drawing Fix TilesetTool NRE Setup BaseTileTool for Tileset Subtools Added PaintTileTool for painting tiles Fix tile drawing so higher layers are drawn above lower ones.
41 Days Ago
Added Click and Drag to move tiles in Tileset Editor https://files.facepunch.com/CarsonKompon/2024/July/28_16-49-VibrantIvorybilledwoodpecker.mp4
41 Days Ago
Fix divide by zero error when dragging sprite with single frame in first animation Support TileSize of non-square size. Draw grid accordingly. Push the example assets for now since old ones are ancient
41 Days Ago
Fix divide by zero error when dragging sprite with single frame in first animation
43 Days Ago
Remove cooldown on resize so it's snappier Added Multi-Select to Tiles List and supported MultiEdit in the Selected Tile Inspector. Adding/Removing tiles no longer rebuilds entire list, only makes necessary changes. Also fixed a few NREs from previous commit Can remove from selection when CTRL selecting in tile list Can now MultiSelect from gizmos directly https://files.facepunch.com/CarsonKompon/2024/July/26_20-12-InsidiousChinchilla.mp4 Can now create new tile even if tiles have yet to be generated. Will use current settings from Setup tab. Updated warning box text in Tiles tab to fit. Update inspector when adding first tile/removing last.
43 Days Ago
Adding/Removing tiles by clicking on gizmos are part of the undo stack Tiles have their own Guid now. This does not get serialized and are assigned on load Don't allow to box to resize into others. Prevent deselecting gizmo when resizing up-left LabelTextEntry text now updates when property updates (if it was edited elsewhere) Added "Selected Tile" section to Tileset Editor Inspector Put Selected Tile section in an Expand Group so we can have ControlSheet groups within that are less confusing Display [ReadOnly] Index in Selected Tile group Removed TilesetResource.SheetRect and replaced it with two Vector2Ints (Position and Size). Fixed can drag logic on Corners
43 Days Ago
Draw selected widget above others Add CornerDrag Gizmos to Selected Tile. Change cursor when hovering based on direction. Show as hidden when movement is invalid. Can click and drag Corners to resize the tile. Bunch of updates to invalid resize checks https://files.facepunch.com/CarsonKompon/2024/July/26_14-08-PlainArmednylonshrimp.mp4
43 Days Ago
Move Editor Controls to Controls folder Clean up some tile control styling Added SelectedTile to Tileset Editor. Can select from list. Deleted tiles show as ghost tiles, selected tile is highlighted and is a different colour. Can click on Tile Gizmo to select it, right click to delete. Deleting selected tile will select first tile it can. Clicking on ghost tile creates tile at that position. Make necessary fixes to allow swapping out sheets https://files.facepunch.com/CarsonKompon/2024/July/26_12-06-NextMealworm.mp4
43 Days Ago
Organized Editor folder and made LabelTextEntry agnostic with OnStopEditing action Add Name to TileResource.Tile Fix not used warning Add EmptyValue to LabelTextEntry Add PixmapCache for creating cropped pixmaps from textures Use PixmapCache in SpriteEditor Created TileListControl and TileControl for TilesetEditor. Shows list of all created tiles. Shows preview icon. Can be renamed/reordered/ect. https://files.facepunch.com/CarsonKompon/2024/July/26_10-38-TrickyHellbender.mp4