Posts by paulevs

    Good day, I want to request several things to the plugin API that will make developing some plugins easier:


    1. Ability to control some post effects for players - fog color, fog intensity and ambient light. This will make possible custom underground and underwater rendering, probably some custom effects on specific biomes and so on.


    2. Ability to attach same LOD parameters to assets as the game uses with same distances. This should make plugin graphics configurable together with game graphics and will make LOD configuration easier.


    3. Custom definitions. I think that it was planned earlier (and probably for final API version), so I just included it here. This will be a really powerful feature that will finally make custom things possible.


    4. Different world generation events to change and modify ho chunks are generated and populated

    PrefabAsset asset = PrefabAsset.loadFromAssetBundle(bundle , "wurfel2.obj");

    That will work only if prefab has "wurfel2.obj" name in Unity itself, in most cases prefab names are different from model names, for example this is how my crystal named:


    And its mesh:


    Both don't have .obj extension (even when model is OBJ), since Unity will change the name of imported models, and prefabs can have name that is different from model

    I think I finally understand your problem. I'm not sure that you can load Mesh directly from unity bundle, but you can load a prefab from it:

    Java
    Prefab prefab = new Prefab();
    prefab.setPrefab(PrefabAsset.loadFromAssetBundle(bundle, "path/to/refab/in/bundle"));
    prefab.setLocalPosition(player.getPosition()); // Or any other pos
    player.addGameObject(prefab);

    And you can change prefab material:

    Java
    MaterialAsset material = MaterialAsset.create("material_name");
    // Set properties and textures here
    prefab.setMaterial("default", material);

    "default" here is the node inside prefab


    And done:

    Hi, can you please show your log output?

    Are you trying to make a procedural mesh?

    Also, what is Texture and Normal arguments in your case? That are turned into String

    For second try i think to read somehow position of Z direct from chunk data, but here i am stuck i don't have idea how i can do that

    Hi, size of blocks in terrain is actually the same as units that player position have (1 block = 1 unit), so you only need to get terrain from specific chunk and iterate it from above until you will find any solid tile (anything with ID greater than 0 - air, and less then 200 - water). Chunk coordinates can be generated from desired position - there is an utility function for that (in ChunkUtils class), or you can divide your position on chunk width and height with flooring the result. Block coordinates inside chunk are relative to chunk position, so their calculation is also not very hard (you need to subtract chunkPos * chunkSize from your absolute block position to get relative position in chunk), and there is also utility function for that.


    what happen if i want to work with a chunk which was not yet generated by server

    I think that server will just return you null

    There is also a bug with UI (plant selection and element shape selection) - if you will open it on the second time it will show wrong place in catalogue with missing icons, and for element shapes it will show not all available shapes. Simple movement of a slider fixes this, so looks like it is a visual bug

    Oh, I wasn't aware of this issue :wat: Does that only happen when replacing a plugin?

    It happens when plugin event is triggered, sometimes it can happen on player join (probably related to player join event)


    Hmm... there is a chance that old animals that got stuck somewhere prior to the update now fall through the ground, but if this happens any other animals, that's a serious issue =O

    With any, and on each world launch. I'm testing things underground and see a rain from cows and chickens on each world launch :)

    Small bug report:

    - Main menu screen still can be black/dark, sometimes after leaving caves (probably related to some post effects)

    - Game sometimes can crash on world rejoining after plugins get update (EXCEPTION_ACCESS_VIOLATION)

    Actually both bugs existed in previous version (0.6.5), I just forgot about the last one


    Edit: animals will fall underground on world launch

    It's just how internal world edits work in the game ^^ But does that mean you want to use a global block position instead? With the WorldEditBatch, that should work: You could just provide 0 for chunk coordinates and use an arbitrary block position - the game should calculate the chunk positions automatically.

    Yes, global position, since chunk position can be calculated from it. The strange thing is when I manually calculate chunk position and relative block position - it fails to create anything, but if I use chunk position from the player and just offsets from player block position - that works fine. Probably something is wrong with my calculations


    A "cave":

    introduces many changes to the Plugin API

    Is it possible to send player changes made with WorldEditBatch or with World.setTerrainData? Looks like changes are applied on server side, but not on client side, and in singleplayer they are not stored


    Edit: it works, just with another calculations. I'm not sure why all calculations require chunk position and manually calculated chunk position doesn't work. Is it possible to have method that accepts only block positions and calculate chunk positions automatically?


    paulevs I'm interested in knowing your thoughts on this ;)

    As Red mentioned above - it is not Java code since java don't have such operators for strings. And yes - the most effective code to merge multiple strings will use StringBuilder. Old java converted string merging directly into StringBuilder, and newer have some other operators.

    Good day, looks like for some reason subsurface scattering is disabled in game (so if the object material have it it will be not rendered correctly). This is probably the reason why most foliage is so dark. Will it be added in the future or we will need to fake it?


    Example of object with subsurface scattering in editor:


    Same object in the game:


    It will also ignore direct sunlight and will be completely dark:

    So the constructor is definitely there, even in a separate file

    But that constructor accepts a String argument, and in your logs looks like you are giving it de.chaoswg.ClassASBConfig$ClassSeite, so probably instead of clazz.getDeclaredConstructor(componentType); you should call clazz.getDeclaredConstructor(String.class);

    If you have another approach to overlighting large configs while still keeping dynamic while loading, let me know ^^

    Well, for personal usage I made a very simple config system, it stores data in internal entries which can be called at any time. In some of my other projects I used simple json configs with similar approach