Giter VIP home page Giter VIP logo

loenn's Introduction

Lönn

discord downloads Latest Version License

(we're in #map_making on the "Mt. Celeste Climbing Association" Discord server)


Lönn is a visual level maker and editor for the game Celeste. It allows editing map binaries, creating new ones, adding rooms, and filling the rooms with anything your heart desires (as long as what your heart desires is possible within the realms of the game). The generated map binaries can be loaded in the stock game or using Everest, although the use of Everest is highly recommended. For use without Everest, you can replace a map in Content/Maps (remember backups), otherwise, you can place it in Mods/<yourmodname>/Maps with Everest and use the custom chapter loading (refer to the Mod Structure guide).

The program is still in an early state, some things are still missing and it is under active development. If you spot something that is missing, it will most likely be added some time in the near future. If you spot a bug or the program crashes, please report it.

Lönn is a successor to Ahorn, a visual level maker based on Maple. If you want to be able to generate and edit maps using code, give Maple a try.

This project is an unofficial map maker and level editor, it is merely a fan project trying to enable map development in the most user-friendly way we can think of. None of this code is developed by or connected to the Celeste development team, but we thank the team for supporting our projects.

Installation

Windows

Download the latest release for Windows and extract the .zip file you get into an empty directory. Run Lönn.exe to start the program.

MacOS

Download the latest release for MacOS and extract the .zip file you get into an empty directory (Safari might do this automatically). Launch the extracted Lönn app to start the program.

Other Operating Systems

First, install love2d. Lönn requires love2d version 11.3 or later; make sure to download love2d from the official website. Also make sure that the love command is in your PATH.

Download the latest release for your operating system and extract the .zip file you get into an empty directory. Launch Lönn.sh to start the program, or run it directly using love Lönn.love.

Usage

The tools in Lönn are shown on the right, just select one to use it. Hold right click to move around the map. Left click is your main way of placing objects or selecting things. Tools like rectangle placement require holding left click while moving across the screen. Scroll to zoom.

In any menu, you can hover over the name of an option or field for a detailed tooltip explaining its meaning and usage.

Lönn supports a couple of keybinds and special mouse functionality, with more to come. The following list might not be comprehensive. Note that you can change all keybinds in the configuration file.


General Controls

  • Ctrl + N: New map
  • Ctrl + O: Open map
  • Drag & drop map file into main window: Open map
  • Ctrl + S: Save map
  • Ctrl + Shift + S: Save map as...
  • Ctrl + T: New room
  • Ctrl + Shift + T: Configure current room
  • Alt + Arrow keys: Move room (step size 8)
  • Alt + Delete: Delete room
  • Ctrl + Z: Undo action
  • Ctrl + Shift + Z: Redo action
  • Scroll wheel: Zoom
  • Ctrl + ➕ (plus): Zoom in
  • Ctrl + ➖ (minus): Zoom out
  • Double middle click: Zoom to map extents
  • F11: Toggle fullscreen
  • Arrow keys: Navigate lists

Placements

  • Left click: Place object
  • Holding Ctrl + Left click: Place object (use 1 as step size instead of 8 for more fine-grained control)
  • Right click: Open properties of object under cursor
  • Left click & drag: Adjust size of resizeable objects while placing
  • Middle click: Clone object under cursor
  • Q, E: Shrink / grow width
  • A, D: Shrink / grow height
  • L, R: Rotate supported objects counter-clockwise / clockwise
  • V, H: Flip supported objects vertically / horizontally

Selections

  • Left click: Select object
  • Left click existing selection: Cycle through objects under cursor (smallest to largest)
  • Left click & drag: Select multiple objects
  • Shift + Left click & drag: Add to current selection
  • Ctrl + A: Select all objects
  • Right click selection: Open properties of selected object(s)
  • Holding Left mouse button over selection: Drag selected objects
  • Shift + Holding Left mouse button over selection: Axis-bound object dragging
  • Arrow keys: Move selected objects
  • Q, E: Shrink / grow width on selected objects
  • A, D: Shrink / grow height on selected objects
  • Holding Ctrl + any of the above: use 1 as step size instead of 8 for more fine-grained control
  • L, R: Rotate supported objects counter-clockwise / clockwise
  • V, H: Flip supported objects vertically / horizontally
  • Shift + V / Shift + H: Flip selected area vertically / horizontally
  • N on entity/trigger: Add starting node to entity/trigger
  • N on node: Add node to entity/trigger after selected node
  • Delete: Delete selected objects
  • Ctrl + C: Copy selection to clipboard
  • Ctrl + X: Cut selection to clipboard
  • Ctrl + V: Paste selection from clipboard

Brushes

  • Left click: Place tiles
  • Left click & drag: Drag brush
  • Middle click: Change material to tile under cursor

Stylegrounds

  • Arrow keys: Navigate list
  • Alt + Arrow keys: Rearrange Stylegrounds

Debug - For developers

  • F5: Reload entities and triggers
  • F6: Clear rendering cache and redraw map
  • F7: Reload tools
  • Ctrl + F5: Reload everything
  • Ctrl + Shift + F5: Restart Lönn

If you have any question, ask us in #map_making on Discord so we may add it to this README file. Thanks for being interested in making maps for Celeste!

Some pictures

Lönn's main window The main window

Close-up of a room Showing selections

Frequently Asked Questions

When will I be able to do [thing you can do in Ahorn]?

Whenever we add it. Celeste has a lot of things which support for has to be individually added. This takes time, so please be patient. However, if more people complain about the lack of a particular thing, we might add it sooner. For a (currently) more complete set of features, just keep using Ahorn for now.

Why do my mods not show up in Lönn?

Lönn does not support the Ahorn plugins that mods contain. Mod developers will have to add compatible Lönn plugins to their mods separately.

Why do so many things in the program have weird names?

Most of these are the names internally used by the game, so blame the devs. Most of them do not have any official names, but we might make the names in Lönn a bit more descriptive later on.

Is it safe to resave maps from the base Celeste game?

No. If something is not visible in Lönn, it is still there in data and will be saved along with it. However, the program is currently still unable to save 100% of the original maps back, only about 99%. As always, make backups.

How to I make room transitions?

A player is able to move from one room to another if the rooms are directly adjacent and there is at least one spawn point (Player entity) in each room.

So, I made a map. What now? How do I load it?

While you can load maps without, it is highly recommended to install Everest. Once Everest is installed, place your map binary in Mods/<yourmodname>/Maps in your Celeste installation directory. It should now be accessible from inside the game.

Something is broken!

That's not a question, but please report any bug you find!

License

The project's source code and assets, other than the exceptions stated below, are developed and licensed under the MIT license.

The Lönn logo has All Rights Reserved and may only be distributed with original copies of this software. Should you fork the project, do not use the original logo in any way. We would also prefer if you changed the project's name so that it can not be confused with the original.

Lönn contains and uses code from the following projects:

Lönn also depends on the following projects:

Many thanks go to these projects.

loenn's People

Contributors

cruor avatar doonv avatar microlith57 avatar vexatos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

loenn's Issues

copying and pasting tiles crashes Loenn

Video
Stack trace:
`Error

Editor version: 0.7.3
Love2d version: 11.4.0 - Mysterious Mysteries
Operating system: Windows

tools/selection.lua:252: table index is nil

Traceback

[love "callbacks.lua"]:228: in function 'handler'
tools/selection.lua:252: in function 'func'
utils/drawing.lua:143: in function 'callKeepOriginalColor'
tools/selection.lua:240: in function 'func'
viewport_handler.lua:144: in function 'drawRelativeTo'
tools/selection.lua:226: in function 'drawSelectionRectanglesCommon'
tools/selection.lua:270: in function 'drawSelectionRectangles'
tools/selection.lua:1406: in function <tools/selection.lua:1392>
input_device.lua:28: in function 'propagateEvent'
scenes/editor.lua:104: in function <scenes/editor.lua:87>
scene_handler.lua:46: in function 'draw'
selene_main.lua:32: in function 'draw'
main.lua:85: in function main.lua:25
[C]: in function 'xpcall'`

Selection Add Modifier not working/forgotten

If you select an object, hold shift, then try to select another one, it does not add the object to the selection but instead switches to it entirely.

I did ask someone else if they had this problem and they did. I would imagine you have forgotten to fix it or add it at some point if its gone through this many updates without being added.

problem loading celeste atlas

when running love -fused Lönn.love, it aborts with

! Task Failed:    [string "utils/utils.lua"]:203: Could not decode file 'placeholder.png' to ImageData: unsupported file format
stack traceback:
    [C]: in function 'newImageData'
    [string "utils/utils.lua"]:203: in function 'getCachedDataImage'
    [string "sprite_loader.lua"]:199: in function 'getCacheOrLoadSpriteAtlas'
    [string "atlases.lua"]:45: in function 'loadCelesteAtlas'
    [string "atlases.lua"]:61: in function 'loadCelesteAtlases'
    [string "scenes/loading.lua"]:81: in function 'func'
    [string "utils/tasks.lua"]:191: in function <[string "utils/tasks.lua"]:191>
! Task Failed:    [string "celeste_render.lua"]:352: attempt to index field 'gameplay' (a nil value)
stack traceback:
    [string "celeste_render.lua"]: in function 'func'
    [string "utils/tasks.lua"]:191: in function <[string "utils/tasks.lua"]:191>
Aborted (core dumped)

during the loading screen on linux.

[feature planning] better metadata window

in ahorn, the metadata window is separated into meta, mode, and audio, but this distinction is unintuitive; cassette song is in meta rather than audio, core mode isn't with the other core option (in inventory); end level on heart is difficult to find for beginners, etc.

as such, i suggest the following grouping for the options in the lönn window:

  • gameplay (starting room, intro type, postcard sound?, wipe, end on heart, inventory, etc.), then a gap, then override a-side meta
  • lighting (colourgrade, lighting, bloom)
  • audio (ambience, music, cassette song, audio layers)
  • custom graphics (tiles, sprites, portraits)
  • overworld (title banner)

if i get time i intend to implement this.

Duplicate Entity IDs

I've been using Lonn as much as I can for my map, but when I do open Ahorn it frequently complains about a dozen or so duplicate IDs and asks for them to fixed. Which leads me to believe that Lonn is creating entities with duplicate IDs in some instances.

offset in wiki but not implemented

For creating custom Entities, offset is defined in the Wiki but can't be used. Even when set explicitly in the plugin, it will not move. Either implement it or remove from wiki

Crash on start

tried to use olympus & manually installing for win10 and it gives this when loading - cant really figure out how to use .love so i havent tried it

Error

[love "boot.lua"]:276: error loading module 'nfd' from file '.\nfd.dll':
The specified module could not be found.

Traceback

[love "callbacks.lua"]:228: in function 'handler'
[C]: in function 'error'
[C]: in function 'xpcall'
[C]: in function 'xpcall'

Feature Request - Custom Trigger Rendering

Triggers in Ahorn have the ability to render with custom code, but Loenn triggers do not.

Since Triggers have a drawable system that renders all text after rectangles, this will need to be split up into a list of size 3,
one to replace the default drawing state of the rectangle and any content going between drawable and text
one to replace the text as a string (for textBatch) or "" yielding no text to be added to the batch
one to be drawn over all trigger text within the layer

Trouble using the Styleground menu

I can't set any Styleground image or anything, the arrow that usually
appears on other's Styleground menu right to Texture apparently doesn't on mine ?
To show
Idk if it's a computer or software issue but if you have a solution to this problem I'm open to anything ( :

Maybe because of a custom Celeste location?

I tried to launch Loenn, but when I tried, it came up with this error. It seems like it's because I got Celeste from itch.io and don't have it saved in the path for a steam game.

Error

registry.lua:24: attempt to index a nil value


Traceback

registry.lua:24: in function 'getKey'
initial_startup.lua:61: in function 'findSteamDirectory'
initial_startup.lua:87: in function 'findCelesteDirectory'
scenes/startup.lua:89: in function <scenes/startup.lua:87>
scene_handler.lua:42: in function 'update'
selene_main.lua:33: in function 'update'
[C]: in function 'xpcall'

Celeste.exe is difficult to access on Mac

Starting Lönn from Olympus the first time, it told me to select Celeste.exe, which isn't a normal thing on mac, so I assumed giving it Celeste.app (technically a directory) would work, but instead it crashed with this error:

Error

Editor version: 0.5.3
Love2d version: 11.3.0 - Mysterious Mysteries
Operating system: OS X

initial_startup.lua:27: attempt to call field 'isDirectory' (a nil value)


Traceback

initial_startup.lua:27: in function 'cleanupPath'
scenes/startup.lua:43: in function 'callback'
utils/filesystem.lua:358: in function 'openDialog'
scenes/startup.lua:50: in function 'checkDialog'
scenes/startup.lua:111: in function <scenes/startup.lua:103>
scene_handler.lua:46: in function 'update'
selene_main.lua:38: in function 'update'
main.lua:61: in function <main.lua:25>
[C]: in function 'xpcall'

My next idea was to give it the Celeste executable from within the .app, but you can't access that directly within the file picker dialogue, so I had to open a separate window to drag on it... but that just reopened the dialogue, so evidently that was wrong too.
It turns out there is a Celeste.exe elsewhere in the .app, so I guess the instruction isn't wrong, but it could certainly be made more clear.
Ideally, it should be able to find Celeste.app/Contents/Resources/Celeste.exe automatically, and update the initial text to reflect that.

Add Restrict OOB Placement Setting

Enhancement: Please add an option to restrict placement of objects out of bounds of the room you are currently in. I find that I'm frequently finding misplace OOB objects. I'm guessing a lot of these are from trying to change rooms, but it happens much more often than I'd expect.

In addition it would be nice Lonn could help in some way with finding OOB objects that have been placed. The showing of OOB objects when clicking on a room definitely helps, but it can be hard to see the OOB entities when the room is surrounded by other rooms.

ZLIB_1.2.9 missing

I've been trying to load Loenn since a while, but I always get this error:

Error

error loading module 'nfd' from file './nfd.so':
/tmp/.mount_Du1T6E/usr/../lib/x86_64-linux-gnu/libz.so.1: version `ZLIB_1.2.9' not found (required by /lib/x86_64-linux-gnu/libpng16.so.16)


Traceback

[C]: at 0x7fdc683402e0
[C]: in function 'require'
filesystem.lua:2: in function 'f'
selene/selene/wrappers/searcher/love2d/searcher.lua:27: in function <selene/selene/wrappers/searcher/love2d/searcher.lua:22>
[C]: in function 'require'
utils.lua:2: in function 'f'
selene/selene/wrappers/searcher/love2d/searcher.lua:27: in function <selene/selene/wrappers/searcher/love2d/searcher.lua:22>
[C]: in function 'require'
meta.lua:1: in function 'f'
selene/selene/wrappers/searcher/love2d/searcher.lua:27: in function <selene/selene/wrappers/searcher/love2d/searcher.lua:22>
[C]: in function 'require'
selene_main.lua:3: in function 'f'
selene/selene/wrappers/searcher/love2d/searcher.lua:27: in function <selene/selene/wrappers/searcher/love2d/searcher.lua:22>
[C]: in function 'require'
main.lua:13: in function 'load'
[C]: in function 'xpcall'
[C]: in function 'xpcall'

Investigating the error message on the top, I've tried to install zlib1.2.9 and libpng1.6.37, but they didn't change the problem.

OS: Linux (Ubuntu 19.04)
Loenn version: v0.0.7 (It also happened with the previous version)

Rendering issues with blocks

i noticed when placing blocks, some of them disappear until i place another block or undo
image
how to reproduce:

  1. place a block with at least 1 width or 1 height
  2. a part of it will disappear
    i don't know yet whats the cause for this, but i hope this can get fixed

Require loop causes crash on startup

I updated to the latest commit in the olympUI branch and got this crash:

Error

boot.lua:530: file_locations.lua:1: loop or previous error loading module 'utils.filesystem'


Traceback

[C]: in function 'error'
[C]: in function 'xpcall'
[C]: in function 'xpcall'

Tracked it down to a require loop starting in logging.lua

file_locations -> utils.filesystem
       ^                 |
       |                 V
    logging    <-  utils.require

(This honestly might just be a me issue and I've messed something up)

Unpinning an item in the Placement menu occasionally crashes

I cant exactly understand what makes it crash, but I was trying to do the following numerous times:

  • Searching for a booster
  • Pinning a booster
  • Placing a booster
  • Unpinning a booster

This has happened 3 times now, and it crashes when you unpin the item
EDIT: I got one where i pinned the item and it also crashed

Error

Editor version: 0.6.1
Love2d version: 11.4.0 - Mysterious Mysteries
Operating system: Windows

olympUI/ui/elements/input.lua:854: attempt to index local 'owner' (a boolean value)

Traceback

[love "callbacks.lua"]:228: in function 'handler'
olympUI/ui/elements/input.lua:854: in function '__index'
olympUI/ui/elements/input.lua:962: in function 'func'
olympUI/ui/main.lua:280: in function 'interactiveIterate'
olympUI/ui/main.lua:400: in function <olympUI/ui/main.lua:378>
input_device.lua:28: in function <input_device.lua:15>
scene_handler.lua:46: in function 'sendEvent'
input_handler.lua:83: in function <input_handler.lua:68>
main.lua:36: in function main.lua:25
[C]: in function 'xpcall'

feature request - show hitboxes

mostly useful for placing spinners when the mapper does not immediately recall the exact spacing required to create a pixel perfect gap

Unable to open Loenn

Hello! I was in the middle of making a map when Loenn crashed originally, so I just took a break, so when I came back and booted up Loenn, I keep on getting the following error:

Error

Editor version: 0.5.1
Love2d version: 11.4.0 - Mysterious Mysteries
Operating system: Windows

olympUI/ui/elements/basic.lua:357: Could not load vertex buffer (out of VRAM?)


Traceback

[love "callbacks.lua"]:228: in function 'handler'
[C]: in function 'newText'
olympUI/ui/elements/basic.lua:357: in function 'forceText'
olympUI/ui/elements/basic.lua:328: in function '__newindex'
olympUI/ui/elements/basic.lua:282: in function 'init'
olympUI/ui/elements/main.lua:1347: in function 'label'
ui/windows/tools.lua:48: in function 'updateListItemFavoriteVisuals'
ui/windows/tools.lua:118: in function <ui/windows/tools.lua:116>
olympUI/ui/main.lua:212: in function <olympUI/ui/main.lua:62>
input_device.lua:28: in function 'propagateEvent'
scenes/editor.lua:111: in function <scenes/editor.lua:105>
scene_handler.lua:46: in function 'update'
selene_main.lua:33: in function 'update'
main.lua:61: in function <main.lua:25>
[C]: in function 'xpcall'

I tried booting it up through everest, and even re-installed Loenn. Can you help me solve my issue?

Unfocused right click not being correctly handled on macOS

Right clicking a window in macOS does not give it the focus, but for whatever reason you can still interact with any context menus etc. that are displayed. Lönn does not handle this very well when dragging the map, as it ignores the initial click point and resets the drag every time you click. It's not fixed until the window regains the focus.

Simple solution: drop all mouse input on macOS if the window does not have the focus.

Example video, notice the issue happens when the window doesn't have focus:

Lonn.mp4

Mouse not showing correctly

image
While having this setup (with whatever block that the size can be modified), if you put your mouse to change the size of the object and move it over the menu, and for example click on Placement, the cursor style will remain like if you were modifying the size of the object.

nil function called when dropping a directory onto lönn

[ERROR] [string "scenes/startup.lua"]:84: attempt to call field 'cleanFilename' (a nil value)
stack traceback:
	[string "selene_main.lua"]:39: in function 'handler'
	[string "boot.lua"]:777: in function 'cleanFilename'
	[string "scenes/startup.lua"]:84: in function <[string "scenes/startup.lua"]:83>
	[string "scene_handler.lua"]:46: in function 'sendEvent'

(from https://discord.com/channels/403698615446536203/973719043003535400/974202446719090728)

i intend to fix this

Error

OS: Windows 11
Zrzut ekranu 2023-11-20 133856
i selected wrong version of celeste and i do not know how to restart program or uninstall it (i tried doing it from olympus but error occurred)

Celeste loenn error

Error

Editor version: 0.7.4
Love2d version: 11.4.0 - Mysterious Mysteries
Operating system: Windows

utils/filesystem.lua:40: invalid value (nil) at index 1 in table for 'concat'

Traceback

[love "callbacks.lua"]:228: in function 'handler'
[C]: in function 'concat'
utils/filesystem.lua:40: in function 'joinpath'
celeste_render.lua:24: in function 'f'
selene/selene/wrappers/searcher/love2d/searcher.lua:16: in function <selene/selene/wrappers/searcher/love2d/searcher.lua:13>
[C]: in function 'require'
loaded_state.lua:4: in function 'f'
selene/selene/wrappers/searcher/love2d/searcher.lua:16: in function <selene/selene/wrappers/searcher/love2d/searcher.lua:13>
[C]: in function 'require'
tool_utils.lua:1: in function 'f'
...
[C]: in function 'require'
scenes/loading.lua:40: in function 'firstEnter'
scene_handler.lua:124: in function 'changeScene'
scenes/startup.lua:34: in function 'saveGotoLoading'
scenes/startup.lua:114: in function <scenes/startup.lua:109>
scene_handler.lua:46: in function 'update'
selene_main.lua:38: in function 'update'
main.lua:61: in function main.lua:25
[C]: in function 'xpcall'

Floaty Space Block missing

The Floaty Space Block is not present in the Placements menu, and already existing Floaty Space Blocks in maps show up as missing (red block)

feature request - pixel grid

draw horizontal and vertical lines every grid_h and grid_v (some configurable option) number of celeste pixels

Mark entities as favorites

Most maps use only a small subset of the available entities. It would save a lot of time if users were able to 'favorite' entities so that they can be selected from a small list instead of having to search the total list for them every time.

Map failed to load in Everest

I was making my map, went to test it and this happened.

(10/18/2023 12:51:24) [Everest] [Info] [debugrc] Started DebugRC thread, available via http://localhost:32270/
(10/18/2023 12:51:45) [Everest] [Info] [LevelLoader] Loading Ashotl Wotl/Transcendence/1-Hit Space to Start
(10/18/2023 12:51:45) [Everest] [Warn] [LevelLoader] Failed loading Ashotl Wotl/Transcendence/1-Hit Space to Start

Detailed exception log:

System.ArgumentException: Requested value 'Up' was not found.
at System.Enum.EnumResult.SetFailure(ParseFailureKind failure, String failureMessageID, Object failureMessageFormatArgument)
at System.Enum.TryParseEnum(Type enumType, String value, Boolean ignoreCase, EnumResult& parseResult)
at System.Enum.Parse(Type enumType, String value, Boolean ignoreCase)
at System.Enum.Parse(Type enumType, String value)
at Celeste.MapData.ParseBackdrop(Element child, Element above)
at Celeste.MapData.CreateBackdrops(Element data)
at Celeste.LevelLoader.LoadingThread()
at Celeste.LevelLoader.LoadingThread_Safe() in /home/vsts/work/1/s/Celeste.Mod.mm/Patches/LevelLoader.cs:line 203

How do i fix this. Also how can i do my background.

Large Property Lists make it hard to close or save

Custom Entity Plugins sometimes can contain too many properties which moves the "Save Changes" button and "Close Window" button inaccessible.
Image for reference:
image

My suggestion is to detect the viewport and expand the properties window accordingly to ensure you can modify and save more properties.
Either that or add a scrollbar

Loenn crashes when trying to open(any version)

Hey there! I am having some troubles with Loenn. The program keeps crashing when booting up, no matter what I do. Here is the error in question:
Error

Editor version: 0.7.4
Love2d version: 11.4.0 - Mysterious Mysteries
Operating system: Windows

utils/filesystem.lua:40: invalid value (nil) at index 1 in table for 'concat'

Traceback

[love "callbacks.lua"]:228: in function 'handler'
[C]: in function 'concat'
utils/filesystem.lua:40: in function 'joinpath'
celeste_render.lua:24: in function 'f'
selene/selene/wrappers/searcher/love2d/searcher.lua:16: in function <selene/selene/wrappers/searcher/love2d/searcher.lua:13>
[C]: in function 'require'
loaded_state.lua:4: in function 'f'
selene/selene/wrappers/searcher/love2d/searcher.lua:16: in function <selene/selene/wrappers/searcher/love2d/searcher.lua:13>
[C]: in function 'require'
tool_utils.lua:1: in function 'f'
...
[C]: in function 'require'
scenes/loading.lua:40: in function 'firstEnter'
scene_handler.lua:124: in function 'changeScene'
scenes/startup.lua:34: in function 'saveGotoLoading'
scenes/startup.lua:114: in function <scenes/startup.lua:109>
scene_handler.lua:46: in function 'update'
selene_main.lua:38: in function 'update'
main.lua:61: in function main.lua:25
[C]: in function 'xpcall'

This error appears whenever I try to open the program, and a folder on %localappdata% is not even created. Could someone please help me? Thanks!

Error!

Error

Editor version: 0.7.8
Love2d version: 11.4.0 - Mysterious Mysteries
Operating system: Windows

utils/filesystem.lua:40: invalid value (nil) at index 1 in table for 'concat'

Traceback

[love "callbacks.lua"]:228: in function 'handler'
[C]: in function 'concat'
utils/filesystem.lua:40: in function 'joinpath'
celeste_render.lua:24: in function 'f'
selene/selene/wrappers/searcher/love2d/searcher.lua:16: in function <selene/selene/wrappers/searcher/love2d/searcher.lua:13>
[C]: in function 'require'
loaded_state.lua:4: in function 'f'
selene/selene/wrappers/searcher/love2d/searcher.lua:16: in function <selene/selene/wrappers/searcher/love2d/searcher.lua:13>
[C]: in function 'require'
tool_utils.lua:1: in function 'f'
...
scenes/loading.lua:40: in function 'firstEnter'
scene_handler.lua:126: in function 'changeScene'
scenes/startup.lua:34: in function 'saveGotoLoading'
scenes/startup.lua:47: in function 'func'
utils/threads.lua:32: in function 'runFunctionOnData'
utils/threads.lua:48: in function 'update'
selene_main.lua:39: in function 'update'
main.lua:61: in function main.lua:25
[C]: in function 'xpcall'
I hope I get an answer, I really want to map...

Accidental placement of decals & entities

I often find random decals around the place when editing and have found the cause. If you hold down left click on something inside the right menu bar, then release it outside of the menu bar an item will be placed. One common situation this happens in is selecting text with the cursor:
image

Core dump when loading summit, but not when loading other maps

OS: Linux

Tested on both 0.1.2 and head of ui-olympUI
When loading summit, the editor freezes partway through the circle opening animation and after a bit crashes. Opening other maps (I've tested 1a, 2a, and 4a so far) works fine. I was able to open summit once, but I haven't been able to reproduce it. The stack trace for this doesn't look particularly helpful either, unfortunately, and there is no console output.

coredumpctl gdb:

Stack trace of thread 763741:
#0  0x00007f555c8aabaa raise (libc.so.6 + 0x3bbaa)
#1  0x00007f555c895523 abort (libc.so.6 + 0x26523)
#2  0x00007f554ca63759 _iris_batch_flush.cold (iris_dri.so + 0x1b5759)
#3  0x00007f554d626a28 iris_fence_flush (iris_dri.so + 0xd78a28)
#4  0x00007f554cae26c3 st_glFlush (iris_dri.so + 0x2346c3)
#5  0x00007f555d692385 _ZN4love8graphics6opengl24StreamBufferPinnedMemoryD0Ev (liblove-11.3.so + 0x1fe385)
#6  0x00007f555d66838a _ZN4love8graphics8Graphics17requestStreamDrawERKNS1_17StreamDrawCommandE (liblove-11.3.so + 0x1d438a)
#7  0x00007f555d67f301 _ZN4love8graphics7Texture9drawLayerEPNS0_8GraphicsEiPNS0_4QuadERKNS_7Matrix4E (liblove-11.3.so + 0x1eb301)
#8  0x00007f555d697d70 _ZN4love16luax_catchexceptIZZNS_8graphics11w_drawLayerEP9lua_StateENKUlRKNS_7Matrix4EE_clES6_EUlvE_EEiS3_RKT_.isra.0 (liblove-11.3.so + 0x203d70)
#9  0x00007f555d6988e4 _ZN4love8graphics11w_drawLayerEP9lua_State (liblove-11.3.so + 0x2048e4)
#10 0x00007f555cc18a56 n/a (libluajit-5.1.so.2 + 0xba56)
#11 0x00007f555cc6f7b9 lua_pcall (libluajit-5.1.so.2 + 0x627b9)
#12 0x00007f555d6943fd _ZN4love8graphics17w_Canvas_renderToEP9lua_State (liblove-11.3.so + 0x2003fd)
#13 0x00007f555cc18a56 n/a (libluajit-5.1.so.2 + 0xba56)
#14 0x00007f555cc1988c n/a (libluajit-5.1.so.2 + 0xc88c)
#15 0x00000000004023e6 main (love + 0x23e6)
#16 0x00007f555c896780 __libc_start_main (libc.so.6 + 0x27780)
#17 0x000000000040261a _start (love + 0x261a)

More readable version from the bt command in the gdb shell:

#0  0x00007f555c8aabaa in raise () from /nix/store/wl60dr9p15rwf53gxz61ijgisc1zdjc7-glibc-2.33-59/lib/libc.so.6
#1  0x00007f555c895523 in abort () from /nix/store/wl60dr9p15rwf53gxz61ijgisc1zdjc7-glibc-2.33-59/lib/libc.so.6
#2  0x00007f554ca63759 in _iris_batch_flush.cold () from /run/opengl-driver/lib/dri/iris_dri.so
#3  0x00007f554d626a28 in iris_fence_flush () from /run/opengl-driver/lib/dri/iris_dri.so
#4  0x00007f554cae26c3 in st_glFlush () from /run/opengl-driver/lib/dri/iris_dri.so
#5  0x00007f555d692385 in love::graphics::opengl::StreamBufferPinnedMemory::~StreamBufferPinnedMemory() () from /nix/store/y98g6rzqrj3rwp53zn16zxh81qf56aly-love-11.3/lib/liblove-11.3.so
#6  0x00007f555d66838a in love::graphics::Graphics::requestStreamDraw(love::graphics::Graphics::StreamDrawCommand const&) () from /nix/store/y98g6rzqrj3rwp53zn16zxh81qf56aly-love-11.3/lib/liblove-11.3.so
#7  0x00007f555d67f301 in love::graphics::Texture::drawLayer(love::graphics::Graphics*, int, love::graphics::Quad*, love::Matrix4 const&) () from /nix/store/y98g6rzqrj3rwp53zn16zxh81qf56aly-love-11.3/lib/liblove-11.3.so
#8  0x00007f555d697d70 in int love::luax_catchexcept<love::graphics::w_drawLayer(lua_State*)::{lambda(love::Matrix4 const&)#1}::operator()(love::Matrix4 const&) const::{lambda()#1}>(lua_State*, love::graphics::w_drawLayer(lua_State*)::{lambda(love::Matrix4 const&)#1}::operator()(love::Matrix4 const&) const::{lambda()#1} const&) [clone .isra.0] () from /nix/store/y98g6rzqrj3rwp53zn16zxh81qf56aly-love-11.3/lib/liblove-11.3.so
#9  0x00007f555d6988e4 in love::graphics::w_drawLayer(lua_State*) () from /nix/store/y98g6rzqrj3rwp53zn16zxh81qf56aly-love-11.3/lib/liblove-11.3.so
#10 0x00007f555cc18a56 in ?? () from /nix/store/018w6h2nli1c95jj8gmzjipg1h1yxmhd-luajit-2.1.0-2021-10-27/lib/libluajit-5.1.so.2
#11 0x00007f555cc6f7b9 in lua_pcall () from /nix/store/018w6h2nli1c95jj8gmzjipg1h1yxmhd-luajit-2.1.0-2021-10-27/lib/libluajit-5.1.so.2
#12 0x00007f555d6943fd in love::graphics::w_Canvas_renderTo(lua_State*) () from /nix/store/y98g6rzqrj3rwp53zn16zxh81qf56aly-love-11.3/lib/liblove-11.3.so
#13 0x00007f555cc18a56 in ?? () from /nix/store/018w6h2nli1c95jj8gmzjipg1h1yxmhd-luajit-2.1.0-2021-10-27/lib/libluajit-5.1.so.2
#14 0x00007f555cc1988c in ?? () from /nix/store/018w6h2nli1c95jj8gmzjipg1h1yxmhd-luajit-2.1.0-2021-10-27/lib/libluajit-5.1.so.2
#15 0x00000000004023e6 in main ()

I can send the nix package code I'm using too if necessary, but I don't think it should affect anything - it just sets up the libraries so loenn can find them.

UI Improvements - Categorization of Entities, Own Categories, Undocking of Windows and more

I want to suggest to overhaul the currently used UI to be more user friendly and increase workflow.

Categorize Entities

Currently the list approach to entities does not help workflow. Improve this by adding categories by usage. Example categories could be "Traps", "Decoration", "logic", "moving blocks", "movement", "sound" and so forth. Plugins should not need to follow this by design, all uncategorized entities should go into an uncategorized category but a plugin can follow it which the pluginloader should adjust accordingly. Also dynamically add a category for the plugin that can be customized by the plugin maker. The search should recursivly search through the entire category. So if a category exists of multiple inner categories then the search starts at the top. Keep an alphabetical category aswell that has all entities.

Add ability to have own categories

This will enable map makers to organize their own workspace and improve their workflow individually. It will also improve cohesion in map design.

Ability to undock windows (and categories)

Allows for even better workflow. Undocking can mean free floating inside the application but also free float over the whole user's screen should be considered.

Add recently used tab

Further improvements to workflow. I dont think anything needs to be said why this can be good.

Add a new menubar that consists of useful items (customizeable)

Further improve workflow by adding stuff like player spawn to another menubar, which could be at the top, bottom or even to the sides (customizeable?). This menubar should be further customizeable to help workflow.

Add small picture of an entity to the name in the list

This increases user friendlyness and improves discoverability.

I understand that the current UI is based on the old Ahorn map maker but one should consider to overhaul the UI and also remove some old ideas that just do not work as well.

Tile Drawing Bug

When drawing a single line with the Line or Rectangle tool, it frequently misses drawing the 2nd and 3rd tile. The tile will reappear if you place another tile next to it, so it does exist, it's just invisible.

2022-01-30.19-32-55.mp4

Switching between foreground brushes reverts to placing air.

If you select a foreground tile when using any of the tools that place them (Brush/Bucket/Circle/Ellipse/Line/Rectangle), the selector will still show the tile you selected, but it instead draws with air. This only applies to foreground tiles, not background.

Nothing game-breaking, but it is still an inconvenience.

Using latest (0.7.7).

Swapping between "Tileset Tools" and other tabs resets to air

Swapping between any of the "Tileset Tools" (Brush, Bucket, Line, Circle, Ellipse, Rectangle) and the other tools (Placement, Selection) results in the selected tile being reset (functionally) to air. However, the visually selected tileset is still the same as before. Swapping between tilesets within the tab temporarily fixes the issue. Persists between reloads and maps.

Occurs on v0.7.7 (Latest)

Steps to Reproduce:

  1. Open a map, select (for example) Brush tool with Cement tile
  2. Paint some cement tiles to confirm tool is working as expected
  3. Switch to the Placement tool
  4. Switch back to Brush
  5. Paint more cement tiles

Expected Result:

  • Cement is still selected visually
  • Cement tiles are placed

Observed Result:

  • Cement is still selected visually
  • Air is placed instead of cement

Tiles Do Not Properly Update When Using the Rectangle Tool

When drawing with the rectangle tool, the newly drawn tiles do not always show properly. It seems to happen when you release the mouse on the same pixel that adds the next tile to the side or below. The rectangle will show more area than is displayed when you release the mouse. The tile is actually there, but won't show up until after you place another tile. See video for an example.

2022-01-23.16-07-27.mp4

Crash on startup

Crashes both with the .app and the .love, same error.

macOS Big Sur 11.6.1

Error

utils/filesystem.lua:2: module 'nfd' not found:
no field package.preload['nfd']no file 'selene/selene/lib/nfd.lua'
no file 'selene/selene/lib/nfd/init.lua'
no file 'olympUI/nfd.lua'
no file 'olympUI/nfd/init.lua'
no file 'nfd/nfd.lua'
no file 'nfd.lua'
no file 'nfd/init.lua'
no 'nfd' in LOVE game directories.
no file 'nfd' in LOVE paths.
no file './nfd.lua'
no file '/usr/local/share/luajit-2.1.0-beta3/nfd.lua'
no file '/usr/local/share/lua/5.1/nfd.lua'
no file '/usr/local/share/lua/5.1/nfd/init.lua'
no file './nfd.so'
no file '/usr/local/lib/lua/5.1/nfd.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
no file '/Users/shane/Downloads/nfd.so'


Traceback

[C]: in function 'require'
utils/filesystem.lua:2: in function 'f'
selene/selene/wrappers/searcher/love2d/searcher.lua:27: in function <selene/selene/wrappers/searcher/love2d/searcher.lua:22>
[C]: in function 'require'
utils/utils.lua:2: in function 'f'
selene/selene/wrappers/searcher/love2d/searcher.lua:27: in function <selene/selene/wrappers/searcher/love2d/searcher.lua:22>
[C]: in function 'require'
meta.lua:1: in function 'f'
selene/selene/wrappers/searcher/love2d/searcher.lua:27: in function <selene/selene/wrappers/searcher/love2d/searcher.lua:22>
[C]: in function 'require'
selene_main.lua:3: in function 'f'
selene/selene/wrappers/searcher/love2d/searcher.lua:27: in function <selene/selene/wrappers/searcher/love2d/searcher.lua:22>
[C]: in function 'require'
main.lua:23: in function 'load'
main.lua:33: in function <main.lua:31>
[C]: in function 'xpcall'
[C]: in function 'xpcall'

Loenn didn't render correctly when the "show fps" function of screen recording software is on.

I usually open celeste, screen recording software, loenn at the same time and It's convenient to share the new function of helpers or other else to my friends using recordings. But loenn seems to behave abnormally when be displayed fps, like this(use ocam):
image
Also I tried bandicam and it almost solve the problem but with some glitch at the bottom right corner like this:
image
Sometimes it even break the render of the foreground or something more.
It would be great if this could be solved.
Or this could be a problem of LÖVE ...?

Selections still shown when deleting groups of entities with nodes

When deleting any entity by clicking and dragging over the entity and deleting, if any entity deleted in the process had multiple nodes, the selection and node images are still rendered until the screen is clicked on again. This happens when deleting just one entity like this, when deleting multiple entities like this, and when deleting entities both with and without nodes (the visual bug just only appears for ones with nodes). Only case where this doesn't happen is if a noded entity is deleted by directly clicking on the entity.

This happened with all noded entities I tested: Swap Blocks, Moving Platforms, Linked Sinking Platform (An unreleased custom entity of mine)

Example:
Screenshot (813)
Screenshot (814)

This should be a very low priority issue as it's just a minor visual bug.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.