Distant Horizons API

Distant Horizons API

Mod

Provides a Minecraft and mod loader independent way of interacting with and modifying Distant Horizons.

Library

124.8k downloads
41 followers
Follow Save
90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!
Filter loader...
Filter versions...

3.0.0

by jeseibel on Aug 21, 2024
Download

Highlights:

  • Due to breaking changes (mainly caused by incorrectly named objects) the api version number has been up from 2.1.0 to 3.0.0
    • please make sure your implementing programs check the API version and handle old DH versions cleanly.

Full Details:

updated javadocs

Additions:

  • Generic Rendering API
    • New objects include:
      • DhApiRenderableBoxGroupShading
      • DhApiRenderableBox
      • DhApiBeforeGenericRenderSetupEvent
      • DhApiBeforeGenericRenderCleanupEvent
      • DhApiBeforeGenericObjectRenderEvent
      • IDhApiRenderableBoxGroup
      • IDhApiCustomRenderRegister
      • IDhApiCustomRenderObjectFactory
      • IDhApiGenericObjectShaderProgram
      • IDhApiGenericRenderingConfig
    • New bindings/methods include:
      • DhApi.Delayed.IDhApiCustomRenderObjectFactory
      • IDhApiLevelWrapper.getRenderRegister()
      • IDhApiGraphicsConfig.IDhApiGenericRenderingConfig
  • Optional memory caching to IDhApiTerrainDataRepo methods
    • This allows for much faster raycasting and repeat query operations
    • IDhApiTerrainDataCache
  • New Enum EDhApiBlockMaterial
  • New getter IDhApiBlockStateWrapper methods
    • IDhApiBlockStateWrapper.getSerialString()
    • IDhApiBlockStateWrapper.getMaterialId()
  • New wrapper Factory methods to builder wrappers from resource location strings (IE "minecraft:stone", or "minecraft:plains")
    • IDhApiWrapperFactory.getBiomeWrapper(String resourceLocationString, IDhApiLevelWrapper levelWrapper)
    • IDhApiWrapperFactory.getDefaultBlockStateWrapper(String resourceLocationString, IDhApiLevelWrapper levelWrapper)
  • Optional additional world gen DhApiChunk validation

Bugfixes:

  • Fix/add AbstractDhApiChunkWorldGenerator.generateApiChunk()
    • API Chunk generation was present previously but was broken preventing it's correct use

Breaking Changes:

  • Renamed

    • Math/Position objects
      • Vec3f -> DhApiVec3f
      • Vec3d -> DhApiVec3d
      • Vec3i -> DhApiVec3i
      • Mat4f -> DhApiMat4f
    • Affected API objects:
      • Vec3i -> DhApiVec3i
        • DhApiRaycastResult
        • DhApiBeforeBufferRenderEvent
        • DhApiAfterRenderEvent
        • IDhApiShaderProgram
        • IDhApiCullingFrustum
      • Mat4f -> DhApiMat4f
        • DhApiRenderParam
  • Removed

    • IDhApiGpuBuffersConfig
      • These config values didn't need to be changed by the end users (Note: if James is wrong and these do need to be changed in some edge cases, let him know so the change can be rolled back)
      • this includes:
        • gpuUploadMethod
        • gpuUploadPerMegabyteInMilliseconds

Deprecations:

  • IDhApiLevelWrapper.getHeight()
    • This change is done so get min/max heigth are both viable methods
    • use getMaxHeight() instead
  • DhApiChunk constructor
    • This change was due to the old constructor's parameters being in the wrong order (Specifically top and bottom positions being flipped)
    • use DhApiChunk.create() instead
  • DhApiTerrainDataPoint constructor
    • This change was due to the old constructor's parameters being in the wrong order (Specifically top and bottom positions being flipped)
    • use DhApiTerrainDataPoint.create() instead
  • EDhApiGpuUploadMethod.BUFFER_MAPPING
    • Buffer mapping was removed as an option due to memory leaks in the old system and having one system being simpler. This can be reverted if users determine that buffer mapping is better in some situations.
  • IDhApiWorldGenerator.isBusy()
    • The method now has a default implementation but isn't used.
    • The task queuing logic is now handled internally by DH

2.1.0

