Updated README.md

This commit is contained in:
Frank 2022-06-07 23:30:28 +02:00
parent 223d35febe
commit af3fca0c41

127
README.md
View file

@ -1,106 +1,131 @@
[![](https://jitpack.io/v/quiqueck/BCLib.svg)](https://jitpack.io/#quiqueck/BCLib) [![](https://jitpack.io/v/quiqueck/BCLib.svg)](https://jitpack.io/#quiqueck/BCLib)
# BCLib # BCLib
BCLib is a library mod for BetterX team mods, developed for Fabric, MC 1.19 BCLib is a library mod for BetterX team mods, developed for Fabric, MC 1.19
## Importing:
You can easily include BCLib into your own mod by adding the following to your `build.gradle`:
```json
repositories {
...
maven { url 'https://jitpack.io' }
}
```
```json
dependencies {
...
modImplementation "com.github.quiqueck:BCLib:${project.bclib_version}"
}
```
## Features: ## Features:
### Rendering ### Rendering
* Emissive textures (with _e suffix) * Emissive textures (with _e suffix)
* Can be applied to Solid and Transparent blocks; * Can be applied to Solid and Transparent blocks;
* Can be changed/added with resourcepacks; * Can be changed/added with resourcepacks;
* Incompatible with Sodium and Canvas (just will be not rendered); * Incompatible with Sodium and Canvas (just will be not rendered);
* Incompatible with Iris shaders (Iris without shaders works fine). * Incompatible with Iris shaders (Iris without shaders works fine).
* Procedural block and item models (from paterns or from code); * Procedural block and item models (from paterns or from code);
* Block render interfaces. * Block render interfaces.
### API: ### API:
* Simple Mod Integration API: * Simple Mod Integration API:
* Get mod inner methods, classes and objects on runtime. * Get mod inner methods, classes and objects on runtime.
* Structure Features API: * Structure Features API:
* Sructure Features with automatical registration, Helpers and math stuff. * Sructure Features with automatical registration, Helpers and math stuff.
* World Data API: * World Data API:
* World fixers for comfortable migration between mod versions when content was removed; * World fixers for comfortable migration between mod versions when content was removed;
* Support for Block name changes and Tile Entities (WIP). * Support for Block name changes and Tile Entities (WIP).
* Bonemeal API: * Bonemeal API:
* Add custom spreadable blocks; * Add custom spreadable blocks;
* Add custom plants grow with weight, biomes and other checks; * Add custom plants grow with weight, biomes and other checks;
* Custom underwater plants. * Custom underwater plants.
* Features API: * Features API:
* Features with automatical registration, Helpers and math. * Features with automatical registration, Helpers and math.
* Biome API: * Biome API:
* Biome wrapper around MC biomes; * Biome wrapper around MC biomes;
* Custom biome data storage; * Custom biome data storage;
* Custom fog density. * Custom fog density.
* Tag API: * Tag API:
* Pre-builded set of tags; * Pre-builded set of tags;
* Dynamical tag registration with code; * Dynamical tag registration with code;
* Adding blocks and items into tags at runtime. * Adding blocks and items into tags at runtime.
### Libs: ### Libs:
* Spline library (simple): * Spline library (simple):
* Helper to create simple splines as set of points; * Helper to create simple splines as set of points;
* Some basic operation with splines; * Some basic operation with splines;
* Converting splines to SDF. * Converting splines to SDF.
* Recipe manager: * Recipe manager:
* Register recipes from code with configs and ingredients check. * Register recipes from code with configs and ingredients check.
* Noise library: * Noise library:
* Voronoi noise and Open Simplex Noise. * Voronoi noise and Open Simplex Noise.
* Math library: * Math library:
* Many basic math functions that are missing in MC. * Many basic math functions that are missing in MC.
* SDF library: * SDF library:
* Implementation of Signed Distance Functions; * Implementation of Signed Distance Functions;
* Different SDF Operations and Primitives; * Different SDF Operations and Primitives;
* Different materials for SDF Primitives; * Different materials for SDF Primitives;
* Block post-processing; * Block post-processing;
* Feature generation using SDF. * Feature generation using SDF.
### Helpers And Utils: ### Helpers And Utils:
* Custom surface builders. * Custom surface builders.
* Translation helper: * Translation helper:
* Generates translation template. * Generates translation template.
* Weighted list: * Weighted list:
* A list of objects by weight; * A list of objects by weight;
* Weighted Tree: * Weighted Tree:
* Fast approach for big weight structures; * Fast approach for big weight structures;
* Block helper: * Block helper:
* Some useful functions to operate with blocks; * Some useful functions to operate with blocks;
### Complex Materials ### Complex Materials
* Utility classes used for mass content generation (wooden blocks, stone blocks, etc.); * Utility classes used for mass content generation (wooden blocks, stone blocks, etc.);
* Contains a set of defined blocks, items, recipes and tags; * Contains a set of defined blocks, items, recipes and tags;
* Can be modified before mods startup (will add new block type for all instances in all mods); * Can be modified before mods startup (will add new block type for all instances in all mods);
* All inner blocks and items are Patterned (will have auto-generated models with ability to override them with resource packs or mod resources). * All inner blocks and items are Patterned (will have auto-generated models with ability to override them with resource
packs or mod resources).
### Pre-Defined Blocks and Items: ### Pre-Defined Blocks and Items:
* Most basic blocks from MC; * Most basic blocks from MC;
* Automatic item & block model generation; * Automatic item & block model generation;
### Configs: ### Configs:
* Custom config system based on Json; * Custom config system based on Json;
* Hierarchical configs; * Hierarchical configs;
* Different entry types; * Different entry types;
* Only-changes saves. * Only-changes saves.
### Interfaces: ### Interfaces:
* BlockModelProvider:
* Allows block to return custom model and blockstate.
* ItemModelProvider:
* Allows block to return custom item model.
* CustomColorProvider:
* Make available to add block and item color provider.
* RenderLayerProvider:
* Determine block render layer (Transparent and Translucent).
* PostInitable:
* Allows block to init something after all mods are loaded.
* CustomItemProvider:
* Allows block to change its registered item (example - signs, water lilies).
## Importing: * BlockModelProvider:
* Clone repo * Allows block to return custom model and blockstate.
* Edit gradle.properties if necessary * ItemModelProvider:
* Run command line in folder: gradlew genSources eclipse (or Another-IDE-Name) * Allows block to return custom item model.
* Import project to IDE * CustomColorProvider:
* Make available to add block and item color provider.
* RenderLayerProvider:
* Determine block render layer (Transparent and Translucent).
* PostInitable:
* Allows block to init something after all mods are loaded.
* CustomItemProvider:
* Allows block to change its registered item (example - signs, water lilies).
## Building: ## Building:
* Clone repo * Clone repo
* Run command line in folder: gradlew build * Run command line in folder: gradlew build
* Mod .jar will be in ./build/libs * Mod .jar will be in ./build/libs