// 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);
        }
        public static Entity CreateTileTemplate(Vector3 position)
        {
            var tileTemplate = EntityBuilder.Begin()
                               .AddPositionComponent(position, CommonRequirementSets.PhysicsOnly)
                               .AddMetadataComponent(entityType: SimulationSettings.TilePrefabName)
                               .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)
                               .Build();

            return(tileTemplate);
        }
예제 #3
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);
        }