Exemple #1
0
        /// <inheritdoc />
        public NetworkEntityNowVisibleEventArgs Create(EntityCreationData context)
        {
            NetworkEntityGuid guid = context.EntityGuid;

            IEntityDataFieldContainer container = CreateInitialEntityFieldContainer(context.InitialFieldValues);
            ChangeTrackingEntityFieldDataCollectionDecorator trackingEntityFieldDataCollectionDecorator = new ChangeTrackingEntityFieldDataCollectionDecorator(container, context.InitialFieldValues.FieldValueUpdateMask);

            ChangeTrackableCollection.AddObject(guid, trackingEntityFieldDataCollectionDecorator);
            MovementBlockMappable.AddObject(guid, context.InitialMovementData);

            return(new NetworkEntityNowVisibleEventArgs(guid));
        }
Exemple #2
0
        protected override void OnEventFired(object source, EntityCreationRequestedEventArgs args)
        {
            NetworkEntityGuid guid = args.EntityGuid;

            //TODO: handle non-players
            //TODO: Fix the issue with having to hardcore the field count.
            //Build the update values stuff and initialize the initial movement data.
            EntityFieldDataCollection container = new EntityFieldDataCollection(ComputeEntityDataFieldLength(args.EntityGuid));

            DataCollectionMappable.AddObject(guid, container);
            ChangeTrackableCollection.AddObject(guid, new ChangeTrackingEntityFieldDataCollectionDecorator(container));
            EntityDataContainer.AddObject(guid, ChangeTrackableCollection.RetrieveEntity(guid));
        }