// 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 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); }