Vintagebob Posted July 13, 2021 Report Share Posted July 13, 2021 Hello, im programming a Vintage Story mod and want do add hydrothermal vents to the game. The block itself works perfectly, but i can't generate these vents under the water :(. ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Here is my programm code in the .cs file: using System; using Vintagestory.API.Common; using Vintagestory.API.Common.Entities; using Vintagestory.API.MathTools; namespace omniummod { public class Omniummod : ModSystem { public override void Start(ICoreAPI api) { base.Start(api); api.RegisterBlockClass("hydrothermal_vent", typeof(hydrothermal_vent)); } } public class hydrothermal_vent : Block { Random random = new Random(); Block[] blocks; public override bool TryPlaceBlockForWorldGen(IBlockAccessor blockAccessor, BlockPos pos, BlockFacing onBlockFace, LCGRandom worldGenRand) { BlockPos belowPos = pos.DownCopy(); Block block = blockAccessor.GetBlock(belowPos); if (block.LiquidCode != "water") return false; int depth = 1; while (depth < 100) { belowPos.Down(); block = blockAccessor.GetBlock(belowPos); if (block.Fertility >= 0) { belowPos.Up(); PlaceVent(blockAccessor, belowPos, depth); return true; } else { if (!block.IsLiquid()) return false; } depth++; } return false; } private void PlaceVent(IBlockAccessor blockAccessor, BlockPos pos, int depth) { int height = Math.Min(depth - 1, 1 + random.Next(3) + random.Next(3)); AssetLocation assetl = new AssetLocation("omniummod", "blocktypes/deepwaterblocks/hydrothermal_vent"); blockAccessor.SetBlock(blockAccessor.GetBlock(assetl).BlockId, pos); } } } (some parts I copied from the Seaweed class ) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Here is the .json file of the hydrothermal vent, if the problem ist not in the code but in the block: { code: "hydrothermal_vent", entityClass: "hydrothermal_vent", creativeinventory: { "general": ["*"] }, blockmaterial: "Stone", drawtype: "json", shape: { base: "block/deepwaterblocks/hydrothermal_vent*", }, storageFlags: 257, lightAbsorption: 0, sidesolid: { all: "false" }, sideopaque: { all: "false" }, resistance: 2.0, sounds: { "place": "game:block/stone", "walk": "game:block/stone" }, particleProperties: [ { hsvaColor: [{ avg: 0, var: 1 }, { avg: 0, var: 1 }, { avg: 0, var: 1 }, { avg: 0, var: 1 }], gravityEffect: { avg: -0.02, var: 0.01 }, posOffset: [ { avg: 0, var: 0.1 }, { avg: 0.5, var: 0.1 }, { avg: 0, var: 0.1 }], velocity: [ { avg: 0, var: 0.25 }, { avg: 0.1, var: 0.1 }, { avg: 0, var: 0.25 }], quantity: { avg: 1, var: 1 }, size: { avg: 5, var: 1 }, sizeEvolve: { transform: "quadratic", factor: 0.5 }, lifeLength: { avg: 3, var: 1 }, vertexFlags: 128 } ], guiTransform: { rotation: { x: -22.6, y: -145, z: 0 } }, tpHandTransform: { translation: { x: -2.1, y: -1.4, z: -1.5 }, rotation: { x: 0, y: 17, z: -88 } }, groundTransform: { translation: { x: 0, y: 0, z: 0 }, rotation: { x: -58, y: -45, z: 0 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 1.5 } } ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- And here is the .json worldgen file, where I make the hydrothermal vent - blockpatch: { chanceMultiplier: { dist: "uniform", avg: 2.5, var: 2 }, patches: [ { comment: "Large patches of hydrothermal vent", blockCodes: ["hydrothermal_vent"], quantity: { avg: 25, var: 15 }, offsetX: { avg: 0, var: 12 }, offsetZ: { avg: 0, var: 12 }, chance: 1, minWaterDepth: 1, placement: "UnderWater" }, ] } its copied from the Seaweed blockpatch... ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- I hope someone will be able to help me and thank you in advance Link to comment Share on other sites More sharing options...
Recommended Posts