Beispiel #1
0
        static bool CursedLand(Client player, PlayerBlockPlacement placement)
        {
            SlotItem i = player.Session.ActiveItem;

            if (i != null && i.ItemID == BlockID.Bucket)
            {
                var pps = new PlayerPositionLookClient();
                pps.Position    = placement.BlockPosition.CloneDouble();
                pps.OnGround    = false;
                pps.Position.Y += 1.1;
                pps.Position.X += 0.5;
                pps.Position.Z += 0.5;
                pps.Pitch       = Math.PI / 2;
                pps.Yaw         = player.Session.Yaw;
                player.FromClient(pps);

                var ppc = new PlayerPositionLookServer(pps.Position);
                ppc.Pitch = Math.PI / 2;
                ppc.Yaw   = player.Session.Yaw;
                player.SendToClient(ppc);
            }

            BlockChange bc = new BlockChange(placement.BlockPosition.Offset(placement.FaceDirection), BlockID.Air);

            player.SendToClient(bc);

            //Block all actions
            return(true);
        }
        private void CheckPosition()
        {
            if (this.Position.Y < -50)
            {
                SetPosition(new CoordDouble(0, 128, 0), false);
                this.Pitch = 60;
            }

            /*
             * else if (this.Position.X < 0)
             *      this.Position.X += 16;
             * else if (this.Position.Z < 0)
             *      this.Position.Z += 16;
             * else if (this.Position.X > 16)
             *      this.Position.X -= 16;
             * else if (this.Position.Z > 16)
             *      this.Position.Z -= 16;
             */else
            {
                return;
            }

            if (this.Position.Y < 65.01)
            {
                this.Position.Y = 65.05;
            }

            var ppl = new PlayerPositionLookServer(this.Position);

            ppl.Yaw   = this.Yaw;
            ppl.Pitch = this.Pitch;
            this.Player.SendToClient(ppl);
        }
Beispiel #3
0
        public PossessSession(Client player, Client victim) : base(player)
        {
            player.Queue.Queue(ChangeGameState.ChangeGameMode(GameMode.Creative));
            var et = new PlayerPositionLookServer(victim.Session.Position);

            et.Yaw   = victim.Session.Yaw;
            et.Pitch = victim.Session.Pitch;
            player.Queue.Queue(et);

            this.victim = victim;
            victim.Possess(this);
        }
Beispiel #4
0
        protected void SendStartup(ConstructSession cs, Client player)
        {
            //First another dimension to trigger full drop of old map
            Respawn r = new Respawn();

            if (Dimension == Dimensions.Overworld)
            {
                r.Dimension = Dimensions.Nether;
            }
            else
            {
                r.Dimension = Dimensions.Overworld;
            }
            r.Mode       = 0;
            r.Difficulty = 3;
            player.Queue.Queue(r);

            r            = new Respawn();
            r.Dimension  = (Dimensions)Dimension;
            r.Mode       = 0;
            r.Difficulty = 3;
            player.Queue.Queue(r);

            //player.Queue.Queue(new SpawnPosition(cs.Position.CloneInt()));
            player.Queue.Queue(new TimeUpdate(18000));

            cs.Position.Y = 66;

            var ppl = new PlayerPositionLookServer(cs.Position);

            ppl.Yaw   = cs.Yaw;
            ppl.Pitch = cs.Pitch;
            player.Queue.Queue(ppl);

            player.Queue.Queue(new TimeUpdate(1000));

            //player.Queue.Queue(new NewState(NewState.State.EndRaining));

            int min = -1;
            int max = 1;

            for (int cx = min; cx < max; cx++)
            {
                for (int cz = min; cz < max; cz++)
                {
                    ChunkData mc = new ChunkData();
                    mc.ChunkBitMap   = ChunkData.ChunkBitMap;
                    mc.Complete      = ChunkData.Complete;
                    mc.X             = cx;
                    mc.Z             = cz;
                    mc.BlockType     = ChunkData.BlockType;
                    mc.BlockMeta     = ChunkData.BlockMeta;
                    mc.BlockLight    = ChunkData.BlockLight;
                    mc.BlockSkyLight = ChunkData.BlockSkyLight;
                    mc.Biome         = ChunkData.Biome;
                    player.Queue.Queue(mc);
                }
            }

            r            = new Respawn();
            r.Dimension  = (Dimensions)Dimension;
            r.Mode       = 0;
            r.Difficulty = 3;
            player.Queue.Queue(r);

            player.Queue.Queue(new UpdateHealth(20, 20));

            var properties = new EntityProperties(player.EntityID, 0.10, 20.0);

            player.Queue.Queue(properties);
        }