Beispiel #1
0
        static IEnumerable <Entity> Translate(IEnumerable <ScenarioEntity> e, Dictionary <string, Task <CSLogicProvider> > providerMap, Random random)
        {
            foreach (var se in e)
            {
                LogicInstantiation inst = new LogicInstantiation(se.logic);
                var provider            = providerMap[inst.AssemblyName].Result;

                for (int i = 0; i < se.instances; i++)
                {
                    Vec3 pos = Vec3.Zero;
                    if (se.position.Length == 1)
                    {
                        pos = new Vec3(se.position[0], 0);
                    }
                    else if (se.position.Length == 2)
                    {
                        pos = random.NextVec3(Box.FromMinAndMax(new Vec3(se.position[0], 0), new Vec3(se.position[1], 0), Bool3.True));
                    }
                    else
                    {
                        throw new Exception("Invalid position declaration: " + se.position);
                    }

#if STATE_ADV
                    EntityAppearanceCollection appearances = new EntityAppearanceCollection();
#endif
                    DynamicCSLogic logic = new DynamicCSLogic(provider, inst.LogicName, inst.Parameters);
                    yield return(new Entity(new EntityID(pos), Vec3.Zero, logic
#if STATE_ADV
                                            , appearances
#endif
                                            ));
                }
            }
        }
Beispiel #2
0
            public static bool IsConsistent(EntityAppearanceCollection app)
            {
                if (app == null)
                {
                    return(false);
                }
                var a = app.Get <ConsistencyAppearance>();

                return(a != null && a.IsConsistent);
            }
Beispiel #3
0
        public Motion(EntityID origin, Vec3 targetLocation,
#if STATE_ADV
                      EntityAppearanceCollection appearance,
#endif
                      EntityLogic logic, byte[] serialLogic) : base(origin, targetLocation,
#if STATE_ADV
                                                                    appearance,
#endif
                                                                    logic, serialLogic)
        {
        }
Beispiel #4
0
        public Instantiation(EntityID origin, Vec3 targetLocation,
#if STATE_ADV
                             EntityAppearanceCollection appearance,
#endif
                             EntityLogic directState, byte[] serialLogic) : base(origin)
        {
            TargetLocation = targetLocation;
            SerialLogic    = serialLogic;
#if STATE_ADV
            Appearances = appearance;
#endif
            this.directState = directState;
            if (directState == null)
            {
                directState = (EntityLogic)Helper.Deserialize(SerialLogic);
            }
        }
Beispiel #5
0
 public StateAdvertisement(EntityContact entityContact) : base(entityContact.ID)
 {
     Appearances = entityContact.Appearances;
     Velocity    = entityContact.Velocity;
 }
Beispiel #6
0
 public StateAdvertisement(EntityID id, EntityAppearanceCollection fullAppearance, Vec3 velocity) : base(id)
 {
     Appearances = fullAppearance;
     Velocity    = velocity;
 }