Commit Graph

63 Commits

Author SHA1 Message Date
Anuken
9507292107 LCanvas cleanup 2025-02-11 11:07:51 -05:00
Anuken
5622b295e6 Logic canvas fixes 2025-02-10 16:21:51 -05:00
Anuken
9a9e4611cd Logic jump PR cleanup 2025-02-10 15:51:02 -05:00
way-zer
116798e328 OC: fix slow of LCanvas 2024-09-23 22:38:36 +07:00
code-explorer786
a5de131711 Trapezoidal jumps
I haven't checked this yet, but it seems like it also reduces the
complexity (runtime) from ≈O(n^2) to ≈O(k^2 + n)
(n = number of jump curves)
(k = number of unique destinations)

The worst case, that is k = n, is still O(n^2) but generally it's much
more (scalably) performant.

Thanks Arkanic for suggesting this!
https://discord.com/channels/391020510269669376/663854113418641429/1256161815503704104

Co-authored-by: Arkanic <50847107+Arkanic@users.noreply.github.com>
2024-09-23 22:31:21 +07:00
Ilya246
c5b8133ff9 optimise jump colors and attempt to space them apart 2024-09-23 22:26:11 +07:00
code-explorer786
939f6939d0 Jump curve coloring
See #general-programming in the Mindustry Discord server:
https://discord.com/channels/391020510269669376/663854113418641429/1256146387834372106

Co-authored-by: Ilya246 <ilyukarno@gmail.com>
2024-09-23 22:26:06 +07:00
code-explorer786
89b67fc4b4 Transition jump heights
It looks good.
2024-09-23 22:26:03 +07:00
code-explorer786
282d21db05 Update jump heights only when necessary.
This method uses signaling (through a boolean) and I feel like it's
extremely hacky, but I tested this and it (kind of?) works.
Unfortunately I found this to potentially lag when resizing.

I am not sure if this is guaranteed to work (as in, produce correct
behaviour) or not, but to my understanding only LogicDialog uses LCanvas
(grep out "LCanvas\|canvas" and see) so it will most likely work?

I tested this and accidentally found an unrelated issue related to
LCanvas.maxJumpsDrawn, but I hope this will be fixed in the near future.
2024-09-23 21:04:45 +07:00
code-explorer786
26105a64f1 Use pools
It feels hacky, but it works regardless. The GC should be working as
hard as it was beforehand.
2024-09-23 21:04:42 +07:00
code-explorer786
b58a6bb8d6 wip: different heights for jump arrows
Note that this is very incomplete, for two different reasons:
- it's O(n^2) or potentially worse
- it makes the GC work hard (it invokes `new` in
  `LCanvas.DragLayout.layout()`)

For the second reason this does not clearly fit the criteria of
CONTRIBUTING.md, but I have yet to figure out ways to work around this
(or make the algorithm more efficient).
2024-09-23 21:01:54 +07:00
code-explorer786
b8c9a05963 LCanvas: jumps -> statements.jumps
Original canvas.jumps is now a reference to canvas.statements.jumps.
Please remove canvas.jumps in favour of canvas.statements.jumps in a
future release. Thanks!
2024-09-23 18:14:38 +07:00
Anuken
fc883ca2f3 Logic canvas cleanup 2024-08-25 09:02:13 -04:00
Anuken
6e3cc13a26 Fixed logic scroll bar glitch 2024-08-24 16:01:06 -04:00
Anuken
22bd8c634f Fixed counter displaying as null / Revert #10090 2024-08-24 14:08:04 -04:00
Anuken
8e8b99d421 Removed most usage of Scene#hit 2024-08-16 16:00:47 -04:00
WayZer
728cb2b3e3 Fix Lag in LCanvas.java (#10090) 2024-08-05 16:34:40 -04:00
Anuken
b4b6b9fa44 World processor list in editor 2024-05-24 21:46:15 -04:00
Anuken
4c09f6dd40 Fixed #8025 2023-01-07 15:07:54 -05:00
Goobrr
625f7e9936 LStatement categories + improved UI (#7046)
* LStatement categories + improved UI

Co-authored-by: code-explorer786 <68312688+code-explorer786@users.noreply.github.com>

* annihilate LStatement#color

Co-authored-by: code-explorer786 <68312688+code-explorer786@users.noreply.github.com>
2022-06-19 10:57:49 -04:00
Anuken
e81438a7a9 Styles documented 2022-05-04 22:31:53 -04:00
Anuken
7b496b610e Revert "Cullable LogicCanvas (#6699)"
This reverts commit 815a396fbd.
2022-04-23 11:33:06 -04:00
Anuken
b40957e28b Merge branch 'master' of https://github.com/Anuken/Mindustry into 7.0-features
 Conflicts:
	core/src/mindustry/ui/dialogs/JoinDialog.java
2022-04-20 14:16:20 -04:00
buthed010203
815a396fbd Cullable LogicCanvas (#6699)
I like editing code with more than 10 fps
2022-04-06 00:54:14 -04:00
Anuken
38c0284bbe Functional world processors 2022-02-08 12:18:48 -05:00
Anuken
c226127648 Display jump statement destination 2021-09-30 17:33:17 -04:00
Anuken
1674b2dfd6 Fixed #5609 2021-07-18 16:31:13 -04:00
Anuken
544660c4bb Fixed #5545 2021-07-05 15:11:53 -04:00
Anuken
151c4f13df Fixed #5362 2021-06-05 08:57:25 -04:00
Anuken
f043a5f340 Logic tooltips on mobile devices w/ long-press 2021-02-19 17:18:17 -05:00
Anuken
1ef7ae7079 Logic hints for draw operations 2021-02-17 09:49:01 -05:00
Anuken
e22fccf5b1 Logic hint tooltips 2021-02-09 14:52:23 -05:00
Anuken
47eea79b60 Fixed #4453 / Fixed #4450 2021-01-27 11:49:04 -05:00
Anuken
f0c4ebfd31 Removed LCategory 2020-11-10 08:57:30 -05:00
Skat
ed36390f3c Great cleanup 2020-11-07 11:37:46 +03:00
Anuken
e853ed6419 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	core/src/mindustry/logic/LCanvas.java
2020-11-02 16:47:33 -05:00
Anuken
8f53d44278 Various fixes 2020-11-02 16:46:11 -05:00
DeltaNedas
cda6a6973d make logic stuff public, cleanup 2020-11-01 19:35:22 +00:00
Anuken
86c2fe8805 too many things to list 2020-10-15 13:44:20 -04:00
Anuken
5861fe61b2 Cleanup 2020-10-02 19:51:30 -04:00
Anuken
199be4d13d Implicit non-nullability for fields 2020-10-01 13:33:43 -04:00
Anuken
90aed50ca8 Many various fixes 2020-09-03 14:04:30 -04:00
Anuken
c1258b75d5 Logic edge autoscroll & jump highlighting on hover 2020-08-23 11:24:23 -04:00
Anuken
bbe6c5017a Removed synthetic accessors / Sector sanity tests 2020-08-19 15:13:29 -04:00
Anuken
a814b799e0 Fixed logic scrolling lock 2020-08-18 14:47:57 -04:00
Anuken
7e0391a8a0 Bugfixes 2020-08-17 23:47:39 -04:00
Anuken
69c04ea90d a 2020-08-17 20:49:24 -04:00
Anuken
98844d752c Better spore trees 2020-08-14 22:21:47 -04:00
Anuken
ffb2d6eeaa Better logic UI 2020-08-14 10:48:29 -04:00
Anuken
73dd7ba21a Test fixes 2020-08-13 20:28:36 -04:00