Heres the plugin that it is displaying so you can get an idea of how my plugin system would work:
Code: Select all
public class bitm : Meta
{
EnumType Bitmap_Type;
public class EnumType : Enum16
{
public override void AddOptions()
{
AddOption("2D Textures", 0);
AddOption("3D Textures", 1);
AddOption("CubeMap", 2);
AddOption("Sprite", 3);
AddOption("UI Bitmap", 4);
}
}
EnumFormat Bitmap_Format;
public class EnumFormat : Enum16
{
public override void AddOptions()
{
AddOption("DXT1 Encoded", 0);
AddOption("DXT2/3 Encoded", 1);
AddOption("DXT4/5 Encoded", 2);
AddOption("16-Bit Colour", 3);
AddOption("32-Bit Colour", 4);
AddOption("Monochrome", 5);
}
}
EnumUsage Bitmap_Usage;
public class EnumUsage : Enum16
{
public override void AddOptions()
{
AddOption("Alpha Blend", 0);
AddOption("Default", 1);
AddOption("Height Map", 2);
AddOption("Light Map", 3);
AddOption("Vector Map", 4);
AddOption("Height Map BLUE 255", 5);
AddOption("embm", 6);
AddOption("Height Map A8L8", 6);
AddOption("Height Map G8B8", 7);
AddOption("Height Map G8B8 /w Alpha", 8);
}
}
BitMaskFormat Bitmap_Format_Flags;
public class BitMaskFormat : BitMask16
{
protected override void AddBits()
{
AddBit("Enable Diffusion Dithering", 0);
AddBit("Disable Height map compression", 1);
AddBit("Uniform Sprite Sequnces", 2);
AddBit("Filthy Sprite Bugfix", 3);
AddBit("Use Sharp Bump Filter", 4);
AddBit("unused", 5);
AddBit("Use Clamped/Mirrored Bump Filter", 6);
AddBit("Invert Detail Fade", 7);
AddBit("Swap x-y Vector Components", 8);
AddBit("Convert From Signed", 9);
AddBit("Convert To Signed", 10);
AddBit("Import Mipmap Chains", 11);
AddBit("Internationally True Color", 12);
}
}
Float Detail_Fade_Factor;
Float Sharpen_Amount;
Float Bump_Height;
EnumSpriteBudgetSize Sprite_Budget_Size;
public class EnumSpriteBudgetSize : Enum16
{
public override void AddOptions()
{
AddOption("32x32", 0);
AddOption("64x64", 1);
AddOption("128x128", 2);
AddOption("256x256", 3);
AddOption("512x512", 4);
}
}
Int16 Sprite_Budget_Count_Int16;
Int16 Color_Plate_Width;
Int16 Color_Plate_Height;
Int32 Compressed_Color_Plate_Data;
[Size(12)]
Unused Unused_Offset32;
Float Blur_Filter_Size;
Float Alpha_Bias;
Float MipMap_Count;
EnumSpriteUsage Sprite_Usage;
public class EnumSpriteUsage : Enum16
{
public override void AddOptions()
{
AddOption("Blend/Add/Subtract/Max", 0);
AddOption("Multiply/Min", 1);
AddOption("Double Multiply", 2);
}
}
Int16 Sprite_Spacing;
EnumFaceFormat Face_Format;
public class EnumFaceFormat : Enum16
{
public override void AddOptions()
{
AddOption("Default", 0);
AddOption("Force G8B8", 1);
AddOption("Force DXT1", 2);
AddOption("Force DXT3", 3);
AddOption("Force DXT5", 4);
AddOption("Force Alpha-Luminance8", 5);
AddOption("Force A4R4G4B4", 6);
}
}
Reflexive<SequencesChunk> Sequences;
public class SequencesChunk : Chunk
{
// <string32 name="Name" offset="0" visible="True" />
Int16 First_Bitmap_Index;
Int16 Bitmap_Count;
[Size(16)]
Unused Unused_Offset36;
public Reflexive<SpritesChunk> Sprites;
public class SpritesChunk : Chunk
{
Int32 Bitmap_Index;
Unused Unused_Offset4;
Float Left;
Float Right;
Float Top;
Float Bottom;
Float Reg_Point_X;
Float Reg_Point_Y;
}
}
Reflexive<BitmapDataChunk> Bitmap_Data;
public class BitmapDataChunk : Chunk
{
//<tag name="Tag" offset="0" visible="False" />
Int16 Width;
Int16 Height;
Int16 Depth;
Int16 Type;
Int16 Format;
FlagsBitmask Flags;
public class FlagsBitmask : BitMask16
{
protected override void AddBits()
{
AddBit("^2 Dimensions", 0);
AddBit("Compressed", 1);
AddBit("Palettized", 2);
AddBit("Swizzled", 3);
AddBit("Linear", 4);
AddBit("v16u16", 5);
AddBit("HUD Bitmap?", 7);
AddBit("Always On?", 9);
AddBit("Interlaced?", 12);
}
}
Int16 Reg_X;
Int16 Reg_Y;
Int16 MipMap_Count;
Int16 Pixel_Offset;
[Visible(false)]
Int32 Zero;
Int32 LOD1_Offset;
Int32 LOD2_Offset;
Int32 LOD3_Offset;
[Size(12)]
Unused Unused_Offset40;
Int32 LOD1_Size;
Int32 LOD2_Size;
Int32 LOD3_Size;
[Size(12)]
Unused Unused_Offset64;
//<id name="ID" offset="76" visible="True" />
[Size(8)]
Unused Unused_Offset80;
[Visible(false),
Comments("CBZ")]
BitmaskFlagsCBZ Flags_CBZ;
public class BitmaskFlagsCBZ : BitMask32
{
}
Unused Unused_Offset4;
[Visible(false),
Comments("CBZ")]
Int32 Unknown0;
[Visible(false),
Comments("CBZ")]
Int32 Unknown1;
[Visible(false),
Comments("CBZ")]
Int32 Unknown2;
[Visible(false),
Comments("CBZ")]
Int32 Unknown3;
Unused Unused_Offset112;
}
}