Posts by red51

A new update is now available, introducing "Points of interest" and many more changes!
Latest hotfix: 0.9 (2025-11-05)

    First, positions are from the bottom left corner of the screen (i.e. x=0, y=0 is the bottom left corner of the viewport), which is counter intuitive with the top left positioning of just about every UI managers. I understand that this is an OpenGL issue, but why not translating these values (i.e. inverting the Y's) instead of making it awkward for the plugin developers?

    OpenGL handles the screen coordinates this way, i.e. 0|0 is the bottom left corner of the screen. Without taking into account that DirectX handles this differently, I'm not sure if the OpenGL way isn't even more intuitive at least for newcomers: people would probably consider the screen being a 2-dimensional coordinate sytem (even though this is technically wrong), and in school we learn that the origin of a 2d coordinate system is in the bottom left corner.


    It's a pity that there are differences out there how screen coordinates are handled, but since RW is an OpenGL application, I'm not sure if it's a good idea to change the coordinates. Especially since changing that would break every existing plugin which uses gui elements =O


    Second, PivotPosition is also reversed. Where PivotPosition.BottomLeft makes a container align from the top left corner!

    Hmm... I just checked it and it works as intended 8| The pivot position sets the position of the pivot of the particular gui element, e.g. when changing it to BottomLeft, the bottom left corner of the gui element is used for the pivot position (i.e. the actual position of the gui element refers to the pivot position).


    Example:

    Java
    GuiPanel p = new GuiPanel(0.5f, 0.5f, true, 300, 200, false);
    p.setPivot(PivotPosition.BottomLeft);
    player.addGuiElement(p);


    This code (PivotPosition BottomLeft) gives this result (as intended):


    Changing the PivotPosition to TopLeft, we get this result:


    Changing it to BottomRight:


    And changing it to TopRight:


    Did you encounter a different behavior with other gui elements?

    The banned list is kept in the world database, although we're thinking about moving it to a separate text file.


    About the "blacklist": You have to create a separate text file called "blacklist" in your server directory. There you can add blacklisted players (one name per line). Also make sure that settings_blacklisted in the server.properties file is set to true ;)

    OK First bug report. After setting a blueprint, if you decide you need to remove it and use undobluprint in the console in allotted time, not everything disappears

    Actually there was a similar bug report a few months ago (related to the undo-command), unfortunately I wasn't able to reproduce this issue yet :/ How much time did pass until you used the undo-command (after placing the blueprint)? Can you maybe send me the blueprint file in question (via PM)?

    It's easy actually. Red51 wanted us to progress from Medieval era into the modern area as we tech up via recipes and such. Once he has everything tweaked he'll separate the two so we can play straight from Medieval era into Modern, or even locking it into either Medieval or Modern era items.

    Exactly :)


    If we ever get some kind of fantasy biome, I'm all for giant ride-able snails.

    Hehe, I will keep that in mind :D



    __________________________________________


    A small hotfix is now available. It fixes the secondary action of sickle/scythe as well as some plugin API related issues ;)


    Hotfix 2018-01-01:

    • [Change] Player distance (scoreboard) can now be disabled in server properties
    • [Bugfix] Fixed secondary action of sickle/scythe (lower grass)
    • [Bugfix] Fixed plugin API related issues

    Red 51 eine Frage: muss ich da etwas anders einstellen?

    Welche Einstellung hast du in der config.properties Datei für graphic_logarithmic_depthbuffer gewählt? Wenn der Wert auf true gesetzt ist, sollte sich das Flackern eigentlich merklich reduzieren.



    ____________________________________________


    Ein kleiner Hotfix ist nun verfügbar. Dieser behebt die Sekundäraktion der Sichel/Sense (Gras schneiden) sowie ein paar kleinere Probleme mit der Plugin API ;)


    Hotfix 01.01.2018:

    • [Geändert] Spieler Distanz (Scoreboard) kann nun in Servereinstellungen deaktiviert werden
    • [Behoben] Sekundäraktion von Sichel/Sense korrigiert (Gras schneiden)
    • [Behoben] Probleme mit Plugin API behoben

    PLAYER 1: ...

    Exactly ;)


    1. does he also have to adjust parameters? (screenshot 1)

    Yes, everybody who wants to join this server (as well as the host), have to set the +ipv6 option. In most cases it should still be possible to join IPv4 servers btw, even while the +ipv6 tag is set^^


    2. go to multiplayer then hit connect to ip (screenshot 3) paste in Player 1 IP6 sent him via Steam chat

    That's right :thumbup:


    Is there a password something like that somewhere for login as an option?

    Unfortunately there is no option to set a password for LAN games, but usually it wouldn't be necessary anyway, since your LAN server will not show up in the server browser (so if someone wants to join, he needs your IP address).

    Nur kann ich natürlich nicht alles einfach in die onEnable reinschieben ohne NullPointerException zu bekommen.

    Dann liegt das aber am Code, denn das ist so der vorgesehene Weg :) Denn es ist nicht vorgesehen, dass eigene Instanzen einer Plugin-Klasse erzeugt werden. Das Spiel bzw. der Server sind die einzigen, welche neue Plugin-Instanzen erzeugen dürfen, denn von selbsterzeugten Instanzen weiß das Spiel bzw. der Server nichts (somit würden auch die meisten der Plugin-Methoden für diese selbsterzeugten Instanzen nicht funktionieren). Natürlich kannst du trotzdem mit Klassen und eigenen Objekten arbeiten, OOP ist ja weiterhin möglich (und auch zu bevorzugen), aber diese sollten dann am besten nicht von Plugin abgeleitet sein.


    Im Zweifelsfall kannst du die Version mit dem Code in "onEnable()" einmal hier posten mit ggf. dem Hinweis, in welcher Zeile die NPE auftritt ;)

    You mean you can place three ores into a single slot? That's strange, since that shouldn't be possible anymore since the 0.9 version ?( Does the game really place 3 ores into a single slot (and do they turn into ingots)? What's your average framerate?
    Can you maybe create a small video of this phenomenon?

    hmm - das licht der fackeln/laternen gefällt mir gar nicht, meine mittelalterstadt leuchtet ja wie eine großstadt ....

    Das scheint aber bereits mit der 0.9 passiert zu sein, oder? 8| Ich schaue mal nach, woran das liegt


    Also ich wünsche mir ein Forums-Feature, welches Red ermöglicht, Sätz nicht mehr in Englisch anfangen zu müssen

    So ein Feature wäre wirklich toll, bleibt aber vermutlich Zukunftsmusik :( Danke für den Hinweis! :D


    Ja an den Lichtverhältnissen sollte noch etwas gearbeitet werden. Dies gilt ja auch für Räume wo keine Beleuchtung ist aber im Nebenraum und somit ist alles recht hell.

    Ja unbedingt, das ist auf unserer Liste, leider kann ich noch nicht sagen, wann das implementiert sein wird. Das Problem sind die Planken und Balken, welche die Lichtberechnung exorbitant teuer machen - besonders dann, wenn sehr viele Teile verbaut sind.

    Old Changelog (0.9)


    Changelog 2017-12-30 (Rising World 0.9.1.5):

    • Item

      • [New] getAttribute()
    • Inventory

      • [New] insertNewObjectItem()
    • World

      • [New] getCreationDate()
      • [New] spawnObjectItem()
    • GuiElement

      • [New] getChildren()
    • Definitions

      • [New] getAllItemDefinitions()
      • [New] getAllObjectDefinitions()
    • General

      • [New] GuiFileBrowser to allow clients to upload files to the server
      • [Bugfix] Fixed error when accessing definitions
    • Events

      • [New] ExplosionEvent
      • [Bugfix] Fixed getObjectPosition() function




    ______________________________________________


    Latest Javadoc: https://javadoc.rising-world.net/
    Latest Download: https://download.rising-world.net/api/PluginAPI.zip

    Basically the WorldArea should work like all other WorldElements (e.g. World3DModel). It is used to visualize an Area object.


    Example code:

    thank you this is less lagging on the Jingle Bell Jam site :)

    Thanks for the feedback, glad to hear that :)


    Still using a huge amount of ram, almost 7gb just on the menu screen alone!

    Where do you get this information from? Please keep in mind that the game allocates the max memory from the beginning (depending on the OS), so if you assign 8 GB to the game (this happens automatically if you have enough RAM), the Java VM will allocate it (even if the game actually only consumes a few MB) ^^


    When you're just in the main menu (i.e. just started the game, so you haven't loaded a world before, for example), the overall memory consumption should not exceed ~ 1 GB. You can get the actual memory consumption by typing memory into console ("used" heap + direct memory) ;)


    When a world is loaded, you can press F3 in order to get accurate memory stats.


    but i really would like to see in the next update a plate armor and that the samurai-helmet cover the whole head

    Yeah more armors are actually in the works :thumbup: About the samurai helmet, what do you mean exactly? Something like a mask?


    a weapon holder would be very useful and decorative. maybe as kind of the torchholder or as a shield or something.

    That's definitely planned, unfortunately I have no ETA for that yet :|


    and a little bug: the big lights shining through walls. im sorry for having no image of that.

    Yes, unfortunately light still does not get obstructed by blocks or planks. It's on our todo list, and it wouldn't be a huge problem for blocks, but calculating the light gets pretty expensive when taking planks and beams into account (especially when placing lots of construction elements). We still did not find a way to generate it properly without killing the performance.

    Danke für den Code :thumbup: Das Problem liegt darin, dass unbedingt ein leerer Konstruktor vorhanden sein muss, oder genauer ausgedrückt, ein Konstruktor, welcher keine Parameter entgegennimmt. Wenn kein Konstruktor definiert ist, ist so ein Konstruktor in Java immer automatisch vorhanden.
    Da du bei dir aber den Konstruktor mit einem "plugin" Parameter erstellt hast, verschwindet der Standardkonstruktor automatisch - es sei denn, du deklarierst den ebenfalls.


    Die "direkte Lösung" (wenngleich falsche Lösung) wäre, einen zweiten Konstruktor ohne Parameter hinzuzufügen:

    Java
    public SprachAPI(){
    }


    Das ist allerdings sicherlich nicht das, was deiner Intention entspricht. Dein Konstruktor enthält den "Plugin" Parameter, falls du da eine Referenz auf das SprachAPI Objekt erwartest, dann lass diesen Parameter ganz weg, da SprachAPI ja direkt auf sich selbst zugreifen kann (du kannst also innerhalb der Klasse SprachAPI sowieso direkt auf die eigenen Plugin-Methoden wie zB "getDescription()" oder "getPath()" zugreifen). In dem Fall ist es ggf. besser, nicht mit einem Konstruktor zu arbeiten (da dieses Plugin-Objekt zu diesem Zeitpunkt noch nicht ganz initialisiert ist), sondern den Code, der jetzt im Konstruktor ist, lieber in die "onEnable()" Funktion zu packen (diese wird dann aufgerufen, wenn das Plugin voll initialisiert und geladen ist).


    Falls da als Parameter jedoch ein ganz anderes Plugin erwartet wird, würde ich das lieber auslagern in eine separate Klasse o.ä., denn SprachAPI ist ja bereits ein Objekt vom Typ Plugin (denn auch hier ist wieder die Sache, dass andere Plugins zum Zeitpunkt des Konstruktor-Aufrufs u.U. noch nicht initialisiert sind).

    Unser dedicated Server hat momentan leider keine Integration der Steam API (daher ist er universell einsetztbar für Steam-Version und Standalone) ;) Das wird sich vermutlich ändern, wenn wir das Netzwerksystem überarbeiten und stärkeren Fokus auf die Steam-Features legen

    da das Spiel auf meinem iMac nicht so toll läuft, wollte ich auch mal deine "7-8GB Version" (RisingWorld_OSX_6GB.zip) testen.
    Der Launcher meldet aber, dass ich das Spiel nicht gekauft haben soll. Ich habe das Spiel über Steam erworben.

    Das gilt tatsächlich nur für die Standalone-Version. In Steam funktioniert die Memoryzuweisung eigentlich automatisch und sollte nur geändert werden, wenn man über wirklich sehr viel RAM verfügt (mehr als 8 GB). Du kannst die RAM-Zuweisung dann mithilfe einer Start-Option überschreiben (Rechtsklick auf RW in Steam -> Eigenschaften -> Start Optionen festlegen): Gib dort einfach +memory DIRECT HEAP ein, wobei DIRECT und HEAP durch die entsprechenden MB Zahlen ersetzt werden müssen (um das selbe Verhalten wie die 6GB Exe der Standalone zu erhalten [3gb heap und 3gb direct memory], müsstest du also +memory 3072 3072 als Start Option eingeben) ;)