public override void Init() { Content.ContentPath = "Data"; Content.ContentCachePath = "Cache/"; WorldScene = new WorldScene(this); WorldScene.Camera = new ClientCommon.WalkaroundCamera(this, delegate(float x, float y) { return 0; }); SkinnedMesh goblin1 = content.Get<SkinnedMesh>("death1.x"); gob_model_test = new Model { SkinnedMesh = goblin1, Texture = content.Get<Texture>("death1.png"), Effect = content.Get<Effect>("effects.fx"), HasAlpha = true }; WorldEntity c; WorldScene.Add(c = new WorldEntity() { Model = gob_model_test, }); //c.AnimationController.SetTrackAnimationSet(1, c.AnimationController.GetAnimationSet("cast1")); //c.AnimationController.SetTrackAnimationSet(0, c.AnimationController.GetAnimationSet("cast1")); //c.AnimationController.EnableTrack(1); //c.AnimationController.DisableTrack(1); //c.AnimationController.SetTrackWeight(0, 1); //c/.AnimationController.SetTrackWeight(1, 1); //c.AnimationController.SetTrackPriority(1, TrackPriority.High); //c.AnimationController.SetTrackPriority(0, TrackPriority.Low); //Console.WriteLine(c.AnimationController.GetTrackDescription(1)); //c.AnimationList.Add("0death1", gob_model_test.SkinnedMesh.CloneAnimationObject("0death1")); //c.AnimationList.Add("attack1", gob_model_test.SkinnedMesh.CloneAnimationObject("attack1")); /* WorldScene.Add(c = new WorldEntity() { Model = gob_model_test, Translation = new Vector3(3, 3, 10) }); c.AnimationList.Add("0death1", gob_model_test.SkinnedMesh.CloneAnimationObject("0death1")); WorldScene.Add(c = new WorldEntity() { Model = gob_model_test, Translation = new Vector3(6, 6, 0) }); WorldScene.Add(c = new WorldEntity() { Model = gob_model_test, Translation = new Vector3(6, 3, 0) }); */ }
public WorldScene(View view) : base(view) { selectionModel = new Model { XMesh = view.content.Get<SlimDX.Direct3D9.Mesh>("unitplane.x"), Texture = view.content.Get<Texture>("selectioncircle1.png"), World = Matrix.Scaling(2, 2, 0) * Matrix.Translation(0, 0, 0.1f), HasAlpha = true }; billboardEffect = view.content.Get<Effect>("billboard.fx"); Root = new WorldEntity { Scene = this }; Renderer = new Renderer(Device); }
public NavMeshEditor(View view, WorldScene scene, ScreenToWorld stw, ClientCommon.Mesh plane) { this.view = view; this.scene = scene; this.screenToWorld = stw; vertexModel = new Model { Mesh = plane, IsBillboard = true, Texture = view.content.Get<Texture>("blink.tga"), World = Matrix.Scaling(1, 1, 0), Effect = view.content.Get<Effect>("billboard.fx") }; CreateNextFace(); }
protected virtual void RenderModel(Entity e, Model m, Matrix parentWorld, float dtime) { }
public DropState(WorldView view, NewDropObjectDelegate newDropCallback, Common.Model m, bool randomRotation, Common.Tuple<float, float> randomScale) : base(view) { this.newDropCallback = newDropCallback; view.Scene.ClearSelection(); droppingModel = view.models.GetModel(m); RandomRotation = randomRotation; RandomScale = randomScale; //cylinder = view.content.Get<SlimDX.Direct3D9.Mesh>("unitcylinder.x"); CreateNewDrop(); }
protected override void RenderModel(Entity e, Model m, SlimDX.Matrix parentWorld, float dtime) { if (m != null && m.Visible && e.IsVisible) { RenderObject tmp = new RenderObject { World = m.World * e.World * parentWorld, Model = m, AnimationController = e.AnimationController, AnimList = e.AnimationList, BillboardMatrix = m.World* Matrix.Scaling(e.Scale), BillboardVector = e.Translation }; Renderer.Add(tmp); } if (((WorldEntity)e).IsSelected) { /* Device.SetSamplerState(0, SamplerState.AddressU, TextureAddress.Wrap); Device.SetSamplerState(0, SamplerState.AddressV, TextureAddress.Wrap); Device.SetTexture(0, selectionModel.Texture); Device.SetTransform(TransformState.Projection, Camera.Projection); Device.SetTransform(TransformState.View, Camera.View); Device.SetTransform(TransformState.World, selectionModel.World * Matrix.Translation(e.Translation)); selectionModel.XMesh.DrawSubset(0);*/ if (m.SkinnedMesh != null) { float y = m.SkinnedMesh.maxY - m.SkinnedMesh.minY; float x = m.SkinnedMesh.maxX - m.SkinnedMesh.minX; float r = (float)Math.Sqrt((float)Math.Pow((x / 2), 2) + (float)Math.Pow((y / 2), 2)) / 4; //boundingScales = new Vector3(o.Model.World.M32 * r / 1.2f, o.Model.World.M32 * r / 1.2f, o.Model.World.M32 * z / 1.8f); RenderObject tmp = new RenderObject { Model = selectionModel, World = Matrix.Scaling(new Vector3(m.World.M32 * r * 1.2f, m.World.M32 * r * 1.2f, 1f)) * selectionModel.World * Matrix.Translation(e.Translation) }; Renderer.Add(tmp); } } }