コード例 #1
0
ファイル: AnimationClip.cs プロジェクト: DelBero/XnaScrap
 /// <summary>
 /// Constructs a new animation clip object.
 /// </summary>
 public AnimationClip(TimeSpan duration, List<Keyframe> keyframes, int[] affectedBones, XnaScrapId clipId)
     : base(duration,clipId)
 {
     Duration = duration;
     Keyframes = keyframes;
     Affects = affectedBones;
 }
コード例 #2
0
ファイル: Camera.cs プロジェクト: DelBero/XnaScrap
        public Camera(IDataReader state, RenderManager renderManager)
            : base(state)
        {
            addInterface(typeof(ICamera));
            m_renderManager = renderManager;

            m_renderTargetId = new XnaScrapId(state);
            IRenderTarget renderTarget = m_renderManager.getRenderTarget(m_renderTargetId);
            if (renderTarget != null)
            {
                renderTarget.Cameras.Add(this);
            }
            m_fovy = state.ReadSingle();
            m_near = state.ReadSingle();
            m_far = state.ReadSingle();
            m_aspect = state.ReadSingle();

            float f = m_fovy * (float)Math.PI / 180.0f;

            m_projection = Matrix.CreatePerspectiveFieldOfView(f, m_aspect, m_near, m_far);

            m_viewport = new _Viewport(state);

            m_renderManager.Cameras.Add(new XnaScrapId("ImplementCameraNamingYouJerk!"), this);
        }
コード例 #3
0
ファイル: ScriptState.cs プロジェクト: DelBero/XnaScrap
 public ScriptState(IDataReader state)
     : base(state)
 {
     addInterface(typeof(IState));
     m_id.deserialize(state);
     m_enterScriptId = new XnaScrapId(state);
     m_exitScriptId = new XnaScrapId(state);
 }
コード例 #4
0
ファイル: State.cs プロジェクト: DelBero/XnaScrap
 public IState transition(XnaScrapId msg)
 {
     if (m_transitions.Keys.Contains(msg))
     {
         return m_transitions[msg];
     }
     return this;
 }
コード例 #5
0
 public RenderTargetCollection(XnaScrapId id, IRenderTarget[] targets)
 {
     m_id = id;
     for (int i = 0; i < 4; ++i)
     {
         if (i < targets.Length)
             Targets[i] = targets[i];
     }
 }
コード例 #6
0
ファイル: State.cs プロジェクト: DelBero/XnaScrap
 public bool addTransition(XnaScrapId msg, IState toState)
 {
     if (!m_transitions.Keys.Contains(msg))
     {
         m_transitions.Add(msg, toState);
         return true;
     }
     return false;
 }
コード例 #7
0
ファイル: ConsoleWriter.cs プロジェクト: DelBero/XnaScrap
 public override void doHandleMessage(IDataReader msg)
 {
     XnaScrapId msgId = new XnaScrapId(msg);
     if (PrintId == msgId)
     {
         String message = msg.ReadString();
         System.Console.WriteLine(message);
     }
     base.doHandleMessage(msg);
 }
コード例 #8
0
ファイル: StaticScale2D.cs プロジェクト: DelBero/XnaScrap
 public override void doHandleMessage(IDataReader msg)
 {
     XnaScrapId msgId = new XnaScrapId(msg);
     if (msgId.Equals(CHANGE_SCALE_MSG_ID))
     {
         m_scale.X = (float)msg.ReadInt32();
         m_scale.Y = (float)msg.ReadInt32();
         OnChanged();
     }
     base.doHandleMessage(msg);
 }
コード例 #9
0
ファイル: ActionService.cs プロジェクト: DelBero/XnaScrap
 public void doHandleMessage(IDataReader msg)
 {
     XnaScrapId msgId = new XnaScrapId(msg);
     if (msgId == NewActionId)
     {
         XnaScrapId action = new XnaScrapId(msg);
         XnaScrapId actor = new XnaScrapId(msg);
         XnaScrapId target = new XnaScrapId(msg);
         newAction(action,actor,target);
     }
 }
