private static void FlyGraphics_ctor(On.FlyGraphics.orig_ctor orig, FlyGraphics self, PhysicalObject ow) { orig(self, ow); customColor = null; World world = ow.abstractPhysicalObject.world; if (world != null && !world.singleRoomWorld && world.region != null) { foreach (KeyValuePair <string, string> keyValues in CustomWorldMod.activatedPacks) { if (CustomWorldMod.installedPacks[keyValues.Key].regionConfig.TryGetValue(world.region.name, out CustomWorldStructs.RegionConfiguration config)) { if (!config.batVanilla) { CustomWorldMod.Log($"Glowing batfly in [{world.region.name}] from [{CustomWorldMod.installedPacks[keyValues.Key].name}]", false, CustomWorldMod.DebugLevel.FULL); customColor = config.batFlyColor; break; } } } } }
private static void FlyGraphics_InitiateSprites(On.FlyGraphics.orig_InitiateSprites orig, FlyGraphics self, RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam) { orig(self, sLeaser, rCam); if (customColor == null) { return; } FlyFields.GetField(self.owner as Fly).numberOfOrigSprites = sLeaser.sprites.Count(); // scrapped return; try { Fly fly = self.owner as Fly; Array.Resize(ref sLeaser.sprites, FlyFields.GetField(fly).numberOfOrigSprites + 1); //LizardJaw3.0 int extra = 0; FlyFields.GetField(fly).bodySprite = FlyFields.GetField(self.owner as Fly).numberOfOrigSprites + extra; sLeaser.sprites[FlyFields.GetField(fly).bodySprite] = new FSprite("LizardJaw3.2", true); sLeaser.sprites[FlyFields.GetField(fly).bodySprite].anchorX = 0.5f; sLeaser.sprites[FlyFields.GetField(fly).bodySprite].anchorY = 0.5f; sLeaser.sprites[FlyFields.GetField(fly).bodySprite].scaleX *= 0.25f; sLeaser.sprites[FlyFields.GetField(fly).bodySprite].scaleY *= -0.3f; extra++; /* Cant be bothered * //LizardBubble6 * FlyFields.GetField(fly).wingEyeL = FlyFields.GetField(self.owner as Fly).numberOfOrigSprites + extra; * sLeaser.sprites[FlyFields.GetField(fly).wingEyeL] = new FSprite("LizardBubble6", true); * sLeaser.sprites[FlyFields.GetField(fly).wingEyeL].scaleX *= 0.25f; * sLeaser.sprites[FlyFields.GetField(fly).wingEyeL].scaleY *= 0.25f; * sLeaser.sprites[FlyFields.GetField(fly).wingEyeL].anchorX -= 0.5f; * sLeaser.sprites[FlyFields.GetField(fly).wingEyeL].anchorY -= 0.5f; * extra++; * * FlyFields.GetField(fly).wingEyeR = FlyFields.GetField(self.owner as Fly).numberOfOrigSprites + extra; * sLeaser.sprites[FlyFields.GetField(fly).wingEyeR] = new FSprite("LizardBubble6", true); * sLeaser.sprites[FlyFields.GetField(fly).wingEyeR].scaleX *= 0.25f; * sLeaser.sprites[FlyFields.GetField(fly).wingEyeR].scaleY *= 0.25f; * sLeaser.sprites[FlyFields.GetField(fly).wingEyeR].anchorX -= 0.5f; * sLeaser.sprites[FlyFields.GetField(fly).wingEyeR].anchorY -= 0.5f; * extra++; */ self.AddToContainer(sLeaser, rCam, null); } catch (Exception e) { CustomWorldMod.Log("Batfly crash " + e, true); } }
// scrapped private static void FlyGraphics_DrawSprites(On.FlyGraphics.orig_DrawSprites orig, FlyGraphics self, RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, float timeStacker, Vector2 camPos) { orig(self, sLeaser, rCam, timeStacker, camPos); Fly fly = self.owner as Fly; sLeaser.sprites[FlyFields.GetField(fly).bodySprite].x = sLeaser.sprites[0].x; sLeaser.sprites[FlyFields.GetField(fly).bodySprite].y = sLeaser.sprites[0].y; sLeaser.sprites[FlyFields.GetField(fly).bodySprite].rotation = sLeaser.sprites[0].rotation; sLeaser.sprites[FlyFields.GetField(fly).wingEyeL].x = sLeaser.sprites[1].x; sLeaser.sprites[FlyFields.GetField(fly).wingEyeL].y = sLeaser.sprites[1].y; sLeaser.sprites[FlyFields.GetField(fly).wingEyeL].rotation = sLeaser.sprites[1].rotation; sLeaser.sprites[FlyFields.GetField(fly).wingEyeR].x = sLeaser.sprites[2].x; sLeaser.sprites[FlyFields.GetField(fly).wingEyeR].y = sLeaser.sprites[2].y; sLeaser.sprites[FlyFields.GetField(fly).wingEyeR].rotation = sLeaser.sprites[2].rotation; }
private static void FlyGraphics_ApplyPalette(On.FlyGraphics.orig_ApplyPalette orig, FlyGraphics self, RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, RoomPalette palette) { orig(self, sLeaser, rCam, palette); if ((self.owner as Creature).dead || customColor == null) { return; } // Eye color sLeaser.sprites[3].color = customColor ?? palette.blackColor; // Scrapped for (int i = FlyFields.GetField(self.owner as Fly).numberOfOrigSprites - 1; i < sLeaser.sprites.Count(); i++) { sLeaser.sprites[i].color = customColor ?? palette.blackColor; } }