public GrowDecoration(GrowDecorationParam paras) { _params = paras; _params.growedTime = 0; _growMark = true; _curDecoration = DecorationFactory.GetDecorationInstance((DecorationType)_params.plantData.decorationType); (_curDecoration as DecorationRemoveBase).isGrow = true; _attachChunk = World.world.GetChunk((int)_params.pos.x, (int)_params.pos.y, (int)_params.pos.z); _curDecoration.Decorade(_attachChunk, (int)_params.loacalPos.x, (int)_params.loacalPos.y, (int)_params.loacalPos.z, _params.random); _growNeedTime = _params.plantData.growTime; }
private void changeToNextState() { _params.growedTime = 0; (_curDecoration as DecorationRemoveBase).removeDecoration(_attachChunk); if (_params.plantData.nextId == 0) { HasActionObjectManager.Instance.plantManager.endGrow(_params.aoId); dispose(); return; } _params.plantData = MTBPlantDataManager.Instance.getData(_params.plantData.nextId); _curDecoration = DecorationFactory.GetDecorationInstance((DecorationType)_params.plantData.decorationType); _curDecoration.Decorade(_attachChunk, (int)_params.loacalPos.x, (int)_params.loacalPos.y, (int)_params.loacalPos.z, _params.random); _growNeedTime = DayNightTime.Instance.normalTimeConfig.daySeconds * _params.plantData.growTime; World.world.CheckAndRecalculateMesh((int)_params.pos.x, (int)_params.pos.y, (int)_params.pos.z, World.world.GetBlock((int)_params.pos.x, (int)_params.pos.y, (int)_params.pos.z)); }
private void GeneratePopulation(Chunk chunk, BiomeConfig biomeConfig) { for (int i = 0; i < biomeConfig.populationParams.Count; i++) { PopulationParam populationParam = biomeConfig.populationParams[i]; if (_random.Range(0, 100) < populationParam.productRate) { IDecoration decoration = DecorationFactory.GetDecoration(populationParam.decorationType); for (int j = 0; j < populationParam.frequency; j++) { int x = _random.Range(0, Chunk.chunkWidth); int z = _random.Range(0, Chunk.chunkDepth); if (chunk.GetBiomeId(x, z, true) != biomeConfig.biomeId) { continue; } DispatchDecoration(chunk, x, z, populationParam, decoration, biomeConfig.biomeId); } } } }