Règle de surface
Les règles de surface (nom anglais : surface rules) sont utilisées pour déterminer le bloc pour chaque position solide du terrain. Elles sont responsables des couches d'herbe et de terre, de la création des différentes bandes de terre cuite dans les badlands, de l'ardoise des abîmes, de la bedrock, etc.
Les règles de surface sont utilisées dans les paramètres de bruit, dans un pack de données.
Format JSON
[modifier | modifier le wikicode]Une règle de surface est un type d'arbre de décision. En utilisant une combinaison de séquences et de conditions, elle peut mettre en place des vérifications pour placer les bons blocs aux bons endroits.
- : L'objet racine.
- type : Le type de la règle de surface, sous la forme d'un emplacement de ressource.
- Des champs supplémentaires en fonction du type, décrits ci-dessous.
Les valeurs possibles pour type et leurs champs associés sont les suivants.
- bandlands [sic] — Utilisé dans les badlands pour placer de la terre cuite. Cette règle n'a aucun champ supplémentaire.
- block — Place un bloc spécifié.
- result_state : L'état de bloc à placer.
- État de bloc
- result_state : L'état de bloc à placer.
- condition — Vérifie une condition.
- if_true : La condition de surface à vérifier (voir ci-dessous).
- then_run : La règle de surface à exécuter si la condition est remplie.
- sequence — Essaye des règles de surface dans l'ordre, et la première qui correspond est appliquée.
- sequence : Une liste de règles de surface à essayer.
- : Un objet de règle de surface.
- sequence : Une liste de règles de surface à essayer.
Conditions de surface
[modifier | modifier le wikicode]- : L'objet racine.
- type : Le type de la condition de surface, sous la forme d'un emplacement de ressource.
- Des champs supplémentaires en fonction du type, décrits ci-dessous.
Les valeurs possibles pour type et leurs champs associés sont les suivants.
- above_preliminary_surface — Vérifie si la position actuelle est au-dessus du niveau de la surface préliminaire, qui est un niveau Y généralement quelques blocs sous la surface principale, ignorant les cavernes de bruit. Ceci est utilisé pour empêcher les blocs d'herbe d'être placés dans les cavernes de bruit. Cette condition n'a aucun champ supplémentaire. Le niveau de la surface préliminaire est calculé à partir de la fonction de densité du routeur de bruit
initial_density_without_jaggedness.
- biome — Vérifie le biome à la position actuelle.
- biome_is : Une liste de biomes dans lesquels cette condition est remplie.
- : L'emplacement de ressource d'un biome.
- biome_is : Une liste de biomes dans lesquels cette condition est remplie.
- hole — Passe pour les colonnes dont la profondeur de la surface est 0. Cette condition n'a aucun champ supplémentaire.
- noise_threshold — Calcule la valeur de bruit de la colonne actuelle en utilisant un bruit spécifié, et vérifie si sa valeur est comprise entre les seuils minimum et maximum.
- not — Inverse les conditions d'une surface, en passant lorsque la condition imbriquée échoue.
- invert : L'objet de condition de surface à inverser.
- steep — Vérifie si la position actuelle est une face abrupte sur les côtés nord et est d'une montagne. Cette condition n'a aucun champ supplémentaire.
- stone_depth — Vérifie la proximité de la surface, soit vers le haut, soit vers le bas, en utilisant les valeurs. Ceci est utilisé dans le jeu de base pour placer des couches de bloc d'herbe et de terre sous la surface.[plus d'informations demandées]
- offset : Le décalage vertical.
- add_surface_depth : Si la valeur est
true, ajoute la profondeur de la surface au décalage. Note : ceci n'est pasadd_stone_depth! - secondary_depth_range : Si la valeur est
true, une valeur mappée de la profondeur de la surface secondaire est ajoutée au décalage. Le calcul est le suivant :map(surface_secondary(X,0,Z), -1, 1, 0, secondary_depth_range). - surface_type : Le type de surface de caverne à utiliser. Peut valoir
ceilingoufloor. Détermine la variante de profondeur de la roche à utiliser.
- temperature — Vérifie si la température au bloc actuel est suffisamment froide. Ceci passe dans certaines parties des biomes océan gelé et océan gelé profond, et partout dans les autres biomes gelés.[plus d'informations demandées] Cette condition n'a aucun champ supplémentaire.
- vertical_gradient — Compare la position Y actuelle, avec une transition désordonnée, comme les transitions de l'ardoise des abîmes et la bedrock.
- random_name : Utilisé comme graine pour rendre le dégradé aléatoire.
- true_at_and_below : L'ancrage vertical inférieur. Les positions égales et inférieures passent toujours.
- Choix pour un ancrage vertical (la valeur peut uniquement être un des trois)
- false_at_and_above : L'ancrage vertical supérieur. Les positions égales et supérieures échouent toujours. Les coordonnées Y entre les deux ancrages verticaux produisent un dégradé où la probabilité de succès est
(false_at_and_above - Y) / (false_at_and_above - true_at_and_below).- Choix pour un ancrage vertical (la valeur peut uniquement être un des trois)
- water — Vérifie la profondeur de l'eau ou de la lave à la position actuelle.[plus d'informations demandées]
- offset : Le décalage vertical.
- surface_depth_multiplier : Une valeur comprise entre -20 et 20. Dans quelle mesure elle est affectée par la profondeur de la surface.
surface_depth(X,Z) * surface_depth_multiplierest ajouté au décalage avant la comparaison. - add_stone_depth : Si la valeur est
true, ajoute la profondeur de la roche ci-dessus au décalage.
- y_above — Vérifie si la position actuelle est au-dessus d'une hauteur spécifiée (exclusive).
- anchor : L'ancrage vertical avec lequel comparer la hauteur.
- Choix pour un ancrage vertical (la valeur peut uniquement être un des trois)
- surface_depth_multiplier : Une valeur comprise entre -20 et 20. Dans quelle mesure elle est affectée par la profondeur de la surface.
surface_depth(X,Z) * surface_depth_multiplierest ajouté à l'ancrage avant la comparaison. - add_stone_depth : Si la valeur est
true, ajoute la profondeur de la roche ci-dessus au décalage (c'est-à-dire le nombre de blocs solides au-dessus de la position actuelle).
- anchor : L'ancrage vertical avec lequel comparer la hauteur.
Profondeur de la surface
[modifier | modifier le wikicode]La profondeur de la surface est une valeur entière calculée pour chaque colonne, qui est utilisée par diverses conditions. Elle utilise le bruit minecraft:surface. Le calcul est le suivant : floor(surface(X,0,Z) × 2.75 + 3.0 + positional_noise(X,0,Z) × 0.25), où surface renvoie la valeur du bruit minecraft:surface et positional_noise renvoie une valeur aléatoire entre 0 et 1.
Profondeur de la surface secondaire
[modifier | modifier le wikicode]La profondeur de la surface secondaire est une valeur entre -1 et 1 calculée pour chaque colonne, qui peut être utilisée par la condition stone_depth. Elle utilise le bruit minecraft:surface_secondary.
Profondeur de la roche
[modifier | modifier le wikicode]Le système de surface garde la trace de deux valeurs pendant l'application des règles de surface : le nombre de blocs (de roche) solides au-dessus et le nombre de blocs solides en-dessous de la position actuelle. Ceci est principalement utilisé par la condition stone_depth, mais la variante au-dessus peut également être utilisée dans les conditions water et y_above.