From eb8b2ffbb72979cd730c6de817adc1f04c09a6fa Mon Sep 17 00:00:00 2001 From: etienne Date: Thu, 16 May 2024 08:03:35 +0000 Subject: [PATCH] feat: multi species support #2 --- src/procgen/BlocksMapping.ts | 1 + src/procgen/Vegetation.ts | 4 ++-- src/tools/TreeGenerator.ts | 8 +++++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/procgen/BlocksMapping.ts b/src/procgen/BlocksMapping.ts index d6a8cef..561f12c 100644 --- a/src/procgen/BlocksMapping.ts +++ b/src/procgen/BlocksMapping.ts @@ -13,6 +13,7 @@ export enum BlockType { WATER, TREE_TRUNK, TREE_FOLIAGE, + TREE_FOLIAGE_2, SAND, GRASS, MUD, diff --git a/src/procgen/Vegetation.ts b/src/procgen/Vegetation.ts index 9f771a2..d1a5ba2 100644 --- a/src/procgen/Vegetation.ts +++ b/src/procgen/Vegetation.ts @@ -66,8 +66,8 @@ export class Vegetation { treeBuffer = new Array(count).fill(BlockType.NONE) // tree foliage for (let y = -treeRadius; y < treeRadius; y++) { - const isFoliage = TreeGenerators[treeType](xzProj, y, treeRadius)//TreeGenerator.AppleTree(xzProj, y, treeRadius) - treeBuffer.push(isFoliage ? BlockType.TREE_FOLIAGE : BlockType.NONE) + const blockType = TreeGenerators[treeType](xzProj, y, treeRadius)//TreeGenerator.AppleTree(xzProj, y, treeRadius) + treeBuffer.push(blockType) } } else { try { diff --git a/src/tools/TreeGenerator.ts b/src/tools/TreeGenerator.ts index 1ab69ec..8d20eea 100644 --- a/src/tools/TreeGenerator.ts +++ b/src/tools/TreeGenerator.ts @@ -1,4 +1,6 @@ -export type TreeGenerator = (xzProj: number, y: number, range: number) => Boolean +import { BlockType } from "../index" + +export type TreeGenerator = (xzProj: number, y: number, range: number) => BlockType export enum TreeType { PineTree = 'pine_tree', @@ -8,13 +10,13 @@ export enum TreeType { const AppleTree = (xzProj: number, y: number, range: number) => { const dist = Math.sqrt(Math.pow(xzProj, 2) + Math.pow(y, 2)) const isFoliage = dist <= range - return isFoliage + return isFoliage? BlockType.TREE_FOLIAGE: BlockType.NONE } const PineTree = (xzProj: number, y: number, range: number) => { const dist = xzProj // xzProj*(y+radius) const isFoliage = dist <= range * (1 - 0.35 * (y + range) / range) - return isFoliage + return isFoliage? BlockType.TREE_FOLIAGE_2: BlockType.NONE } export const TreeGenerators: Record = {