Topic category: Plugins and third-party tools
This plugin allows you to render objects on the sky and world
Download:
https://mcreator.net/plugin/93491/custom-fog-plugin-forge-1182-1192
Source code repository:
https://github.com/Sumeshi2/World-Renderer
Event triggers:
World Renderer currently adds 5 event triggers (It is 6 if the version is for 1.14.4 / 1.15.2 / 1.16.5 / 1.17.1)
- "Render world"
- "Render sky"
- "Render fog"
- "Compute fog color"
- "Compute fog density" (Forge 1.15.2 / 1.16.5 / 1.17.1)
- "Compute FOV"
Event trigger "Render world":
It is possible to render objects on the world. You can use these procedures
- "Render entity"
Event trigger "Render sky":
It is possible to render objects on the sky. You can use these procedures
- "Render abyss"
- "Render deep sky"
- "Render moon"
- "Render regular polygon"
- "Render sky box"
- "Render stars"
- "Render sun"
- "Render sunlights"
- "Render texture"
Event Trigger "Render Fog":
- "Set fog distance": It can set fog distances of a start and an end
- "Set fog shape": It can set a fog shape to a sphere or a cylinder (Forge 1.18.2 / 1.19.2 / 1.19.4 / 1.20.1)
Event Trigger "Compute Fog Density" (Forge 1.14.4 / 1.15.2 / 1.16.5 / 1.17.1):
If you want to change fog density, use it (Forge 1.15.2 / 1.16.5 / 1.17.1)
Event Trigger "Compute Fog Color":
It can set fog color. The transparency cannot be changed
Event Trigger "Compute FOV":
FOV value can be changed
Regardless of the dimension, suntime, or nighttime, these event triggers are always triggered. If your modding need these distinctions, you will need to use the condition like the following
"Clear all rendered objects":
If you want to remove the vanilla sky, before you render objects, use the procedure. On event trigger "Render world", It should not use because even blocks and entities will be removed
"Rotate pose":
Rotation will be needed to define for some procedures
""Set texture":
Some procedures need to define texture. If necessary, you will need to use the procedure. If using your texture, You will need to import the texture as the type "Other"
""Set color":
Only if Forge 1.18.2, 1.19.2, 1.19.4 1.20.1, you will need to use the procedure to set a color. Not required for other versions
"Render abyss":
This procedure can render an abyss on the bottom of the sky. It should be used on the event "Render sky"
- "constant": The vanilla abyss is usually rendered when player is at Y=62 or below. However, if this option is enabled, the condition will be ignored and the abyss is always rendered
"Render deep sky":
This procedure can render an deep sky on the top of the sky. It should be used on the event "Render sky"
If you want to use the vanilla sky color, use a procedure "Get sky color" in this way. The following is a comparison without and with deep sky
"Render entity":
This procedure can render an entity on the world. It can only be used on the event "Render world"
- "entity": It is entity to render
- "x/y/z": It defines a world position to render
- "yaw/pitch/roll": It defines a rotation of an entity model
- "size": It is a value which defines a size of an entity model. If the value is 2, the size of a model will be twice
- "brightness": It is the brightness of an entity to render. It is defined from values of sky and block lights
Only if it is in Forge 1.18.2 / 1.19.2 / 1.19.4 / 1.20.1, It is possible to change the color
"Render moon":
This procedure can render a moon on the sky. It cannot change the angles. It should be used on the event "Render sky"
- "constant": it defines whether or not a moon disappears if it rains. If it is enabled, The moon will be always rendered
- "moon phase": If you enable it, moon phases will be used like the vanilla moon. Besides, you will need to use a texture such as the following
It is an example of setting a texture and a color. You will need to import your texture as "Other" and input a mod ID and a texture name
"Render regular polygon":
This procedure can render a regular polygon on the sky. It should be used on the event "Render sky"
- "pose": It defines the rotation of a regular polygon with a new variable "pose"
- "mode": It can change the appearance of a regular polygon to render
- "vertex": It defines the numbers of regular polygon vertices
- "constant": it defines whether or not a regular polygon disappears if it rains. If it is enabled, The regular polygon will be always rendered
The following is an example
"Render sky box":
This procedure can render a sky box on the sky. It should be used on the event "Render sky"
- "mode": It defines how to map a texture
- "SIX_FACES": Different textures can be used for each face. You will need to use the texture like in the above image
- "ONE_FACE": With one texture, a sky box is rendered
- "END_SKY": Like "ONE_FACE", but texture orientation is a little different
- "constant": it defines whether or not a sky box disappears if there are boss mobs in the world. If it is enabled, The sky box will be always rendered
The following is an example
"Render stars":
This procedure can render stars on the sky. It cannot change the angles. It should be used on the event "Render sky"
- "amount": It is the numbers of stars to render
- "seed": It is a seed value which is used for the random numbers to define star positions
- "constant": it defines whether or not stars disappear if it rains. If it is enabled, The stars will be always rendered
The following is an example
You can use a vanilla star color like in the above image
"Render sun":
This procedure can render a sun on the sky. It cannot change the angles. It should be used on the event "Render sky"
- "constant": it defines whether or not a sun disappears if it rains. If it is enabled, The sun will be always rendered
The following is an example
"Render sunlights":
This procedure can render sunlights on the sky. It cannot change the angles. It should be used on the event "Render sky"
The following is an example
Other than the time that is sunrise and sunset, note that the procedure "Get sunlight color" return a transparent color
"Render texture":
This procedure can render a texture on the sky. It should be used on the event "Render sky"
- "pose": It defines rotation of a texture to render
- "size": It defines a size
- "constant": it defines whether or not a texture disappears if it rains. If it is enabled, The texture will be always rendered
The following is an example
Oooo looks good so far!
can you do this for 1.14.4 as well?
I'm planning on doing it, but it will need to take some time because I'll have to rewrite all the source code
Ok
Is there a way to disable abyss at all? Or at least change abyss render height
It will need to clear all sky objects and render vanilla objects if necessary
Hello!
Thank you for making this amazing plugin, I absolutely love it!
Though, for some reason whatever I do I always get a "package Axis does not exist" error and my mod fails to compile.
I'm trying to render a texture in the sky, but I have no idea what's happening. I would really appreciate a bit of help :)
Could you tell me using Forge version?
I'm using Forge 1.19.4 (45.1.0), 2023.2
Could you send me your procedure screenshot?
Sure! Here is one that gives this error:
[Link]
Umm... seems like a strange error, try the following two
- Try to regenerate code
- Check if there is "com.mojang.math.Axis.java" from the file browser
Regenerated code multiple times, still gives the same error.
Axis.java is present 3 times in the same locations as on your screenshot
Update!
Manually added "import com.mojang.math.Axis;" by editing the procedure code.
Now it compiles and works as intended.
Though this is not optimal in any way, of course.