コード例 #10
0
 public void addStateMachine(XnaScrapId id, StateMachine stateMachine)
 {
     if (!m_stateMachines.Keys.Contains(id))
     {
         m_stateMachines.Add(id, stateMachine);
     }
     else
     {
         // TODO error handling
     }
 }
コード例 #11
0
ファイル: AnimationService.cs プロジェクト: DelBero/XnaScrap
 /// <summary>
 /// Add an element to the list of active animations
 /// </summary>
 /// <param name="clipId">The animation to use</param>
 /// <param name="aa">The animation player</param>
 /// <param name="startTime">The starting time (offset) within the animation</param>
 /// <param name="eventHandler">Event handler that is called after each frame</param>
 public void animateMe(XnaScrapId clipId,IAbstractAnimation animationPlayer, TimeSpan startTime,bool loop, AnimationChangedEventHandler eventHandler)
 {
     //AnimationInstance newAnimation = new AnimationInstance(animationPlayer as AbstractAnimation, startTime);
     //newAnimation.Start(clipId);
     //newAnimation.Changed += eventHandler;
     //m_activeAnimations.Add(newAnimation);
     if (animationPlayer is AnimationPlayer)
     {
         AnimationPlayer player = animationPlayer as AnimationPlayer;
         player.Start(clipId, loop);
     }
 }
コード例 #12
0
ファイル: AbstractCollider.cs プロジェクト: DelBero/XnaScrap
 public AbstractCollider(IDataReader state)
     : base(state)
 {
     m_collisionGroupId = new XnaScrapId(state);
     int numCollisionGroups = state.ReadInt32();
     for (int i = 0; i < numCollisionGroups; ++i)
     {
         m_collisionGroupIds.Add( new XnaScrapId(state));
     }
     m_relativePos.X = state.ReadSingle();
     m_relativePos.Y = state.ReadSingle();
     m_relativePos.Z = state.ReadSingle();
 }
コード例 #13
0
        public AnimationPosition3D(IDataReader state, AnimationService animationService)
            : base(state)
        {
            addInterface(typeof(IPosition3D));

            m_position.X = state.ReadSingle();
            m_position.Y = state.ReadSingle();
            m_position.Z = state.ReadSingle();

            m_animationId = new XnaScrapId(state);
            IAbstractAnimation player = animationService.getAnimation(XnaScrapId.INVALID_ID);

            animationService.animateMe(m_animationId,player, new TimeSpan(0), false, animationChanged);
        }
コード例 #14
0
 public override void doHandleMessage(IDataReader msg)
 {
     msg.BaseStream.Position = 0;
     XnaScrapId msgId = new XnaScrapId(msg);
     if (msgId == CHANGE_VISIBILITY_MSG_ID)
     {
         Visible = msg.ReadBoolean();
     }
     if (msgId == CHANGE_LAYER_MSG_ID)
     {
         Layer = msg.ReadInt32();
     }
     base.doHandleMessage(msg);
 }
コード例 #15
0
 public PerformanceSegment addPerformanceMeter(XnaScrapId name, bool autoreset = false)
 {
     PerformanceSegment seg;
     if (!m_timer.Keys.Contains(name))
     {
         seg = new PerformanceSegment(name.ToString());
         m_timer.Add(name,seg);
         if (autoreset)
             m_autoreset.Add(seg);
         return seg;
     }
     else
     {
         throw new Exception();
     }
 }
コード例 #16
0
 public void playAnimation(XnaScrapId clipId, bool loop)
 {
     AnimationService animService = Owner.Game.Services.GetService(typeof(AnimationService)) as AnimationService;
     if (animService != null)
     {
         animService.animateMe(clipId, m_animation, TimeSpan.Zero,loop, animationChanged);
     }
 }
コード例 #17
0
ファイル: RenderManager.cs プロジェクト: DelBero/XnaScrap
 public void setRenderTargetEffect(XnaScrapId id, CBeroEffect effect)
 {
     IRenderTarget renderTarget;
     if (m_renderTargets.TryGetValue(id, out renderTarget))
     {
         renderTarget.Effect = effect;
     }
 }
