예제 #1
0
            public StateMetadata(RSI.StateId stateId, RSI.State.DirectionType dirType, float[][] delays)
            {
                StateId = stateId;
                DirType = dirType;
                Delays  = delays;

                DebugTools.Assert(delays.Length == DirCount);
                DebugTools.Assert(StateId.IsValid);
            }
예제 #2
0
        public bool IsOccluding(RSI rsi, RSI.StateId state, RSI.State.Direction dir, int frame, Vector2i pos)
        {
            if (!_rsiMaps.TryGetValue(rsi, out var rsiData))
            {
                return(false);
            }

            var offset = rsiData.Offsets[state][(int)dir][frame];

            return(SampleClickMap(rsiData.ClickMap, pos, rsi.Size, offset));
        }
예제 #3
0
        public bool IsOccluding(RSI rsi, RSI.StateId state, RSI.State.Direction dir, int frame, Vector2i pos)
        {
            if (!_rsiMaps.TryGetValue(rsi, out var rsiData))
            {
                return(false);
            }

            if (!rsiData.Offsets.TryGetValue(state, out var stateDat) || stateDat.Length <= (int)dir)
            {
                return(false);
            }

            var dirDat = stateDat[(int)dir];

            if (dirDat.Length <= frame)
            {
                return(false);
            }

            var offset = dirDat[frame];

            return(SampleClickMap(rsiData.ClickMap, pos, rsi.Size, offset));
        }
예제 #4
0
 public KeyFrame(RSI.StateId state, float keyTime)
 {
     State   = state;
     KeyTime = keyTime;
 }