private MotionEntity CreateUnit(Vector3 position) { var unit = new MotionEntity { MainGraphic = new MetaModel { SkinnedMesh = new SkinnedMeshFromFile("goblin_blade_master1.x"), Texture = new TextureFromFile("goblin_blade_master1.png"), World = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.1f, 0.1f, 0.1f), IsBillboard = false, }, /*Animation = "idle1", * AnimationLoop = true,*/ Translation = position }; var mo = motionSimulation.CreateUnit(); var lb = new Common.Bounding.Cylinder(Vector3.Zero, 1f, 0.5f); mo.LocalBounding = lb; mo.Position = position; unit.MotionObject = mo; unit.VisibilityLocalBounding = new MetaBoundingBox { Mesh = ((MetaModel)unit.MainGraphic).SkinnedMesh, Transformation = ((MetaModel)unit.MainGraphic).World }; Graphics.Renderer.Renderer.EntityAnimation ea = scene.View.Content.Peek <Graphics.Renderer.Renderer.EntityAnimation>(unit.MetaEntityAnimation); ea.PlayAnimation(new AnimationPlayParameters("idle1", true)); return(unit); }
public Destructible() { state = UnitState.Alive; EditorPlacementLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 0.5f); RemoveOnDeath = true; RageYield = 0; Armor = 0; Team = Team.Neutral; MaxHitPoints = HitPoints = 600; Updateable = true; }
public DemonLord() { HitPoints = MaxHitPoints = 20000; Armor = 0f; RunSpeed = MaxRunSpeed = 3.5f; PhysicalWeight = 5000; HeadOverBarHeight = 5f; SplatRequiredDamagePerc = float.MaxValue; RageEnabled = false; RunAnimationSpeed = 0.3f; HitRadius = 1.5f; SilverYield = 600; RageLevel = 1; MainGraphic = new MetaModel { AlphaRef = 2, SkinnedMesh = new SkinnedMeshFromFile("Models/Units/DemonLord1.x"), Texture = new TextureFromFile("Models/Units/DemonLord1.png"), SpecularTexture = new TextureFromFile("Models/Units/DemonLordSpecular1.png"), World = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.18f, 0.18f, 0.18f), HasAlpha = false, IsBillboard = false, CastShadows = global::Graphics.Content.Priority.Never, ReceivesShadows = global::Graphics.Content.Priority.High, ReceivesSpecular = global::Graphics.Content.Priority.High, SpecularExponent = 6, }; VisibilityLocalBounding = new MetaBoundingBox { Mesh = ((MetaModel)MainGraphic).SkinnedMesh, Transformation = ((MetaModel)MainGraphic).World }; PickingLocalBounding = new Common.Bounding.Chain { Boundings = new object[] { VisibilityLocalBounding, new BoundingMetaMesh { SkinnedMeshInstance = MetaEntityAnimation, Transformation = ((MetaModel)MainGraphic).World } }, Shallow = true }; PhysicsLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 4, 1f); AddAbility(new DemonThrust()); AddAbility(new DemonWrath()); AddAbility(new DemonLordCharge()); AddAbility(new LavaDitchBash()); }
public GameEntity() { EditorSelectable = true; EditorMinRandomScale = 1; EditorMaxRandomScale = 1; EditorFollowGroundType = EditorFollowGroupType.Heightmap; EditorPlacementLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 1f); Clickable = false; SeeThroughable = false; EditorLockTranslation = false; fader = new EntityFader(this); }
public Leaf1() { MainGraphic = new MetaModel { XMesh = new MeshFromFile("Models/Props/Leaf1.x"), Texture = new TextureFromFile("Models/Props/Leaf1.png"), SpecularTexture = new TextureFromFile("Models/Props/LeafSpecular1.png"), World = Matrix.Scaling(0.09f, 0.09f, 0.09f) * SkinnedMesh.InitSkinnedMeshFromMaya, Visible = Priority.Low, CastShadows = global::Graphics.Content.Priority.Low, ReceivesShadows = Priority.High, ReceivesSpecular = Priority.Medium, }; VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)MainGraphic); PickingLocalBounding = CreateBoundingMeshFromModel((MetaModel)MainGraphic); PhysicsLocalBounding = null; EditorPlacementLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 1, 0.25f); EditorRandomRotation = true; }
public Flower1() { MainGraphic = new MetaModel { XMesh = new MeshFromFile("Models/Props/Flower1.x"), Texture = new TextureFromFile("Models/Props/Flower1.png"), World = Matrix.Scaling(0.1f, 0.1f, 0.1f) * SkinnedMesh.InitSkinnedMeshFromMaya, Visible = Priority.Low, CastShadows = global::Graphics.Content.Priority.Low, ReceivesShadows = Priority.Medium, }; VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)MainGraphic); PickingLocalBounding = CreateBoundingMeshFromModel((MetaModel)MainGraphic); PhysicsLocalBounding = null; EditorMinRandomScale = 0.5f; EditorMaxRandomScale = 2f; EditorRandomRotation = true; EditorPlacementLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 0.3f); }
public Forestplants2() { MainGraphic = new MetaModel { XMesh = new MeshFromFile("Models/Props/Forestplants2.x"), Texture = new TextureFromFile("Models/Props/Forestplants1.png"), World = Matrix.Scaling(0.16f, 0.16f, 0.16f) * SkinnedMesh.InitSkinnedMeshFromMaya, AlphaRef = 4, HasAlpha = true, Visible = Priority.Low, CastShadows = global::Graphics.Content.Priority.Never, ReceivesShadows = Priority.Medium, }; VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)MainGraphic); PickingLocalBounding = CreateBoundingMeshFromModel((MetaModel)MainGraphic); PhysicsLocalBounding = null; EditorPlacementLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 0.1f); EditorRandomRotation = true; }
public AlligatorWine() { MainGraphic = new MetaModel { XMesh = new MeshFromFile("Models/Props/Bottle1.x"), Texture = new TextureFromFile("Models/Props/AWBottle1.png"), SpecularTexture = new TextureFromFile("Models/Props/PebbleSpecular1.png"), World = Matrix.Scaling(0.09f, 0.09f, 0.09f) * SkinnedMesh.InitSkinnedMeshFromMaya, Visible = Priority.Medium, CastShadows = global::Graphics.Content.Priority.Low, ReceivesShadows = Priority.High, ReceivesSpecular = Priority.Medium, SpecularExponent = 4, }; VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)MainGraphic); PickingLocalBounding = CreateBoundingMeshFromModel((MetaModel)MainGraphic); PhysicsLocalBounding = null; EditorPlacementLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 0.25f); EditorRandomRotation = true; }
protected override void OnPaint(PaintEventArgs e) { e.Graphics.Clear(Color.White); var treeRoot = quadtree.DebugReturnRoot; heightCount = 0; if (treeRoot != null) { int depth = treeRoot.DebugReturnDepth; DrawQuadTreeNodeBackground(e.Graphics, treeRoot, depth); DrawQuadTreeNode(e.Graphics, treeRoot, 0, depth); } //Text = "Cells with height: " + heightCount; // draw origo int length = 10; e.Graphics.DrawLine(new Pen(Color.Black, 2), new Point(origo.X, origo.Y - length), new Point(origo.X, origo.Y + length)); e.Graphics.DrawLine(new Pen(Color.Black, 2), new Point(origo.X - length, origo.Y), new Point(origo.X + length, origo.Y)); if (rightButtonClicked) { // redraw culled objects with color float radius = 20f; var pos = ScreenToWorldCoords(mousePos); var cyl = new Common.Bounding.Cylinder(new Vector3(pos.X, pos.Y, 0), 1f, radius); List <Circle> list = quadtree.Cull(cyl); int colorIndex = 1; foreach (var c in list) { c.Draw(e.Graphics, gridColors[colorIndex++ % gridColors.Length]); } Text = "Found " + list.Count + " element(s)."; // draw cull circle e.Graphics.DrawEllipse(Pens.Red, mousePos.X - radius, mousePos.Y - radius, 2 * radius, 2 * radius); } }
public override void Update(float dtime) { base.Update(dtime); if (motionSimulation.Running) { AdvanceFrame(); } sceneRendererConnector.CullScene(null); sceneRendererConnector.UpdateAnimations(dtime); renderer.PreRender(dtime); Device9.Clear(SlimDX.Direct3D9.ClearFlags.Target | SlimDX.Direct3D9.ClearFlags.ZBuffer, Color.DarkSlateGray, 1f, 0); Device9.BeginScene(); renderer.Render(dtime); foreach (var o in motionSimulation.All) { var proj = o as Common.IMotion.IProjectile; if (proj != null) { Vector3 endpoint = proj.Position + dtime * proj.Velocity; Draw3DLines(scene.Camera, Matrix.Identity, new Vector3[] { proj.Position, endpoint }, Color.Blue); } var umo = o as Common.IMotion.IUnit; if (umo != null) { Common.Bounding.Cylinder cyl = (Common.Bounding.Cylinder)umo.WorldBounding; DrawCircle(scene.Camera, Matrix.Identity, cyl.Position, cyl.Radius, 12, Color.Orange); DrawCircle(scene.Camera, Matrix.Identity, cyl.Position + new Vector3(0, 0, cyl.Height), cyl.Radius, 12, Color.Orange); } } Device9.EndScene(); Application.MainWindow.Text = "FPS: " + FPS + ", Units hit last shot: " + unitsHitLastShot; }
public Unit() { CanControlMovementBlockers = 0; CanControlRotationBlockers = 0; InRangeRadius = 6; PhysicalWeight = 1; GraphicalTurnSpeed = 5f; RaiseFromCorpseTime = 2; PistolAmmo = 0; InCombat = false; IsDestructible = true; RunAnimationSpeed = 1; BackingAnimationSpeed = 1; RunningBackwards = false; MaxRunSpeed = 4; MaxWaterDepth = 0.5f; RageYield = 1; SplatRequiredDamagePerc = 0; MainGraphic = new MetaModel { SkinnedMesh = new SkinnedMeshFromFile("Models/Units/Zombie1.x"), Texture = new TextureFromFile("Models/Units/Zombie1.png"), World = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.1f, 0.1f, 0.1f), IsBillboard = false, AlphaRef = 254, Opacity = 1.0f }; PickingLocalBounding = VisibilityLocalBounding = new MetaBoundingBox { Mesh = ((MetaModel)MainGraphic).SkinnedMesh, Transformation = ((MetaModel)MainGraphic).World }; PhysicsLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 2.5f, 0.5f) { SolidRayIntersection = true }; EditorRandomRotation = true; }
public Swamptree2() { MainGraphic = new MetaModel { XMesh = new MeshFromFile("Models/Props/Swamptree2.x"), Texture = new TextureFromFile("Models/Props/Swamptree1.png"), SpecularTexture = new TextureFromFile("Models/Props/SwamptreeSpecular1.png"), World = Matrix.Scaling(0.09f, 0.09f, 0.09f) * SkinnedMesh.InitSkinnedMeshFromMaya, AlphaRef = 100, Visible = Priority.High, CastShadows = global::Graphics.Content.Priority.High, ReceivesShadows = Priority.High, ReceivesSpecular = Priority.Medium, SpecularExponent = 4, }; VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)MainGraphic); PickingLocalBounding = CreateBoundingMeshFromModel((MetaModel)MainGraphic); PhysicsLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 0.5f); EditorPlacementLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 0.6f); EditorRandomRotation = true; SeeThroughable = true; }
public Rottentree1() { MainGraphic = new MetaModel { XMesh = new MeshFromFile("Models/Props/Rottentree1.x"), Texture = new TextureFromFile("Models/Props/Rottentree1.png"), World = Matrix.Scaling(0.16f, 0.16f, 0.16f) * SkinnedMesh.InitSkinnedMeshFromMaya, AlphaRef = 254, Visible = Priority.High, CastShadows = global::Graphics.Content.Priority.High, ReceivesShadows = Priority.High, }; VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)MainGraphic); PickingLocalBounding = CreateBoundingMeshFromModel((MetaModel)MainGraphic); PhysicsLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 1.5f); EditorMinRandomScale = 0.5f; EditorMaxRandomScale = 2f; EditorRandomRotation = true; IsDestructible = true; MaxHitPoints = HitPoints = 200; Dynamic = true; }
protected override void OnPaint(PaintEventArgs e) { e.Graphics.Clear(Color.White); var treeRoot = quadtree.DebugReturnRoot; heightCount = 0; if (treeRoot != null) { int depth = treeRoot.DebugReturnDepth; DrawQuadTreeNodeBackground(e.Graphics, treeRoot, depth); DrawQuadTreeNode(e.Graphics, treeRoot, 0, depth); } //Text = "Cells with height: " + heightCount; // draw origo int length = 10; e.Graphics.DrawLine(new Pen(Color.Black, 2), new Point(origo.X, origo.Y - length), new Point(origo.X, origo.Y + length)); e.Graphics.DrawLine(new Pen(Color.Black, 2), new Point(origo.X - length, origo.Y), new Point(origo.X + length, origo.Y)); if (rightButtonClicked) { // redraw culled objects with color float radius = 20f; var pos = ScreenToWorldCoords(mousePos); var cyl = new Common.Bounding.Cylinder(new Vector3(pos.X, pos.Y, 0), 1f, radius); List<Circle> list = quadtree.Cull(cyl); int colorIndex = 1; foreach (var c in list) c.Draw(e.Graphics, gridColors[colorIndex++ % gridColors.Length]); Text = "Found " + list.Count + " element(s)."; // draw cull circle e.Graphics.DrawEllipse(Pens.Red, mousePos.X - radius, mousePos.Y - radius, 2 * radius, 2 * radius); } }
private MotionEntity CreateUnit(Vector3 position) { var unit = new MotionEntity { MainGraphic = new MetaModel { SkinnedMesh = new SkinnedMeshFromFile("goblin_blade_master1.x"), Texture = new TextureFromFile("goblin_blade_master1.png"), World = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.1f, 0.1f, 0.1f), IsBillboard = false, }, /*Animation = "idle1", AnimationLoop = true,*/ Translation = position }; var mo = motionSimulation.CreateUnit(); var lb = new Common.Bounding.Cylinder(Vector3.Zero, 1f, 0.5f); mo.LocalBounding = lb; mo.Position = position; unit.MotionObject = mo; unit.VisibilityLocalBounding = new MetaBoundingBox { Mesh = ((MetaModel)unit.MainGraphic).SkinnedMesh, Transformation = ((MetaModel)unit.MainGraphic).World }; Graphics.Renderer.Renderer.EntityAnimation ea = scene.View.Content.Peek<Graphics.Renderer.Renderer.EntityAnimation>(unit.MetaEntityAnimation); ea.PlayAnimation(new AnimationPlayParameters("idle1", true)); return unit; }
public Cannonball2() { MainGraphic = new MetaModel { XMesh = new MeshFromFile("Models/Props/Cannonball2.x"), Texture = new TextureFromFile("Models/Props/Cannonball1.png"), SpecularTexture = new TextureFromFile("Models/Props/CannonballSpecular1.png"), World = Matrix.Scaling(0.13f, 0.13f, 0.13f) * SkinnedMesh.InitSkinnedMeshFromMaya, Visible = Priority.Low, CastShadows = global::Graphics.Content.Priority.Low, ReceivesShadows = Priority.High, ReceivesSpecular = Priority.High, }; PickingLocalBounding = CreateBoundingMeshFromModel((MetaModel)MainGraphic); PhysicsLocalBounding = null; EditorPlacementLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 1.3f); VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)MainGraphic); EditorRandomRotation = true; }
public FireplaceBurning1() { MainGraphic = new MetaModel { XMesh = new MeshFromFile("Models/Props/Fireplace1.x"), Texture = new TextureFromFile("Models/Props/FireplaceBurning1.png"), World = Matrix.Scaling(0.14f, 0.14f, 0.14f) * SkinnedMesh.InitSkinnedMeshFromMaya, AlphaRef = 254, Visible = Priority.High, CastShadows = global::Graphics.Content.Priority.Never, ReceivesShadows = Priority.Never, ReceivesAmbientLight = Priority.Never, ReceivesDiffuseLight = Priority.Never, }; AddChild(new Effects.PulsatingLight { Translation = Vector3.UnitZ * 0.5f }); PickingLocalBounding = CreateBoundingMeshFromModel((MetaModel)MainGraphic); PhysicsLocalBounding = null; EditorPlacementLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 1.3f); VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)MainGraphic); EditorRandomRotation = true; Updateable = true; Dynamic = true; }
public static bool Intersect(Common.Bounding.Cylinder a, BoundingMetaMesh b, out object intersection) { // Hack! Only compares position return(Common.Intersection.Intersect(a, Common.Boundings.Translation(b), out intersection)); }
public Shrubbery1() { MainGraphic = new MetaModel { XMesh = new MeshFromFile("Models/Props/Shrubbery1.x"), Texture = new TextureFromFile("Models/Props/Shrub1.png"), World = Matrix.Scaling(0.1f, 0.1f, 0.1f) * SkinnedMesh.InitSkinnedMeshFromMaya, AlphaRef = 100, Visible = Priority.Medium, CastShadows = global::Graphics.Content.Priority.Low, ReceivesShadows = Priority.High, }; VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)MainGraphic); PickingLocalBounding = CreateBoundingMeshFromModel((MetaModel)MainGraphic); PhysicsLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 2, 0.6f); EditorPlacementLocalBounding = PhysicsLocalBounding; EditorMinRandomScale = 0.5f; EditorMaxRandomScale = 2f; EditorRandomRotation = true; }
public Treetrunk2() { MainGraphic = new MetaModel { XMesh = new MeshFromFile("Models/Props/Treetrunk2.x"), Texture = new TextureFromFile("Models/Props/Treetrunk1.png"), SpecularTexture = new TextureFromFile("Models/Props/TreetrunkSpecular1.png"), World = Matrix.Scaling(0.08f, 0.08f, 0.08f) * SkinnedMesh.InitSkinnedMeshFromMaya, Visible = Priority.High, CastShadows = global::Graphics.Content.Priority.Medium, ReceivesShadows = Priority.High, ReceivesSpecular = Priority.Medium, SpecularExponent = 4, }; VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)MainGraphic); PickingLocalBounding = CreateBoundingMeshFromModel((MetaModel)MainGraphic); var physicsMesh = new MeshFromFile("Models/Props/Treetrunk2Pathmesh.x"); PhysicsLocalBounding = CreatePhysicsMeshBounding(new MetaModel { XMesh = physicsMesh, World = ((MetaModel)MainGraphic).World }); EditorPlacementLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 1.5f); EditorRandomRotation = true; }
public Tallgrass3() { MainGraphic = new MetaModel { XMesh = new MeshFromFile("Models/Props/Tallgrass3.x"), Texture = new TextureFromFile("Models/Props/Tallgrass1.png"), World = Matrix.Scaling(0.12f, 0.08f, 0.12f) * SkinnedMesh.InitSkinnedMeshFromMaya, AlphaRef = 100, Visible = Priority.Medium, CastShadows = global::Graphics.Content.Priority.Never, ReceivesShadows = Priority.High, Animate = Priority.Never }; VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)MainGraphic); PickingLocalBounding = CreateBoundingMeshFromModel((MetaModel)MainGraphic); PhysicsLocalBounding = null; EditorPlacementLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 0.25f); EditorRandomRotation = true; }
public SpecualSphere1() { MainGraphic = new MetaModel { XMesh = new MeshFromFile("Sphere1.x"), Texture = new TextureConcretizer { TextureDescription = new global::Graphics.Software.Textures.SingleColorTexture(System.Drawing.Color.Black) }, SpecularTexture = new TextureConcretizer { TextureDescription = new global::Graphics.Software.Textures.SingleColorTexture(System.Drawing.Color.White) }, World = Matrix.Scaling(0.1f, 0.1f, 0.1f) * SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Translation(0, 0, 1), AlphaRef = 100, Visible = Priority.High, CastShadows = global::Graphics.Content.Priority.High, ReceivesShadows = Priority.High, Animate = Priority.Medium, ReceivesSpecular = Priority.Medium, }; VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)MainGraphic); PickingLocalBounding = CreateBoundingMeshFromModel((MetaModel)MainGraphic); PhysicsLocalBounding = null; EditorPlacementLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 0.45f); EditorRandomRotation = true; }
public SkySphere() { MainGraphic = new MetaModel { XMesh = new MeshFromFile("Sphere1.x"), Texture = new TextureFromFile("background.png"), World = Matrix.Scaling(0.1f, 0.1f, 0.1f) * SkinnedMesh.InitSkinnedMeshFromMaya, ReceivesAmbientLight = Priority.Never, ReceivesDiffuseLight = Priority.Never, }; //VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)Graphic); VisibilityLocalBounding = new Common.Bounding.NonfittableBounding(new BoundingBox(new Vector3(-1000, -1000, -1000), new Vector3(1000, 1000, 1000)), false, true); PickingLocalBounding = CreateBoundingMeshFromModel((MetaModel)MainGraphic); PhysicsLocalBounding = null; EditorPlacementLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 1f); EditorRandomRotation = true; }
public Fence4() { MainGraphic = new MetaModel { XMesh = new MeshFromFile("Models/Props/Fence4.x"), Texture = new TextureFromFile("Models/Props/Fence1.png"), World = Matrix.Scaling(0.14f, 0.14f, 0.18f) * SkinnedMesh.InitSkinnedMeshFromMaya, Visible = Priority.High, CastShadows = global::Graphics.Content.Priority.Medium, ReceivesShadows = Priority.High, }; VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)MainGraphic); PickingLocalBounding = CreateBoundingMeshFromModel((MetaModel)MainGraphic); PhysicsLocalBounding = new Common.Bounding.Box { LocalBoundingBox = new BoundingBox(new Vector3(-0.31f, -1.4f, -0.5f), new Vector3(0.31f, 1.4f, 0.9f)), Transformation = Matrix.Scaling(1, 1, 0.5f) }; EditorPlacementLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 1f); EditorRandomRotation = true; }
protected Object() { IsColliding = false; LocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 1, 1); }
public static bool Intersect(Common.Bounding.Cylinder a, MetaBoundingBox b, out object intersection) { return(Common.Intersection.Intersect(a, b.GetBoundingBox(content).Value, out intersection)); }
public Torch1() { MainGraphic = new MetaModel { SkinnedMesh = new SkinnedMeshFromFile("Models/Props/Torch1.x"), Texture = new TextureFromFile("Models/Props/Torch1.png"), World = Matrix.Scaling(0.1f, 0.1f, 0.1f) * SkinnedMesh.InitSkinnedMeshFromMaya, AlphaRef = 150, Visible = Priority.High, CastShadows = global::Graphics.Content.Priority.Never, ReceivesShadows = Priority.Never, ReceivesSpecular = Priority.Never, ReceivesAmbientLight = Priority.Never, ReceivesDiffuseLight = Priority.Never, }; VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)MainGraphic); EditorRandomRotation = true; PickingLocalBounding = CreateBoundingMeshFromModel((MetaModel)MainGraphic); PhysicsLocalBounding = null; EditorPlacementLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 0.45f); SeeThroughable = true; }
public Bench2() { MainGraphic = new MetaModel { XMesh = new MeshFromFile("Models/Props/Bench2.x"), Texture = new TextureFromFile("Models/Props/Bench1.png"), SpecularTexture = new TextureFromFile("Models/Props/BenchSpecular1.png"), World = Matrix.Scaling(0.13f, 0.13f, 0.13f) * SkinnedMesh.InitSkinnedMeshFromMaya, Visible = Priority.High, CastShadows = global::Graphics.Content.Priority.Medium, ReceivesShadows = Priority.High, ReceivesSpecular = Priority.Medium, }; VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)MainGraphic); PickingLocalBounding = CreateBoundingMeshFromModel((MetaModel)MainGraphic); PhysicsLocalBounding = new Common.Bounding.Box { LocalBoundingBox = new BoundingBox(new Vector3(-1.05f, -0.15f, -0.48f), new Vector3(1.05f, 0.76f, 1.14f)) }; EditorPlacementLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 1.1f); EditorRandomRotation = true; }
public Fireplace1() { MainGraphic = new MetaModel { XMesh = new MeshFromFile("Models/Props/Fireplace1.x"), Texture = new TextureFromFile("Models/Props/Fireplace1.png"), World = Matrix.Scaling(0.14f, 0.14f, 0.14f) * SkinnedMesh.InitSkinnedMeshFromMaya, AlphaRef = 254, Visible = Priority.Medium, CastShadows = global::Graphics.Content.Priority.Low, ReceivesShadows = Priority.High, }; VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)MainGraphic); PickingLocalBounding = CreateBoundingMeshFromModel((MetaModel)MainGraphic); PhysicsLocalBounding = null; EditorPlacementLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 1.3f); EditorRandomRotation = true; Dynamic = true; }
public MaincharCinematic() { MainGraphic = new MetaModel { SkinnedMesh = new SkinnedMeshFromFile("Models/units/MaincharCinematic1.x"), Texture = new TextureFromFile("Models/Units/MainCharacter1.png"), SpecularTexture = new TextureFromFile("Models/Units/MainCharacterSpecular1.png"), World = Matrix.Scaling(0.18f, 0.18f, 0.18f) * SkinnedMesh.InitSkinnedMeshFromMaya, Visible = Priority.High, CastShadows = global::Graphics.Content.Priority.High, ReceivesShadows = Priority.High, Animate = Priority.High, ReceivesSpecular = Priority.High, SpecularExponent = 6, }; VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)MainGraphic); PickingLocalBounding = CreateBoundingMeshFromModel((MetaModel)MainGraphic); PhysicsLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 0.25f); EditorPlacementLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 0.45f); EditorRandomRotation = true; SeeThroughable = true; }
public DestructibleChest() { MainGraphic = new MetaModel { XMesh = new MeshFromFile("Models/Props/Chest1.x"), Texture = new TextureFromFile("Models/Props/Chest1.png"), SpecularTexture = new TextureFromFile("Models/Props/ChestSpecular1.png"), World = Matrix.Scaling(0.15f, 0.15f, 0.15f) * SkinnedMesh.InitSkinnedMeshFromMaya, Visible = Priority.High, CastShadows = global::Graphics.Content.Priority.High, ReceivesShadows = Priority.High, ReceivesSpecular = Priority.Medium, SpecularExponent = 8, }; VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)MainGraphic); PickingLocalBounding = CreateBoundingMeshFromModel((MetaModel)MainGraphic); PhysicsLocalBounding = null; EditorPlacementLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 1.5f); EditorRandomRotation = true; IsDestructible = true; HitPoints = MaxHitPoints = 30; Updateable = true; Dynamic = true; }
public void Draw(Matrix world, Common.Bounding.Cylinder bounding, Color color) { View.DrawCircle(camera, world, bounding.Position, bounding.Radius, 12, color); View.DrawCircle(camera, world, bounding.Position + new Vector3(0, 0, bounding.Height), bounding.Radius, 12, color); }
public BulletHolePlane1() { MainGraphic = new MetaModel { XMesh = new MeshConcretize { MeshDescription = new Graphics.Software.Meshes.IndexedPlane { Position = Vector3.Zero, Size = new Vector2(1, 1), UVMin = new Vector2(0, 0), UVMax = new Vector2(1, 1), Facings = global::Graphics.Facings.Frontside }, Layout = global::Graphics.Software.Vertex.PositionNormalTexcoord.Instance }, World = Matrix.Scaling(0.3f, 0.3f, 1) * Matrix.Translation(0, 0, 0.1f), Texture = new TextureFromFile("Models/Effects/BulletHit1.png"), HasAlpha = true, Opacity = 0.5f, DontSort = true, }; VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)MainGraphic); PickingLocalBounding = CreateBoundingMeshFromModel((MetaModel)MainGraphic); PhysicsLocalBounding = null; EditorPlacementLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 0.1f); EditorRandomRotation = true; AutoFadeoutTime = 10f; FadeoutTime = 1f; Updateable = true; }
public LavaMist1() { MainGraphic = new MetaModel { SkinnedMesh = new SkinnedMeshFromFile("Models/Effects/LavaMist1.x"), World = Matrix.Scaling(0.1f, 0.1f, 0.1f) * SkinnedMesh.InitSkinnedMeshFromMaya, Texture = new TextureFromFile("Models/Effects/LavaMist1.png"), HasAlpha = true, DontSort = true, ReceivesAmbientLight = Priority.Never, ReceivesDiffuseLight = Priority.Never, }; VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)MainGraphic); PickingLocalBounding = CreateBoundingMeshFromModel((MetaModel)MainGraphic); PhysicsLocalBounding = null; EditorPlacementLocalBounding = new Common.Bounding.Cylinder(Vector3.Zero, 3, 0.1f); EditorRandomRotation = true; FadeoutTime = 1f; Updateable = false; }