// Template definition for a Example entity
        public static SnapshotEntity GenerateExampleSnapshotEntityTemplate()
        {
            // Set name of Unity prefab associated with this entity
            var exampleEntity = new SnapshotEntity {
                Prefab = "ExampleEntity"
            };

            // Define components attached to snapshot entity
            exampleEntity.Add(new WorldTransform.Data(new WorldTransformData(new Coordinates(0, 0, 0))));
            exampleEntity.Add(new UnityName.Data(new UnityNameData("your_example_entity")));
            exampleEntity.Add(new CppName.Data(new CppNameData("your_example_entity")));

            var acl = Acl.Build()
                      // Both FSim (server) workers and client workers granted read access over all states
                      .SetReadAccess(Acl.MakeRequirementSet(CommonAttributeSets.Physics, CommonAttributeSets.Visual, Acl.MakeAttributeSet("cpp")))
                      // Only FSim workers granted write access over WorldTransform component
                      .SetWriteAccess <WorldTransform>(CommonRequirementSets.PhysicsOnly)
                      // Only client workers granted write access over Name component
                      .SetWriteAccess <UnityName>(CommonRequirementSets.VisualOnly)
                      .SetWriteAccess <CppName>(Acl.MakeRequirementSet(Acl.MakeAttributeSet("cpp")));

            exampleEntity.SetAcl(acl);

            return(exampleEntity);
        }
Ejemplo n.º 2
0
        public static Entity CreateNodeTemplate(List <EntityId> networks)
        {
            var graphTierAttributeSet = Acl.MakeAttributeSet("graphtier");
            var visualAttributeSet    = Acl.MakeAttributeSet("visual");

            var template =
                EntityBuilder.Begin()
                .AddPositionComponent(new Coordinates(0, 0, -10).ToUnityVector(),
                                      Acl.MakeRequirementSet(graphTierAttributeSet))
                .AddMetadataComponent("Node")
                .SetPersistence(true)
                .SetReadAcl(Acl.MakeRequirementSet(graphTierAttributeSet, visualAttributeSet))
                .AddComponent(new NodeCommands.Data(), Acl.MakeRequirementSet(graphTierAttributeSet))
                .AddComponent(new NodeData.Data(networks), Acl.MakeRequirementSet(graphTierAttributeSet))
                .Build();

            return(template);
        }
        public static Entity CreateTankTemplate(Vector3 position)
        {
            var moverTemplate = EntityBuilder.Begin()
                                .AddPositionComponent(position, CommonRequirementSets.PhysicsOnly)
                                .AddMetadataComponent(entityType: SimulationSettings.TankPrefabName)
                                .SetPersistence(true)
                                .SetReadAcl(Acl.MakeRequirementSet(CommonAttributeSets.Physics, CommonAttributeSets.Visual, Acl.MakeAttributeSet("turret_rotation")))
                                .AddComponent(new Improbable.Demo.PositionColor.Data(0), CommonRequirementSets.PhysicsOnly)
                                .AddComponent(new Improbable.Demo.CheckOutColor.Data(new List <uint>()), CommonRequirementSets.PhysicsOnly)
                                .AddComponent(new Improbable.Demo.TurretInfo.Data(Random.Range(0, 360), 0), Acl.MakeRequirementSet(Acl.MakeAttributeSet("turret_rotation")))
                                .Build();

            return(moverTemplate);
        }