101 lines
4.6 KiB
C#
101 lines
4.6 KiB
C#
using Microsoft.Xna.Framework;
|
|
using System;
|
|
using Decimation.Items.Placeable.ShrineoftheMoltenOne;
|
|
using Terraria;
|
|
using Terraria.DataStructures;
|
|
using Terraria.Enums;
|
|
using Terraria.ID;
|
|
using Terraria.ModLoader;
|
|
using Terraria.ObjectData;
|
|
|
|
namespace Decimation.Tiles.ShrineoftheMoltenOne
|
|
{
|
|
class ShrineDoorOpened : ModTile
|
|
{
|
|
public override void SetDefaults()
|
|
{
|
|
Main.tileFrameImportant[Type] = true;
|
|
Main.tileSolid[Type] = false;
|
|
Main.tileLavaDeath[Type] = false;
|
|
Main.tileNoSunLight[Type] = true;
|
|
TileObjectData.newTile.Width = 2;
|
|
TileObjectData.newTile.Height = 3;
|
|
TileObjectData.newTile.Origin = new Point16(0, 0);
|
|
TileObjectData.newTile.AnchorTop = new AnchorData(AnchorType.SolidTile, 1, 0);
|
|
TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile, 1, 0);
|
|
TileObjectData.newTile.UsesCustomCanPlace = true;
|
|
TileObjectData.newTile.LavaDeath = true;
|
|
TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 16 };
|
|
TileObjectData.newTile.CoordinateWidth = 16;
|
|
TileObjectData.newTile.CoordinatePadding = 2;
|
|
TileObjectData.newTile.StyleHorizontal = true;
|
|
TileObjectData.newTile.StyleMultiplier = 2;
|
|
TileObjectData.newTile.StyleWrapLimit = 2;
|
|
TileObjectData.newTile.Direction = TileObjectDirection.PlaceRight;
|
|
TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
|
|
TileObjectData.newAlternate.Origin = new Point16(0, 1);
|
|
TileObjectData.addAlternate(0);
|
|
TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
|
|
TileObjectData.newAlternate.Origin = new Point16(0, 2);
|
|
TileObjectData.addAlternate(0);
|
|
TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
|
|
TileObjectData.newAlternate.Origin = new Point16(1, 0);
|
|
TileObjectData.newAlternate.AnchorTop = new AnchorData(AnchorType.SolidTile, 1, 1);
|
|
TileObjectData.newAlternate.AnchorBottom = new AnchorData(AnchorType.SolidTile, 1, 1);
|
|
TileObjectData.newAlternate.Direction = TileObjectDirection.PlaceLeft;
|
|
TileObjectData.addAlternate(1);
|
|
TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
|
|
TileObjectData.newAlternate.Origin = new Point16(1, 1);
|
|
TileObjectData.newAlternate.AnchorTop = new AnchorData(AnchorType.SolidTile, 1, 1);
|
|
TileObjectData.newAlternate.AnchorBottom = new AnchorData(AnchorType.SolidTile, 1, 1);
|
|
TileObjectData.newAlternate.Direction = TileObjectDirection.PlaceLeft;
|
|
TileObjectData.addAlternate(1);
|
|
TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
|
|
TileObjectData.newAlternate.Origin = new Point16(1, 2);
|
|
TileObjectData.newAlternate.AnchorTop = new AnchorData(AnchorType.SolidTile, 1, 1);
|
|
TileObjectData.newAlternate.AnchorBottom = new AnchorData(AnchorType.SolidTile, 1, 1);
|
|
TileObjectData.newAlternate.Direction = TileObjectDirection.PlaceLeft;
|
|
TileObjectData.addAlternate(1);
|
|
TileObjectData.addTile(Type);
|
|
AddToArray(ref TileID.Sets.RoomNeeds.CountsAsDoor);
|
|
TileID.Sets.HousingWalls[Type] = true; //needed for non-solid blocks to count as walls
|
|
TileID.Sets.HasOutlines[Type] = true;
|
|
ModTranslation name = CreateMapEntryName();
|
|
name.SetDefault("Shrine Door");
|
|
AddMapEntry(new Color(33, 28, 25), name);
|
|
dustType = DustID.Stone;
|
|
disableSmartCursor = true;
|
|
adjTiles = new int[] { TileID.OpenDoor };
|
|
closeDoorID = ModContent.TileType<ShrineDoorClosed>();
|
|
}
|
|
|
|
public override bool HasSmartInteract()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public override void NumDust(int i, int j, bool fail, ref int num)
|
|
{
|
|
num = 1;
|
|
}
|
|
|
|
public override void KillMultiTile(int i, int j, int frameX, int frameY)
|
|
{
|
|
Item.NewItem(i * 16, j * 16, 32, 48, ModContent.ItemType<ShrineDoor>());
|
|
}
|
|
|
|
public override void MouseOver(int i, int j)
|
|
{
|
|
Player player = Main.LocalPlayer;
|
|
player.noThrow = 2;
|
|
player.showItemIcon = true;
|
|
player.showItemIcon2 = ModContent.ItemType<ShrineDoor>();
|
|
}
|
|
|
|
public override bool CanKillTile(int i, int j, ref bool blockDamaged)
|
|
{
|
|
return DecimationWorld.downedArachnus;
|
|
}
|
|
}
|
|
}
|