コード例 #18
0
ファイル: RenderManager.cs プロジェクト: DelBero/XnaScrap
 public IRenderTarget getRenderTarget(XnaScrapId id)
 {
     IRenderTarget target;
     if (m_renderTargets.TryGetValue(id, out target))
         return target;
     else
         return null;
 }
コード例 #19
0
ファイル: CollisionManager.cs プロジェクト: DelBero/XnaScrap
 public void registerCollisionGroup(XnaScrapId id, uint value)
 {
     if (!m_collisionGroups.Keys.Contains(id.ToString()))
     {
         m_collisionGroups.Add(id.ToString(), value);
     }
     else
     {
         // TODO error handling
     }
 }
コード例 #20
0
ファイル: CollisionManager.cs プロジェクト: DelBero/XnaScrap
 public uint getCollisionGroup(XnaScrapId id)
 {
     if (m_collisionGroups.Keys.Contains(id.ToString()))
     {
         return m_collisionGroups[id.ToString()];
     }
     return 0;
 }
コード例 #21
0
ファイル: MacroService.cs プロジェクト: DelBero/XnaScrap
 public bool registerMacro(XnaScrapId name, IMacro macro)
 {
     if (!m_registeredMacros.Keys.Contains(name))
     {
         m_registeredMacros.Add(name,macro);
         return true;
     }
     return false;
 }
コード例 #22
0
ファイル: MacroService.cs プロジェクト: DelBero/XnaScrap
 public IMacro getMacro(XnaScrapId name)
 {
     IMacro macro = null;
     m_registeredMacros.TryGetValue(name, out macro);
     return macro;
 }
コード例 #23
0
 public void removeStateMachine(XnaScrapId id)
 {
     if (m_stateMachines.Keys.Contains(id))
     {
         m_stateMachines.Remove(id);
     }
 }
コード例 #24
0
ファイル: State.cs プロジェクト: DelBero/XnaScrap
 public bool canTransition(XnaScrapId msg)
 {
     return m_transitions.Keys.Contains(msg);
 }
コード例 #25
0
 public AbstractAnimationClip(TimeSpan time, XnaScrapId clipId)
 {
     m_time = time;
     m_clipId = clipId;
 }
コード例 #26
0
ファイル: InputContext.cs プロジェクト: DelBero/XnaScrap
 public InputMapping(IDataReader state, Core core)
 {
     m_core = core;
     m_bIsPressed = state.ReadBoolean();
     m_downMsg = new XnaScrapId(state);
     m_upMsg = new XnaScrapId(state);
     m_targetId = new XnaScrapId(state);
     m_message = state.ReadString();
 }
コード例 #27
0
ファイル: AnimationValue.cs プロジェクト: DelBero/XnaScrap
 public override void Start(XnaScrapId animationId, bool loop)
 {
 }
コード例 #28
0
ファイル: AnimationValue.cs プロジェクト: DelBero/XnaScrap
 public AnimationValue(TimeSpan time, XnaScrapId animationId)
     : base(time, animationId)
 {
 }
コード例 #29
0
ファイル: InputContext.cs プロジェクト: DelBero/XnaScrap
 private void execute(XnaScrapId msgId)
 {
     if (msgId != XnaScrapId.INVALID_ID)
     {
         Message msg = new Message(msgId);
         msg.Writer.Write(m_message);
         msg.send(m_core.ObjectBuilder, m_targetId);
     }
 }
コード例 #30
0
ファイル: Renderable3D.cs プロジェクト: DelBero/XnaScrap
 public override void doHandleMessage(IDataReader msg)
 {
     XnaScrapId msgId = new XnaScrapId(msg);
     if (msgId == CHANGE_MODEL_MSG_ID)
     {
         m_modelName = msg.ReadString();
         setModel();
     }
     else if (msgId == CHANGE_MATERIAL_MSG_ID)
     {
         m_materialName = msg.ReadString();
         setMaterial();
     }
     else if (msgId == CHANGE_SCALE_MSG_ID)
     {
         m_scale.X = msg.ReadSingle();
         m_scale.Y = msg.ReadSingle();
         m_scale.Z = msg.ReadSingle();
     }
     base.doHandleMessage(msg);
 }