Exemple #1
0
 public override void OnStateEnter(NpcInput input)
 {
     pathgrid = Pathgrid.LoadPathGrid(input.transform.position);
     if (pathgrid != null)
     {
         movementTarget = pathgrid.GetNearestPoint(input.transform.position);
         var offset = new Vector3(Mathf.FloorToInt(input.transform.position.x / 8192) * 8192, 0, Mathf.FloorToInt(input.transform.position.z / 8192) * 8192);
         targetPos = movementTarget.Position + offset;;
     }
     else
     {
         var pos = Random.insideUnitCircle * input.WanderData.Distance;
         targetPos = input.transform.position + new Vector3(pos.x, 0, pos.y);
     }
 }
Exemple #2
0
    public static void Create(BinaryReader reader)
    {
        var header = new RecordHeader(reader);

        switch (header.Type)
        {
        case RecordType.BirthSign:
            BirthSignRecord.Create(reader, header);
            break;

        case RecordType.BodyPart:
            BodyPartRecord.Create(reader, header);
            break;

        case RecordType.Cell:
            CellRecord.Create(reader, header);
            break;

        case RecordType.Dialogue:
            DialogRecord.Create(reader, header);
            break;

        case RecordType.GameSetting:
            GameSetting.Create(reader, header);
            break;

        case RecordType.Info:
            InfoRecord.Create(reader, header);
            break;

        case RecordType.Land:
            LandRecord.Create(reader, header);
            break;

        case RecordType.LandTexture:
            LandTextureRecord.Create(reader, header);
            break;

        case RecordType.MagicEffect:
            MagicEffectRecord.Create(reader, header);
            break;

        case RecordType.PathGrid:
            Pathgrid.Create(reader, header);
            break;

        case RecordType.Script:
            Script.Create(reader, header);
            break;

        case RecordType.Skill:
            SkillRecord.Create(reader, header);
            break;

        case RecordType.SoundGenerator:
            SoundGenerator.Create(reader, header);
            break;

        case RecordType.Tes3:
            Tes3Record.Create(reader, header);
            break;

        default:
        {
            var size = GotoSubrecord(SubRecordType.Id, header);
            var id   = reader.ReadString(size);
            reader.BaseStream.Position = header.DataOffset + header.DataSize;
            var recordData = CreateRecordData(header.Type);
            recordData.Header = header;
            Records.Add(id, recordData);
            break;
        }
        }
    }