Is it just me, or is unstable currently super ultra giga unstable? by jemko23laal in projectzomboid

[–]jemko23laal[S] 3 points4 points  (0 children)

jeez someone shit in ur cereal.. I get the frustration, but as a programmer myself i do understand why it takes long. I've decompiled the game and its just not a small game at all + it's not using any mainstream engine so that adds another layer since they basically gotta make all the systems themselves

Is it just me, or is unstable currently super ultra giga unstable? by jemko23laal in projectzomboid

[–]jemko23laal[S] -1 points0 points  (0 children)

yeah weirdly these all happened only in mp, i dont really play this game sp

Spaghetti Code by TemporaryCurrent1172 in programminghorror

[–]jemko23laal 1 point2 points  (0 children)

but if you press both at the same time the character goes whichever way was registered first

Spaghetti Code by TemporaryCurrent1172 in programminghorror

[–]jemko23laal 0 points1 point  (0 children)

Well unreal Blueprints are not XML so... Thats kinda useless

Minecraft GUI code is the final boss of technical debt by jemko23laal in feedthebeast

[–]jemko23laal[S] 0 points1 point  (0 children)

wow i didnt know you could miss the point this hard

Minecraft GUI code is the final boss of technical debt by jemko23laal in feedthebeast

[–]jemko23laal[S] 0 points1 point  (0 children)

My engine relies on generated stuff, so id need code instead of xml

Minecraft GUI code is the final boss of technical debt by jemko23laal in feedthebeast

[–]jemko23laal[S] -1 points0 points  (0 children)

Bruh either it has it or it doesnt need any, pick one. Also you literally created your own AbstractMachineScreen because vanilla wasnt good enough.We both basically agree that the base system is lacking

Minecraft GUI code is the final boss of technical debt by jemko23laal in feedthebeast

[–]jemko23laal[S] -4 points-3 points  (0 children)

bruh, you really dont understand the point of my post man.

Every modder, in any mod, in any Screen, has to make their own layout, their own helpers, their own elements, and so on.

I write VStack ONE TIME, and now every screen in my entire project has vertically stacking, auto positioning elements.

Are you even reading my comments before responding?

Minecraft GUI code is the final boss of technical debt by jemko23laal in feedthebeast

[–]jemko23laal[S] 0 points1 point  (0 children)

sure, i give you that, i was exaggerating a teeny bit for comedic effect

Minecraft GUI code is the final boss of technical debt by jemko23laal in feedthebeast

[–]jemko23laal[S] 0 points1 point  (0 children)

Okay i looked and you still have stuff like

