public TaigaGenerator(int treeHeight, bool vines, PlantsType treeType) { _minTreeHeight = treeHeight; _vines = vines; _wood = BlockStates.SpruceLog(); _leaves = BlockStates.SpruceLeaves(SpruceLeavesDistanceType.Distance1, SpruceLeavesPersistentType.False); }
public Taiga2Generator(int treeHeight, bool vines, PlantsType treeType) { _minTreeHeight = treeHeight; _vines = vines; _wood = BlockStates.Wood(WoodType.Spruce); _leaves = BlockStates.Leaves(LeaveType.Spruce); }
public GameProcessData() { Instance = this; ActualBedCount = 0; ActualAction = ActualActionType.none; ActualPlantType = PlantsType.none; }
private async Task <bool> CanPlaceAt(IWorld world, BlockWorldPos pos, PlantsType type) { var block = await world.GetBlockStateUnsafe(this.GrainFactory, pos); var upBlock = await world.GetBlockStateUnsafe(this.GrainFactory, pos.Up()); return(block.IsAir() && upBlock.IsAir()); }
private async Task PlaceAt(IWorld world, BlockWorldPos pos, PlantsType type) { if (type == PlantsType.DoubleTallgrass) { await world.SetBlockStateUnsafe(this.GrainFactory, pos, BlockStates.Grass(GrassType.TallGrass)); await world.SetBlockStateUnsafe(this.GrainFactory, pos.Up(), BlockStates.Grass(GrassType.TallGrass)); } }
public Taiga2Generator(int treeHeight, bool vines, PlantsType treeType) { _minTreeHeight = treeHeight; _vines = vines; _wood = BlockStates.SpruceLog(); // TODO distance should use the distance to the nearest log _leaves = BlockStates.SpruceLeaves(SpruceLeavesDistanceType.Distance1, SpruceLeavesPersistentType.False); }
public bool CanFlowerGrow(PlantsType type, ChunkColumnStorage chunk, BlockChunkPos pos) { if (chunk[pos.X, pos.Y - 1, pos.Z] == BlockStates.GrassBlock() || chunk[pos.X, pos.Y - 1, pos.Z] == BlockStates.Dirt()) { return(true); } else { return(false); } }
public static bool CanSustainTree(PlantsType type, BlockState state) { if (state == BlockStates.Dirt() || state == BlockStates.GrassBlock()) { return(true); } else { return(false); } }
public Plant GetPlantByType(PlantsType type) { foreach (var plant in _plants) { if (plant.GetPlantsType.Equals(type)) { return(plant); } } Debug.LogFormat("Plant by type {0} is not found", type.ToString()); return(null); }
public async override Task OnActivateAsync() { await base.OnActivateAsync(); _minTreeHeight = _generatorSettings.TreeHeight; _vines = _generatorSettings.TreeVine; _treeType = _generatorSettings.PlantType; if (_generatorSettings.PlantType == PlantsType.Spruce) { _wood = BlockStates.Wood(WoodType.Spruce); _leaves = BlockStates.Leaves(LeaveType.Spruce); } }
public async override Task OnActivateAsync() { await base.OnActivateAsync(); _minTreeHeight = _generatorSettings.TreeHeight; _vines = _generatorSettings.TreeVine; _treeType = _generatorSettings.PlantType; if (_generatorSettings.PlantType == PlantsType.Spruce) { _wood = BlockStates.SpruceLog(); _leaves = BlockStates.SpruceLeaves(SpruceLeavesDistanceType.Distance1, SpruceLeavesPersistentType.False); } }
public TreeGenerator(int treeHeight, bool vines, PlantsType treeType) { _minTreeHeight = treeHeight; _vines = vines; _treeType = treeType; if (treeType == PlantsType.Oak) { _wood = BlockStates.Wood(WoodType.Oak); _leaves = BlockStates.Leaves(LeaveType.Oak); } else if (treeType == PlantsType.Spruce) { _wood = BlockStates.Wood(WoodType.Spruce); _leaves = BlockStates.Leaves(LeaveType.Spruce); } else if (treeType == PlantsType.Birch) { _wood = BlockStates.Wood(WoodType.Birch); _leaves = BlockStates.Leaves(LeaveType.Birch); } }
public TreeGenerator(int treeHeight, bool vines, PlantsType treeType) { _minTreeHeight = treeHeight; _vines = vines; _treeType = treeType; if (treeType == PlantsType.Oak) { _wood = BlockStates.OakLog(); _leaves = BlockStates.OakLeaves(OakLeavesDistanceType.Distance1, OakLeavesPersistentType.False); } else if (treeType == PlantsType.Spruce) { _wood = BlockStates.SpruceLog(); _leaves = BlockStates.SpruceLeaves(SpruceLeavesDistanceType.Distance1, SpruceLeavesPersistentType.False); } else if (treeType == PlantsType.Birch) { _wood = BlockStates.BirchLog(); _leaves = BlockStates.BirchLeaves(BirchLeavesDistanceType.Distance1, BirchLeavesPersistentType.False); } }
private void PickUpPlant(PlantsType type, int count) => _wheatCounter.Increase(count);
public DoubleFlowersGenerator(PlantsType type, int maxNum = 16) { _flowerType = type; _flowersMaxNum = maxNum; }
public async override Task OnActivateAsync() { await base.OnActivateAsync(); _plantType = _generatorSettings.PlantType; }
// 添加其他东西 public override void Decorate(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random rand, BlockWorldPos pos) { float grassColor = (_grassColorNoise.Noise((pos.X + 8) / 200.0F, 0.0F, (pos.Z + 8) / 200.0F) - 0.5F) * 2; if (grassColor < -0.8F) { _flowersPerChunk = 15; _grassPerChunk = 5 * 7; GenDoubleFlowers(world, grainFactory, chunk, rand, pos); } else { _flowersPerChunk = 4; _grassPerChunk = 10 * 7; } GenGrass(world, grainFactory, chunk, rand, pos); GenFlowers(world, grainFactory, chunk, rand, pos); GenDoubleGrass(world, grainFactory, chunk, rand, pos); int treesPerChunk = _treesPerChunk; if (rand.NextDouble() < _extraTreeChance) { ++treesPerChunk; } for (int num = 0; num < treesPerChunk; ++num) { int x = rand.Next(10) + 3; int z = rand.Next(10) + 3; AbstractTreeGenerator treeGenerator; PlantsType type = GetRandomTree(rand); if (type == PlantsType.Spruce) { if (x % 2 == 0) { treeGenerator = new Taiga2Generator(5, false, type); } else { treeGenerator = new TaigaGenerator(5, false, type); } } else { treeGenerator = new TreeGenerator(5, false, type); } // 获得地表面高度 int h = 0; for (int y = 255; y >= 0; --y) { if (!chunk[x, y, z].IsAir()) { h = y + 1; break; } } treeGenerator.Generate(world, grainFactory, chunk, this, rand, new BlockWorldPos(pos.X + x, h, pos.Z + z)); } base.Decorate(world, grainFactory, chunk, rand, pos); }
public DoubleGrassGenerator(PlantsType type, int maxNum = 16) { _grassType = type; _grassMaxNum = maxNum; }