by jeseibel on Jun 25, 2024
Download

Additions

  • EDhApiUpdateBranch.AUTO

2.0.0

by jeseibel on Jun 1, 2024
Download

Highlights:

  • Due to breaking changes the api version number has been up from 1.0.0 to 2.0.0
    • please make sure your implementing programs check the API version and handle old DH versions cleanly.

Full Details:

Breaking Changes

  • Renamed

    • ERendererMode -> EDhApiRendererMode
    • DhApiChunkOfDataPoints -> DhApiChunk
    • DhApiTerrainDataPoint
      • lightLevel -> blockLightLevel, skyLightLevel
    • DhApiBeforeRenderEvent and DhApiAfterRenderEvent -> EventParam
      • DhApiBeforeRenderEvent.EventParam -> DhApiRenderParam
      • DhApiAfterRenderEvent.EventParam -> DhApiRenderParam
    • Added missing "DhApi" prefix to the following enums:
      • EDhApiQualityPreset
      • EDhApiThreadPreset
      • EDhApiBlocksToAvoid
      • EDhApiDataCompressionMode
      • EDhApiGLErrorHandlingMode
      • EDhApiGlProfileMode
      • EDhApiGpuUploadMethod
      • EDhApiGrassSideRendering
      • EDhApiHorizontalQuality
      • EDhApiLodShading
      • EDhApiLoggerMode
      • EDhApiMaxHorizontalResolution
      • EDhApiServerFolderNameMode
      • EDhApiUpdateBranch
      • EDhApiVanillaOverdraw
      • EDhApiVerticalQuality
      • EDhApiWorldCompressionMode
      • EDhApiDebugRendering
      • EDhApiFogColorMode
      • EDhApiFogDrawMode
      • EDhApiFogFalloff
      • EDhApiHeightFogMixMode
      • EDhApiHeightFogMode
      • EDhApiRendererMode
      • EDhApiRenderPass
      • EDhApiTransparency
      • EDhApiWorldGeneratorReturnType
  • Replaced

    • IDhApiRenderProxy
      • removed getDhFrameBufferId() and setTargetFrameBufferId()
        • replaced with the bindable IDhApiFramebuffer interface
    • IDhApiGraphicsConfig
      • Replaced overdrawPrevention() with overdrawPreventionRadius()
    • Removed DhApiScreenResizeEvent
      • replaced with DhApiColorDepthTextureCreatedEvent

Additions

  • expand API to allow world generator to generate chunks of data points in addition to actual chunks. - Builderb0y

  • usable interfaces

    • IDhApiWrapperFactory
  • bindable interfaces

    • IDhApiFramebuffer
    • IDhApiShaderProgram
    • IDhApiCullingFrustum
    • IDhApiShadowCullingFrustum
  • bindable events

    • DhApiBeforeApplyShaderRenderEvent
    • DhApiBeforeBufferRenderEvent
    • DhApiBeforeDeferredRenderEvent
    • DhApiBeforeRenderCleanupEvent
    • DhApiBeforeRenderPassEvent
    • DhApiBeforeRenderSetupEvent
    • DhApiBeforeTextureClearEvent
    • DhApiColorDepthTextureCreatedEvent
  • methods

    • IDhApiRenderProxy
      • setDeferTransparentRendering()
      • getDeferTransparentRendering()
      • getNearClipPlaneDistanceInBlocks()
    • IOverrideInjector.unbind()
    • DhApi.isDhThread()
    • DhApiConfigValue.clearValue()
    • IDhApiRenderProxy.getDhFrameBufferId()
    • IDhApiWorldGenerator
      • generateChunks()
      • generateApiChunks()
      • EDhApiWorldGeneratorReturnType getReturnType()
    • IDhApiConfigValue
      • getApiValue()
      • clearValue()
  • variables

    • DhApiRenderParam
      • EDhApiRenderPass renderPass
      • float nearClipPlane
      • float farClipPlane
    • DhApi.wrapperFactory

1.0.0

by jeseibel on Nov 16, 2023
Download

The first version of the DH API, designed for DH 2.0.


Project members

jeseibel

Owner

coolGi

Member

Ran

Member

Details

Licensed LGPL-3.0-only
Published a year ago
Updated 3 months ago