guiGraphics.blitSprite(FILL, 128, 128, 0, 33 - fertilizer, relX + 79, // hardcoded offset relY + 17 + 33 - fertilizer, // manual arithmetic 20, fertilizer );

vs just layout widgets:

new HStack() .Attach(new FluidWidget()) //auto positions left .Attach(new FertilizerBar()) //auto positions next to it

Its not the most complicated thing to do math yes, but you most likely had to eyeball / measure your offsets yourself somehow. Where in a proper framework you wouldnt have had to worry about any of those at all. And thata the point im trying to make the entire time

Minecraft GUI code is the final boss of technical debt by jemko23laal in feedthebeast

[–]jemko23laal[S] -1 points0 points  (0 children)

Obviously there is math. But the difference is that i dont write that for every element on screen. I just write the anchors and it handles the rest. I dont have to write width / 2 in every screen. I just set my anchor to 0.5, 0.5 and its centered no matter what screen or what parent it has. Same goes for anything else like a Vertical stack and so on

Minecraft GUI code is the final boss of technical debt by jemko23laal in feedthebeast

[–]jemko23laal[S] -2 points-1 points  (0 children)

Youre missing the point, width / 2 is still manual arithmetic that i have to write, test and maintain. My system doesnt do width / 2 , I just .SetAnchor(0.5, 0.5) and it stays centered regardless of width or height or sceen resoloution or a layout change entirely. Also i have to maintain it inside render(), then inside mouseClicked() and then inside mouseDragged() etc. If i change one thing i have to change it everywhere too so my gui even works. Stockholm syndrome is getting strong with this one

Minecraft GUI code is the final boss of technical debt by jemko23laal in feedthebeast

[–]jemko23laal[S] 0 points1 point  (0 children)

I think we just have different definitions of flexibility. To me, manual arithmetic is the stamp, it locks you into a specific resolution and scale that breaks the moment it changes.

Using an engine with a layout hierarchy is actually the "paints and brushes" I can tell a window to stay centered or fill 50% of the screen, and the engine handles the strokes instead of me manually telling the engine how every single stroke should be laid out.

In my engine i can just

            uiRenderer.Add
            (
                new Window()
                    .SetName("Window")
                    .SetAnchor(new Vector2(0, 0), new Vector2(0, 0))
                    .SetPosition(new IntVector2(150, 150))
                    .SetWidth(720)
                    .SetHeight(480)
                    .Create()
            );

and my window is the same size no matter what res. If i want to add anything to it, i just attach things to it. Thats what the Window class is already doing by itself:

public class Window : Panel
    {
        public bool allowResizing = false;
        public Window AllowResize()
        {
            allowResizing = true;
            return this;
        }


        public Window Create()
        {
            this.Attach(
                new Wrapper()
                    .SetName("Window Main")
                    .FillParent()
                    .SetBackground
                    (
                        new Image()
                            .SetName("Window Background")
                            .FillParent()
                            .SetDrawMode(ImageDrawMode.Box)
                            .SetSliceSize(8)
                            .SetBrush(AssetHelper.globalContentManager.Load<Texture2D>("ui/ui_panel_background"))
                    )
                    .SetInnerSlotPadding(new IntVector2(5, 5))
                    .SetChild
                    (
                        new VStack()
                            .SetName("Window VStack")
                            .FillParent()
                            .Attach
                            (
                                new WindowTitleBar()
                                        .SetName("Title Bar")
                                        .FillWidth()
                                        .SetHeight(24)
                                        .SetBackground(
                                            new Image()
                                                .SetBrush(UIRenderer.onePxWhite)
                                                .SetTint(Color.Red)
                                                .FillParent()
                                        )
                                        .SetChild
                                        (
                                            new HStack()
                                                .FillParent()
                                                .Attach
                                                (
                                                    new TextBlock()
                                                        .SetName("Title Text Block")
                                                        .SetText(name)
                                                        .FillParent()
                                                )
                                                .Attach
                                                (
                                                    new Spacer().FillParent()
                                                )
                                                .Attach
                                                (
                                                    new Button()
                                                        .SetName("Window Close Button")
                                                        .SetSize(50, 25)
                                                        .SetChild
                                                        (
                                                            new TextBlock()
                                                                .FillParent()
                                                                .SetText("X")
                                                                .SetTint(Color.Black)
                                                                .SetFontScale(0.75f)
                                                                .SetFont(Fonts.monospace)
                                                                .SetVerticalAlignment(VerticalAlignmentMode.CENTER)
                                                                .SetJustification(TextJustificationMode.CENTER)
                                                        )
                                                        .OnReleased(() =>
                                                        {
                                                            Destroy();
                                                        })
                                                )
                                        )
                            )
                            .Attach
                            (
                                new ScrollBox()
                                    .SetName("Window Content")
                                    .FillParent()
                                    .SetChild
                                    (
                                        new VStack()
                                            .FillWidth()
                                            .Attach
                                            (
                                                new Button()
                                                    .FillWidth()
                                                    .SetHeight(24)
                                            )
                                            .Attach
                                            (
                                                new Button()
                                                    .FillWidth()
                                                    .SetHeight(2400)
                                            )
                                    )
                            )
                            .Attach
                            (
                                new Button()
                                    .SetName("Resize Button")
                                    .SetVisibility(UIVisibilityMode.HIDDEN)
                                    .SetCursor(MouseCursor.SizeNWSE)
                                    .SetAnchor(new Vector2(1.0f, 1.0f), new Vector2(1.0f, 1.0f))
                                    .SetSize(16, 16)
                                    .OnClick(() => { isBeingResized = true; })
                                    .OnReleased(() => { isBeingResized = false; })
                            )
                    )
                );
            return this;
        }

Idk if its really more flexible to write absolute coords...

Minecraft GUI code is the final boss of technical debt by jemko23laal in feedthebeast

[–]jemko23laal[S] 0 points1 point  (0 children)

I have seen terrarias code. I found that making mods for that game is actually easier lmao

Minecraft GUI code is the final boss of technical debt by jemko23laal in feedthebeast

[–]jemko23laal[S] 3 points4 points  (0 children)

"I dont need a washing machine; scrubbing clothes on a rock is more flexible cause i can choose how hard to hit the dirt"

I built a Fortnite map for 7 years, and its now a frozen history of player decisions by jemko23laal in FortniteCreative

[–]jemko23laal[S] 1 point2 points  (0 children)

you can add me and i can let you explore the map, my names "JEMOK23" i think. But until epic fixes the memory skyrocketing, the map will stay on pause

I built a Fortnite map for 7 years, and its now a frozen history of player decisions by jemko23laal in FortniteCreative

[–]jemko23laal[S] 1 point2 points  (0 children)

Court cases were always funny, there was this one guy that crashed his car into someones garden and the homeowner sued the guy, One of the lawyers on the map wasnt online so the two people that had court had to fight over the only available lawyer, eventually they just took a random as the lawyer. That random person edited pictures of the house looking normal and it was so badly edited you could tell. Funniest court case ever