public override void AI() { npc.TargetClosest(); npc.timeLeft = NPC.activeTime; switch (stage) { case 0: Initialize(); break; } Vector2 position = npc.position - Main.screenPosition; Vector2 vecBetween = npc.Center - Main.player[npc.target].Center; float polarAngle = DimensionBuilder.CalcAngleAlt((int)vecBetween.X, (int)vecBetween.Y); polarAngle -= (float)Math.PI; if (polarAngle < 0) { polarAngle += 2 * (float)Math.PI; } float rotation = (2 * (float)Math.PI) - polarAngle; //so rotation is what we want to get to rotation %= 2f * (float)Math.PI; if (Math.Abs(npc.rotation - rotation) > Math.PI) { npc.rotation += Math.Sign(npc.rotation - rotation) * ROT_SPEED * 4; } else if (Math.Abs(npc.rotation - rotation) > ROT_SPEED) { float sf = 4f * Math.Abs(npc.rotation - rotation) / (float)Math.PI; npc.rotation -= Math.Sign(npc.rotation - rotation) * ROT_SPEED * sf; } npc.rotation %= 2f * (float)Math.PI; base.AI(); }
public Dimension(Dimensions d) //Loading blank { dimension = d; data = DimensionBuilder.GenerateCompressedEmptyDimension(Main.tile.GetLength(0), Main.tile.GetLength(1)); chest = new Chest[Main.maxChests]; sign = new Sign[Main.maxChests]; }
public Dimension(Dimensions d, TagCompound extraDat) //For current dimension { LoadExtraData(extraDat); data = DimensionBuilder.GenerateCompressedEmptyDimension(Main.tile.GetLength(0), Main.tile.GetLength(1)); chest = new Chest[Main.maxChests]; sign = new Sign[Main.maxChests]; dimension = d; }
public void GivenDimension_WhenDeriving_ThenRequiredRelationsMustExist() { var builder = new DimensionBuilder(this.Session); builder.Build(); Assert.True(this.Session.Derive(false).HasErrors); this.Session.Rollback(); builder.WithName("name"); builder.Build(); Assert.False(this.Session.Derive(false).HasErrors); }
public void GivenDimension_WhenDeriving_ThenRequiredRelationsMustExist() { var builder = new DimensionBuilder(this.DatabaseSession); builder.Build(); Assert.IsTrue(this.DatabaseSession.Derive().HasErrors); this.DatabaseSession.Rollback(); var unitOfMeasure = new UnitOfMeasureBuilder(this.DatabaseSession) .WithName("uom") .Build(); builder.WithUnitOfMeasure(unitOfMeasure); builder.Build(); Assert.IsFalse(this.DatabaseSession.Derive().HasErrors); }
public void Generate(GenerationProgress progress) { switch (dimension) { /* * case Dimensions.Overworld: * progress.Message = "Finishing up overworld"; * data = GetCompressedTileData(Main.tile); * //basicTileData = GetCompressedBasicTileData(Main.tile); * //extraTileData = GetExtraTileData(Main.tile); * chest = Main.chest; * sign = Main.sign; * break; */ case Dimensions.Jungle: progress.Message = "Generating the Jungle Dimension"; DimensionData tilej = DimensionBuilder.GenerateJungleDimension(Main.tile.GetLength(0), Main.tile.GetLength(1)); data = GetCompressedTileData(tilej.tile); chest = tilej.chest; sign = tilej.sign; haveDiscovered = false; name = jungNames[Main.rand.Next(0, jungNames.Length)]; break; case Dimensions.Ice: progress.Message = "Generating the Ice Dimension"; DimensionData tilei = DimensionBuilder.GenerateIceDimension(Main.tile.GetLength(0), Main.tile.GetLength(1)); data = GetCompressedTileData(tilei.tile); chest = tilei.chest; sign = tilei.sign; haveDiscovered = false; name = iceNames[Main.rand.Next(0, iceNames.Length)]; break; case Dimensions.Asteroid: progress.Message = "Generating the Asteroid Dimension"; DimensionData tilea = DimensionBuilder.GenerateAsteroidDimension(Main.tile.GetLength(0), Main.tile.GetLength(1)); data = GetCompressedTileData(tilea.tile); chest = tilea.chest; sign = tilea.sign; haveDiscovered = false; name = astNames[Main.rand.Next(0, astNames.Length)]; break; case Dimensions.Overworld: progress.Message = "Finishing up the overworld"; //(BasicTileData, ExtraTileData) data2 = DimensionBuilder.GenerateCompressedEmptyDimension(Main.tile.GetLength(0), Main.tile.GetLength(1)); //basicTileData = data2.Item1; //extraTileData = data2.Item2; data = DimensionBuilder.GenerateCompressedEmptyDimension(Main.tile.GetLength(0), Main.tile.GetLength(1)); chest = new Chest[Main.maxChests]; sign = new Sign[Main.maxChests]; name = Main.worldName; haveDiscovered = true; break; case Dimensions.Travel: default: name = "---"; haveDiscovered = false; progress.Message = "Generating Empty Space"; //(BasicTileData, ExtraTileData) data2 = DimensionBuilder.GenerateCompressedEmptyDimension(Main.tile.GetLength(0), Main.tile.GetLength(1)); //basicTileData = data2.Item1; //extraTileData = data2.Item2; data = DimensionBuilder.GenerateCompressedEmptyDimension(Main.tile.GetLength(0), Main.tile.GetLength(1)); chest = new Chest[Main.maxChests]; sign = new Sign[Main.maxChests]; break; } }