Esempio n. 1
0
        public override void OnTick(Entity[] entities)
        {
            PositionCheck();

            if (KnownPosition.Y > -1 && _checkPosition)
            {
                Velocity -= new Vector3(0, (float)Gravity, 0);
                Velocity *= (float)(1.0f - Drag);
            }
            else
            {
                McpeUpdateBlockSynced updateBlock = McpeUpdateBlockSynced.CreateObject();
                updateBlock.coordinates    = new BlockCoordinates(KnownPosition);
                updateBlock.blockRuntimeId = _original.GetRuntimeId();
                updateBlock.blockPriority  = 3;
                updateBlock.dataLayerId    = 0;
                updateBlock.unknown0       = EntityId;
                updateBlock.unknown1       = 2;

                Level.RelayBroadcast(updateBlock);

                DespawnEntity();

                var block = BlockFactory.GetBlockById(_original.Id);
                block.Metadata    = _original.Metadata;
                block.Coordinates = new BlockCoordinates(KnownPosition);
                Level.SetBlock(block, false);
            }
        }
Esempio n. 2
0
        public override void SpawnToPlayers(Player[] players)
        {
            //McpeUpdateBlockSynced updateBlock = McpeUpdateBlockSynced.CreateObject();
            //updateBlock.coordinates = _original.Coordinates;
            //updateBlock.blockRuntimeId = 0;
            //updateBlock.blockPriority = 3;
            //updateBlock.dataLayerId = 0;
            //updateBlock.unknown0 = EntityId;
            //updateBlock.unknown1 = 1;

            //Level.RelayBroadcast(players, updateBlock);

            //base.SpawnToPlayers(players);

            foreach (var player in players)
            {
                McpeUpdateBlockSynced updateBlock = McpeUpdateBlockSynced.CreateObject();
                updateBlock.coordinates    = _original.Coordinates;
                updateBlock.blockRuntimeId = 0;
                updateBlock.blockPriority  = 3;
                updateBlock.dataLayerId    = 0;
                updateBlock.unknown0       = EntityId;
                updateBlock.unknown1       = 1;

                var addEntity = McpeAddEntity.CreateObject();
                addEntity.entityType      = (byte)EntityTypeId;
                addEntity.entityIdSelf    = EntityId;
                addEntity.runtimeEntityId = EntityId;
                addEntity.x          = KnownPosition.X;
                addEntity.y          = KnownPosition.Y;
                addEntity.z          = KnownPosition.Z;
                addEntity.pitch      = KnownPosition.Pitch;
                addEntity.yaw        = KnownPosition.Yaw;
                addEntity.headYaw    = KnownPosition.HeadYaw;
                addEntity.metadata   = GetMetadata();
                addEntity.speedX     = Velocity.X;
                addEntity.speedY     = Velocity.Y;
                addEntity.speedZ     = Velocity.Z;
                addEntity.attributes = GetEntityAttributes();

                player.SendPacket(updateBlock);
                player.SendPacket(addEntity);
            }
        }
Esempio n. 3
0
 public virtual void HandleMcpeUpdateBlockSynced(McpeUpdateBlockSynced message)
 {
 }
 public abstract void HandleMcpeUpdateBlockSynced(McpeUpdateBlockSynced message);
Esempio n. 5
0
 public override void HandleMcpeUpdateBlockSynced(McpeUpdateBlockSynced message)
 {
 }
Esempio n. 6
0
 public override void HandleMcpeUpdateBlockSynced(McpeUpdateBlockSynced message)
 {
     UnhandledPackage(message);
 }