Exemplo n.º 1
0
 public override void Effect1(EntityPlayer player, Emplacement place, OptionEffect opt)
 {
     Printer.Log(40, "Puit Effect1", place.position, place.ipos, opt.OptionBlock.blocks, opt.OptionShape.shape);
     Zombiome.Routines.Named("Puit").Start(
         Routines.Call(biome.groundParticleEffect, place.ipos),
         new WaitForSeconds(1f),
         EffectsCollapse.Puit(player, place, opt)
         );
 }
Exemplo n.º 2
0
 public override void Effect1(EntityPlayer player, Emplacement place, OptionEffect opt)
 {
     Printer.Log(40, "Cave Effect1", place.position, place.ipos, opt.OptionBlock.blocks, opt.OptionShape.shape);
     Zombiome.Routines.Named("Cave").Start(
         Routines.Call(biome.groundParticleEffect, place.ipos),
         ZBActivity.Environment.ZBSounds.Play("light_pipebomb", place.position, player, World, 1, 0, 0.2f),
         new WaitForSeconds(1f),
         EffectsCollapse.Cave(player, place, opt)
         );
 }
Exemplo n.º 3
0
 public override void Effect1(EntityPlayer player, Emplacement place, OptionEffect opt)
 {
     Printer.Log(40, "RiftCollapse Effect1", place.position, place.ipos, opt.OptionBlock.blocks, opt.OptionShape.shape);
     // Zombiome.Routines.Start(EffectsCollapse.Rift(player, place, opt), "RiftCollapse");
     Zombiome.Routines.Named("RiftCollapse").Start(
         Routines.Call(biome.groundParticleEffect, place.ipos),
         ZBActivity.Environment.ZBSounds.Play(ZBiomeInfo.NoiseCollapse, place.position, player, World, 1, 20, 0.2f),
         new WaitForSeconds(1f),
         EffectsCollapse.Rift(player, place, opt)
         );
 }
Exemplo n.º 4
0
        public override IEnumerator Regen(EntityPlayer player, Vector3i zchunk, int iniguess)
        {
            yield return(ZBActivity.Environment.ZBSounds.Play(ZBiomeInfo.NoiseWater, player.GetPosition(), player, World, 2, 0, 0.5f));

            int gen = ZChunk.Size(this.gen);

            Vector3[] positions = ZChunk.Positions(Zombiome.worldSeed, zchunk, gen);

            foreach (Vector3 pos in positions)
            {
                Printer.Log(40, "Flood regen", zchunk, pos);
                Vector3i    surfaced = Geo3D.Surface(Vectors.ToInt(pos), iniguess);
                Emplacement place    = Emplacement.At(Vectors.ToFloat(surfaced), Vectors.Float.UnitY);
                /* Generate Emplacement => apply filter from gth */
                int  th = GameManager.Instance.World.GetTerrainHeight(surfaced.x, surfaced.z);
                bool go = th > 5;
                if (go)
                {
                    go = surfaced.y < th + Placer.pOffSurface;
                }
                if (go)
                {
                    go = surfaced.y > th - Placer.nOffSurface;
                }
                if (go)
                {
                    go = !(IsWater(World.GetBlock(surfaced + Vectors.Up).Block) &&
                           IsWater(World.GetBlock(surfaced + 2 * Vectors.Up).Block));
                }
                if (go)
                {
                    Printer.Log(40, "Flood at", place);
                    // Dont do it if already water, surtout qu'on affaisse la surface !!
                    // Cave allows to bound water by ground
                    yield return(EffectsCollapse.Cave(player, place, opt));
                }
                yield return(Repeater.Yield);
            }
        }