private void ImportRenderObjects(IRenderable item, RenderObjectGroup rog, GameObject parent) { var obj = new GameObject(rog.Name); obj.transform.parent = parent.transform; if (rog.HasOnlyChild) { ImportRenderObject(item, rog.RenderObjects[0], obj); } else if (rog.HasChildren) { foreach (var ro in rog.RenderObjects) { var subObj = new GameObject(ro.Name); subObj.transform.parent = obj.transform; ImportRenderObject(item, ro, subObj); } } // apply transformation if (rog.HasChildren) { SetTransform(obj.transform, rog.TransformationMatrix.ToUnityMatrix()); } // add unity component switch (item) { case Bumper bumper: obj.AddComponent <VisualPinballBumper>().SetData(bumper.Data); break; case Flipper flipper: obj.AddComponent <VisualPinballFlipper>().SetData(flipper.Data); break; case Gate gate: obj.AddComponent <VisualPinballGate>().SetData(gate.Data); break; case HitTarget hitTarget: obj.AddComponent <VisualPinballHitTarget>().SetData(hitTarget.Data); break; case Kicker kicker: obj.AddComponent <VisualPinballKicker>().SetData(kicker.Data); break; case Primitive primitive: obj.AddComponent <VisualPinballPrimitive>().SetData(primitive.Data); break; case Ramp ramp: obj.AddComponent <VisualPinballRamp>().SetData(ramp.Data); break; case Rubber rubber: obj.AddComponent <VisualPinballRubber>().SetData(rubber.Data); break; case Spinner spinner: obj.AddComponent <VisualPinballSpinner>().SetData(spinner.Data); break; case Surface surface: obj.AddComponent <VisualPinballSurface>().SetData(surface.Data); break; case Trigger trigger: obj.AddComponent <VisualPinballTrigger>().SetData(trigger.Data); break; } }
private void UpdateMesh(string childName, GameObject go, RenderObjectGroup rog) { var ro = rog.RenderObjects.FirstOrDefault(r => r.Name == childName); if (ro == null) { _logger.Warn("Cannot find mesh {0} in {1} {2}.", childName, typeof(TItem).Name, data.GetName()); return; } var unityMesh = go.GetComponent <MeshFilter>().sharedMesh; ro.Mesh.ApplyToUnityMesh(unityMesh); }
private static GameObject GetOrCreateParent(Component tb, RenderObjectGroup rog) { var parent = tb.gameObject.transform.Find(rog.Parent)?.gameObject; if (parent == null) { parent = new GameObject(rog.Parent); parent.transform.parent = tb.gameObject.transform; parent.transform.localPosition = Vector3.zero; parent.transform.localRotation = Quaternion.identity; parent.transform.localScale = Vector3.one; } return(parent); }
public static MonoBehaviour SetupGameObject(this Engine.VPT.Table.Table table, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <PlayfieldAuthoring>(); obj.AddComponent <ConvertToEntity>(); return(ic); }
public static GateAuthoring SetupGameObject(this Engine.VPT.Gate.Gate gate, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <GateAuthoring>().SetItem(gate); obj.AddComponent <ConvertToEntity>(); var wire = obj.transform.Find("Wire").gameObject; wire.AddComponent <GateWireAuthoring>().SetItem(gate, "Wire"); return(ic as GateAuthoring); }
public static LightAuthoring SetupGameObject(this Engine.VPT.Light.Light light, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <LightAuthoring>().SetItem(light); return(ic as LightAuthoring); }
public static LightBehavior SetupGameObject(this Engine.VPT.Light.Light light, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <LightBehavior>().SetData(light.Data); return(ic as LightBehavior); }
public static TriggerBehavior SetupGameObject(this Engine.VPT.Trigger.Trigger trigger, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <TriggerBehavior>().SetItem(trigger); obj.AddComponent <ConvertToEntity>(); return(ic as TriggerBehavior); }
public static FlipperAuthoring SetupGameObject(this Engine.VPT.Flipper.Flipper flipper, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <FlipperAuthoring>().SetItem(flipper); obj.AddComponent <ConvertToEntity>(); return(ic as FlipperAuthoring); }
public static PlungerBehavior SetupGameObject(this Engine.VPT.Plunger.Plunger plunger, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <PlungerBehavior>().SetData(plunger.Data); var rod = obj.transform.Find(PlungerMeshGenerator.RodName); if (rod != null) { rod.gameObject.AddComponent <PlungerRodBehavior>(); } var spring = obj.transform.Find(PlungerMeshGenerator.SpringName); if (spring != null) { spring.gameObject.AddComponent <PlungerSpringBehavior>(); } var flat = obj.transform.Find(PlungerMeshGenerator.FlatName); if (flat != null) { flat.gameObject.AddComponent <PlungerFlatBehavior>(); } obj.AddComponent <ConvertToEntity>(); return(ic as PlungerBehavior); }
public static RubberAuthoring SetupGameObject(this Engine.VPT.Rubber.Rubber rubber, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <RubberAuthoring>().SetItem(rubber); obj.AddComponent <ConvertToEntity>(); return(ic as RubberAuthoring); }
public static RampBehavior SetupGameObject(this Engine.VPT.Ramp.Ramp ramp, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <RampBehavior>().SetItem(ramp); obj.AddComponent <ConvertToEntity>(); return(ic as RampBehavior); }
public static IEnumerable <Tuple <GameObject, RenderObject> > ConvertRenderObjects(IRenderable item, RenderObjectGroup rog, GameObject parent, TableAuthoring tb, out GameObject obj) { obj = new GameObject(rog.Name); obj.transform.parent = parent.transform; var createdObjs = new Tuple <GameObject, RenderObject> [0]; if (rog.HasOnlyChild && !rog.ForceChild) { ConvertRenderObject(rog.RenderObjects[0], obj, tb); createdObjs = new[] { new Tuple <GameObject, RenderObject>(obj, rog.RenderObjects[0]) }; } else if (rog.HasChildren) { createdObjs = new Tuple <GameObject, RenderObject> [rog.RenderObjects.Length]; var i = 0; foreach (var ro in rog.RenderObjects) { var subObj = new GameObject(ro.Name); subObj.transform.SetParent(obj.transform, false); subObj.layer = ChildObjectsLayer; ConvertRenderObject(ro, subObj, tb); createdObjs[i++] = new Tuple <GameObject, RenderObject>(subObj, ro); } } // apply transformation obj.transform.SetFromMatrix(rog.TransformationMatrix.ToUnityMatrix()); // add unity component MonoBehaviour ic = null; switch (item) { case Bumper bumper: ic = bumper.SetupGameObject(obj, rog); break; case Flipper flipper: ic = flipper.SetupGameObject(obj, rog); break; case Gate gate: ic = gate.SetupGameObject(obj, rog); break; case HitTarget hitTarget: ic = hitTarget.SetupGameObject(obj, rog); break; case Kicker kicker: ic = kicker.SetupGameObject(obj, rog); break; case Engine.VPT.Light.Light lt: ic = lt.SetupGameObject(obj, rog); break; case Plunger plunger: ic = plunger.SetupGameObject(obj, rog); break; case Primitive primitive: ic = primitive.SetupGameObject(obj, rog); break; case Ramp ramp: ic = ramp.SetupGameObject(obj, rog); break; case Rubber rubber: ic = rubber.SetupGameObject(obj, rog); break; case Spinner spinner: ic = spinner.SetupGameObject(obj, rog); break; case Surface surface: ic = surface.SetupGameObject(obj, rog); break; case Table table: ic = table.SetupGameObject(obj, rog); break; case Trigger trigger: ic = trigger.SetupGameObject(obj, rog); break; } return(createdObjs); }
public static GateBehavior SetupGameObject(this Engine.VPT.Gate.Gate gate, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <GateBehavior>().SetData(gate.Data); obj.AddComponent <ConvertToEntity>(); var wire = obj.transform.Find("Wire").gameObject; wire.AddComponent <GateWireBehavior>().SetData(gate.Data, "Wire"); return(ic as GateBehavior); }
public static SurfaceAuthoring SetupGameObject(this Engine.VPT.Surface.Surface surface, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <SurfaceAuthoring>().SetItem(surface); obj.AddComponent <ConvertToEntity>(); return(ic as SurfaceAuthoring); }
public static SpinnerBehavior SetupGameObject(this Engine.VPT.Spinner.Spinner spinner, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <SpinnerBehavior>().SetData(spinner.Data); obj.AddComponent <ConvertToEntity>(); var wire = obj.transform.Find("Plate").gameObject; wire.AddComponent <SpinnerPlateBehavior>().SetData(spinner.Data, "Plate"); return(ic as SpinnerBehavior); }
public static TroughAuthoring SetupGameObject(this Engine.VPT.Trough.Trough Trough, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <TroughAuthoring>().SetItem(Trough); obj.AddComponent <ConvertToEntity>(); return(ic as TroughAuthoring); }
public static HitTargetBehavior SetupGameObject(this Engine.VPT.HitTarget.HitTarget hitTarget, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <HitTargetBehavior>().SetData(hitTarget.Data); obj.AddComponent <ConvertToEntity>(); return(ic as HitTargetBehavior); }
public static BumperBehavior SetupGameObject(this Engine.VPT.Bumper.Bumper bumper, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <BumperBehavior>().SetData(bumper.Data); obj.AddComponent <ConvertToEntity>(); var ring = obj.transform.Find("Ring").gameObject; var skirt = obj.transform.Find("Skirt").gameObject; ring.AddComponent <BumperRingBehavior>(); skirt.AddComponent <BumperSkirtBehavior>(); return(ic as BumperBehavior); }
public static PrimitiveAuthoring SetupGameObject(this Primitive primitive, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <PrimitiveAuthoring>().SetItem(primitive); obj.AddComponent <ConvertToEntity>(); return(ic as PrimitiveAuthoring); }
public static HitTargetAuthoring SetupGameObject(this Engine.VPT.HitTarget.HitTarget hitTarget, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <HitTargetAuthoring>().SetItem(hitTarget); obj.AddComponent <ConvertToEntity>(); return(ic as HitTargetAuthoring); }
public static KickerAuthoring SetupGameObject(this Engine.VPT.Kicker.Kicker kicker, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent<KickerAuthoring>().SetItem(kicker); obj.AddComponent<ConvertToEntity>(); return ic as KickerAuthoring; }
public static MonoBehaviour SetupGameObject(this Engine.VPT.Table.Table table, GameObject go, RenderObjectGroup rog) { go.AddComponent <ConvertToEntity>(); return(null); }
public static BumperAuthoring SetupGameObject(this Engine.VPT.Bumper.Bumper bumper, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <BumperAuthoring>().SetItem(bumper); obj.AddComponent <ConvertToEntity>(); var ring = obj.transform.Find("Ring").gameObject; var skirt = obj.transform.Find("Skirt").gameObject; ring.AddComponent <BumperRingAuthoring>(); skirt.AddComponent <BumperSkirtAuthoring>(); return(ic as BumperAuthoring); }
public static SpinnerAuthoring SetupGameObject(this Engine.VPT.Spinner.Spinner spinner, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <SpinnerAuthoring>().SetItem(spinner); obj.AddComponent <ConvertToEntity>(); var wire = obj.transform.Find("Plate").gameObject; wire.AddComponent <SpinnerPlateAuthoring>().SetItem(spinner, "Plate"); return(ic as SpinnerAuthoring); }
public static PlungerAuthoring SetupGameObject(this Plunger plunger, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <PlungerAuthoring>().SetItem(plunger); var rod = obj.transform.Find(PlungerMeshGenerator.RodName); if (rod != null) { rod.gameObject.AddComponent <PlungerRodAuthoring>(); } var spring = obj.transform.Find(PlungerMeshGenerator.SpringName); if (spring != null) { spring.gameObject.AddComponent <PlungerSpringAuthoring>(); } var flat = obj.transform.Find(PlungerMeshGenerator.FlatName); if (flat != null) { flat.gameObject.AddComponent <PlungerFlatAuthoring>(); } obj.AddComponent <ConvertToEntity>(); return(ic as PlungerAuthoring); }
private void ImportRenderObjects(IRenderable item, RenderObjectGroup rog, GameObject parent) { var obj = new GameObject(rog.Name); obj.transform.parent = parent.transform; if (rog.HasOnlyChild && !rog.ForceChild) { ImportRenderObject(item, rog.RenderObjects[0], obj, _tb); } else if (rog.HasChildren) { foreach (var ro in rog.RenderObjects) { var subObj = new GameObject(ro.Name); subObj.transform.SetParent(obj.transform, false); subObj.layer = ChildObjectsLayer; ImportRenderObject(item, ro, subObj, _tb); } } // apply transformation obj.transform.SetFromMatrix(rog.TransformationMatrix.ToUnityMatrix()); // add unity component MonoBehaviour ic = null; switch (item) { case Bumper bumper: ic = bumper.SetupGameObject(obj, rog); break; case Flipper flipper: ic = flipper.SetupGameObject(obj, rog); break; case Gate gate: ic = gate.SetupGameObject(obj, rog); break; case HitTarget hitTarget: ic = hitTarget.SetupGameObject(obj, rog); break; case Kicker kicker: ic = obj.AddComponent <KickerBehavior>().SetData(kicker.Data); break; case Engine.VPT.Light.Light lt: ic = lt.SetupGameObject(obj, rog); break; case Plunger plunger: ic = plunger.SetupGameObject(obj, rog); break; case Primitive primitive: ic = obj.AddComponent <PrimitiveBehavior>().SetData(primitive.Data); break; case Ramp ramp: ic = obj.AddComponent <RampBehavior>().SetData(ramp.Data); break; case Rubber rubber: ic = obj.AddComponent <RubberBehavior>().SetData(rubber.Data); break; case Spinner spinner: ic = spinner.SetupGameObject(obj, rog); break; case Surface surface: ic = surface.SetupGameObject(obj, rog); break; case Table table: ic = table.SetupGameObject(obj, rog); break; case Trigger trigger: ic = trigger.SetupGameObject(obj, rog); break; } #if UNITY_EDITOR // for convenience move item behavior to the top of the list if (ic != null) { int numComp = obj.GetComponents <MonoBehaviour>().Length; for (int i = 0; i <= numComp; i++) { UnityEditorInternal.ComponentUtility.MoveComponentUp(ic); } } #endif }
public static FlipperBehavior SetupGameObject(this Engine.VPT.Flipper.Flipper flipper, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <FlipperBehavior>().SetData(flipper.Data); obj.AddComponent <ConvertToEntity>(); return(ic as FlipperBehavior); }
public static SurfaceBehavior SetupGameObject(this Engine.VPT.Surface.Surface surface, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <SurfaceBehavior>().SetData(surface.Data); obj.AddComponent <ConvertToEntity>(); return(ic as SurfaceBehavior); }