spair / strongdmm Goto Github PK
View Code? Open in Web Editor NEWRobust map editor for BYOND
License: GNU General Public License v3.0
Robust map editor for BYOND
License: GNU General Public License v3.0
Would it also be possible to get something akin to mapdiffbot and render an image of the entire map and put it on your clipboard, or save it as a .png or something? It'd be helpful to be able to get high resolution images of large parts of the map.
DM supports having more than one /turf on a tile.
If I recall correctly, turfs after the first are added as images to the first one. Or it could be the other way around. I don't remember.
/vg/station uses this feature to make shuttle corners with space underneath them, but we're probably stupid.
Is this something you would want to support?
While a wonderful tool, the change in control scheme from DMM and the small preset changes DMM permits are notably lacking here.
Notable;
The change from mouse wheel to pan Left and Right, control to pan Up and Down,
And Shift at a higher speed.
The default and modified Click Behavior, as shown here
The different Redo bind (Control+Shift+Z vs Control+Y)
Others that I likely haven't found yet.
Specific mention;
Zoom on Mouse wheel used at a dramatically reduced rate compared to Pan on Mouse wheel.
Will make another Feature Request related to this.
Request; permit Key Rebinding, or a present option to switch over to the Control Scheme DMM uses, including it's preset configurable options.
Once I tried the new StrongDMM (it's awesome and saves a ton of time) I told Cinder that you can't actually delete instances, do you kind of have a big giant list. You can't edit instances either.
It'd be really awesome if we had the ability to edit instances (and delete them of course).
Would it also be possible to get something akin to mapdiffbot and render an image of the entire map and put it on your clipboard, or save it as a .png or something? It'd be helpful to be able to get high resolution images of large parts of the map.
Thank you for the programme in general as well, once mapmerge2 stopped working for some reason, I got through a bunch of PRs just using the old StrongDMM to convert the save format from BYOND to TGM. I like the UI being similar to DM and how I can quickly edit pixel_x and pixel_y, as well as having the object tree and instance menu be readily available. The UI in general feels awesome.
Edit: I somehow managed to post this twice so I've closed this one. Sorry!
StrongDMM version: 1.1.0
Java version: 1.8.0_251
OS: Windows 10
I keep crashing when I try to edit specific variables of specific types. It's really strange because editing some variables of some types works totally fine, but there are some combinations that will consistently cause crashes!
To reproduce (if you have Goon code):
Load an existing map
Spawn in an /obj/item/clothing/shoes/red
Use the variable editor and filter for name
Try to change the name
to something like "Rube Potter's shoes"
Crash
I know that's a really obscure test case, but I swear it's not just me; I asked another coder to follow my steps, and they crashed as well. If it were just limited to this single thing /obj/item/clothing/shoes/red
, it'd be fine, but it seems sorta random and extends to more things, and I don't know which ones will cause crashes until they do.
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x60a0ab5a, pid=2040, tid=14644
#
# JRE version: OpenJDK Runtime Environment (11.0.6+10) (build 11.0.6+10)
# Java VM: OpenJDK Client VM (11.0.6+10, mixed mode, serial gc, windows-x86)
# Problematic frame:
# V [jvm.dll+0xeab5a]
Happy to provide the full error logs if they're useful.
Every version since 0.2 gets stuck on parsing environment for me. Not sure if there are logs somewhere I could provide. The tree does load but the parsing environment popup never closes, not sure whether that is relevant.
I have had this particular issue happen twice. After working on the map for hours, I close all the other maps I am using for reference and then hit save all. When I open StrongDMM again, all of the tiles that I put objects on are overwritten with one particular tile I had edited earlier (I am not certain what determines the tile). It acts as if it is copy/pasted. Posted is a relevant image.
On BYOND DMM, the ability to move along a specific X or Y axis can be done using the Mouse Wheel, (+Control) to pan, while not moving your mouse.
This can be used for moving selections on a single axis, and can be helpful when shifting objects about.
As this keybind is not retained, the ability to shift things along one Axis (Ie X:025 to X:050) while retaining the same Axis (Ie Y:025) is made harder.
Adding in an Overlay Ruler, that displays a count of tiles under it, and has a visual Overlay that can aid in placement/moving of Selection Objects is desired.
Otherwise, the ability to Pan along a specific Axis (ie Byond DMM Control Scheme Parity or otherwise) while moving a selection is desired.
exactly what the title says. make a hollow shape of whatever you have selected
Add an ability to create layers filter presets, so user will be able to quickly switch between them.
Editing a lavaland ruin for TG, after I saved it then compiled in dreammaker, it deleted a few tiles completely and replaced some other tiles with sinks as shown here:
Trying to save the file after this occurs causes StrongDMM to freeze completely and does not allow any other action to occur. I had to forcequit the application in task manager. Saving does not succeed.
Trying to edit the map in dreammaker afterwards gives this error
Dream Maker has an option in it's right click menus to search for things in a selected area and replace them with another object or delete them by leaving the replace box blank. This is immensely useful for deleting items of the same type on mass, even if it is achievable by Ctrl+Shift+Clicking them individually.
Would it also be possible to add a new window that shows every change done to the map from the very last time that the map was saved. so i.e a window that chows all area,turf,obj,mob etc changes with the option to undo ANY of them regardless of when said change was made in the list?
Version used: v0.0.10
OS: Windows 8.1 9600 SL (ru)
Sample map file used to reproduce issue: https://github.com/frosty-dev/white-dream-main/blob/master/_maps/map_files/BoxStation/BoxStationWhite.dmm
Incorrect mapfile reader result:
name = "O2 в Чистоту"
name = "O2 ?? ??????????????"
Probably dupe of #15.
I think the main issue is with the reader, causing reader read the map in non-UTF-8 (probably ASCII) and saving in non-UTF-8 format. Yes, 513 uses UTF-8.
In order to have clean outlines like this: https://i.imgur.com/PfLEDMW.png you need to change the directional on corner and side floors.
Currently this is supported in things like cable terminals, but in order to make your instance window filled up you need to edit the dir var on each floor turf, like so: https://i.imgur.com/h3aVmrM.png
As long as it doesn't break too much, perhaps it could be a setting for those with 144+ hz monitors?
If you:
Define an area in code (Ie /area/test)
Use it on a map
Delete or modify the define (ie /area/test/ editied to be /area/testing)
Re-open the environment
A new window will open, telling you every instance of /area/test that was deleted.
You are now unable to place any areas ontop of where /area/test/ use to be.
Hello! First off i would like to say that i really enjoy SDMM right now as it is a very robust tool, even with the current threat of map corruption (Haven't run into it yet).
Would it be possible to get a feature that allows us to delete Instances from the Object Panel, or is that impossible?
2.
Would it also be possible to add a new window that shows every change done to the map from the very last time that the map was saved. so i.e a window that chows all area,turf,obj,mob etc changes with the option to undo ANY of them regardless of when said change was made in the list?
Once I tried the new StrongDMM (it's awesome and saves a ton of time) I told Cinder that you can't actually delete instances, do you kind of have a big giant list. You can't edit instances either.
It'd be really awesome if we had the ability to edit instances (and delete them of course).
Would it also be possible to get something akin to mapdiffbot and render an image of the entire map and put it on your clipboard, or save it as a .png or something? It'd be helpful to be able to get high resolution images of large parts of the map.
v 0.0.2
how to reproduce:
open file
modify file so that it gets an asterisk to indicate it's modified
save
see that asterisk is still there despite saving
Opening maps/torch/torch1_deck5.dmm
at commit Baystation12/Baystation12@80e2f51 crashes the application. It gives the following stacktrace:
13:43:52.029 [main] ERROR strongdmm.StrongDMM$Companion - Unhandled exception
kotlin.KotlinNullPointerException: null
at strongdmm.byond.dmm.parser.TGMParser.parse(TGMParser.kt:45)
at strongdmm.byond.dmm.parser.DmmParser.parse(DmmParser.kt:12)
at strongdmm.service.map.MapHolderService$handleOpenMap$1.invoke(MapHolderService.kt:170)
at strongdmm.service.map.MapHolderService$handleOpenMap$1.invoke(MapHolderService.kt:28)
at strongdmm.event.Event.reply(Event.kt:26)
at strongdmm.service.EnvironmentService.handleFetchOpenedEnvironment(EnvironmentService.kt:46)
at strongdmm.service.EnvironmentService.access$handleFetchOpenedEnvironment(EnvironmentService.kt:15)
at strongdmm.service.EnvironmentService$2.invoke(EnvironmentService.kt:20)
at strongdmm.service.EnvironmentService$2.invoke(EnvironmentService.kt:15)
at strongdmm.event.EventBus.notify(EventBus.kt:19)
at strongdmm.event.EventHandler$DefaultImpls.sendEvent(EventHandler.kt:13)
at strongdmm.service.map.MapHolderService.sendEvent(MapHolderService.kt:28)
at strongdmm.service.map.MapHolderService.handleOpenMap(MapHolderService.kt:169)
at strongdmm.service.map.MapHolderService.access$handleOpenMap(MapHolderService.kt:28)
at strongdmm.service.map.MapHolderService$2.invoke(MapHolderService.kt:44)
at strongdmm.service.map.MapHolderService$2.invoke(MapHolderService.kt:28)
at strongdmm.event.EventBus.notify(EventBus.kt:19)
at strongdmm.event.EventHandler$DefaultImpls.sendEvent(EventHandler.kt:13)
at strongdmm.ui.dialog.available_maps.ViewController.sendEvent(ViewController.kt:10)
at strongdmm.ui.dialog.available_maps.ViewController.doOpenSelectedMapAndDispose(ViewController.kt:19)
at strongdmm.ui.dialog.available_maps.View.process(View.kt:54)
at strongdmm.ui.dialog.available_maps.AvailableMapsDialogUi.process(AvailableMapsDialogUi.kt:17)
at strongdmm.StrongDMM.appLoop(StrongDMM.kt:100)
at strongdmm.window.AppWindow.loop(AppWindow.kt:274)
at strongdmm.window.AppWindow.start(AppWindow.kt:71)
at strongdmm.StrongDMM$Companion.main(StrongDMM.kt:115)
at strongdmm.StrongDMM.main(StrongDMM.kt)
Related to Feature Request: Permit Key rebinding/presets for parity with DMM #39
DMM has preset Zoom Levels
These levels, at least in my use-case and very likely many of those editing SS13 maps, is left at 100%.
Zooming in and out is done at a dramatically reduced rate; the 100% zoom level is sufficient.
Zooming in beyond 100% in StrongDMM causes a visual change in sprites/turfs/etc as scaling and low texture quality (ie 32 vs 64 etc) becomes more apparent.
My use case; StrongDMM is always kept at what is closest to 100% zoom level on Byond DMM.
The Field of View at this "100%" zoom level is sufficient.
Sprites retain a consistent look and scaling.
Permit the ability to lock at this 100%.
The Variables Preview Window remains full sized when your currently selected Object is Empty (instance with intial vars).
An option or default behavior of collapsing to fit this default text would be of use.
Example behaviour:
Current.
Suggestion 1.
Suggestion 2. (most prefered)
Not sure where to put feature requests, so here it is.
The base BYOND editor has a function to locate instances within a .dmm file by right clicking on the instance and allowing you to jump between all instances of the instance within the map file.
Currently, you can only see the changed instance variables, so it would be great to have parity with the base BYOND editor.
I am having trouble finding and deleting certain objects on an old map, I think this will be a good quality of life improvement.
Variables Preview Window does not allow editing, nor auto-opening, nor auto-opening + jumping from within it.
Feature Requests:
Allow editing from within Variables Preview.
(Clicking within Purple Box to edit directly in Variables Preview window)
Add the ability that double clicking the Variables Preview automatically opens the Edit Variables window.
(Double clicking within Purple Box to automatically open Edit Variables Window)
Add the Ability to Double Click Variable Name within Variables Preview to Open Edit Variables Window, and to jump to that Variable.
(Double Clicking Purple Box Opens, and Jumps to that Variable.)
More of a quality of life thing than a bug, but any action such as deletions, varedits, etc. resets the currently selected object to having the default instance selected. It's irritating to have to reclick whatever instance you previously had selected every time you delete something.
Add a button or Hotkey to allow a Selected, highlighted, or Actively Editing Variable to be reset to default from within Edit Variables Window.
Suggested Hotkey: Ctrl+Shift+ Double Click a Variable to Reset it to Default instead of edit it.
(translated text from one language to another)
when trying to delay any button in Edit... (aka VV) when we edit a line, the program crashes. In my case, I changed the health value of the creature and to make it immortal, I held the zero button and got a crash.
After saving the map for some reason,
the map file: Erased, Corrupted, Some parts of the map are missing!
My version : 0.0.10
I hope this problem will be solved!
Проблема нечастая (редко когда меняешь рабочую среду), но все таки
Byond DMM crashes. It does this enough that it becomes a habit of Ctrl+S to save.
There is only 1 indicator that your map did save on StrongDMM.
An Asterisk next to the Map Name, in the Top Right most Window goes away.
Some form of more visual Feedback would be nice.
A Mouse Wheel Icon change would be Byond DMM Parity, and would be amazing.
This is really minor but I figured you wouldn't mind if I put it up.
If you find this too minor, go ahead and close this.
It has occured to me that the current logo isn't really suited for an app icon. I'm a graphic designer and I use Strong DMM. Here is a quick proposal for a new logo. If you're willing to change the logo, I can take any criticism on this proposal and I can create any number of logos till it's good.
If you want to keep the current one then you can close this issue.
You should add a square and circle tool so one doesn't have to measure out each individual tile.
Opening Any Window should have hotkeys for Ok and Cancel, bound by default to Enter (for Ok) and Escape (for Cancel)
This should default to whatever your last opened Window was, or currently selected Window is.
Example reference.
Read more about this please: http://www.byond.com/forum/post/2520672
There is no DDM-analog editors with support non-English characters in WHOLE INTERNET!
Maybe… Someday… I will see this characters as are normal symbols, not something weird… p.. please..
Like doing a selection then Ctrl+H in DreamMaker.
Upon loading a map with unknown types, they are then deleted.
However, at least in the case of turfs, it seems to be impossible to place new ones down in the same spots. Even after saving and reloading the map.
There isn't support for multi - Z levels.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.