public bool TryGetValue(UnitDefinition unit, out CreatureSpriteCollection collection) { CreatureSpriteCollection.Special special = CreatureSpriteCollection.Special.Normal; UnitFlags3 flags3 = (UnitFlags3)unit.flags3; if ((flags3 & UnitFlags3.ghostly) == UnitFlags3.ghostly) { special = CreatureSpriteCollection.Special.Ghost; } else if (unit.inventory.FindIndex(x => x.mode == InventoryMode.Weapon) >= 0) { special = CreatureSpriteCollection.Special.Military; } CasteDictionary dict; if (TryGetValue(special, out dict) && dict.TryGetValue(unit, out collection)) { return(true); } else if (TryGetValue(CreatureSpriteCollection.Special.Normal, out dict) && dict.TryGetValue(unit, out collection)) { return(true); } collection = default(CreatureSpriteCollection); return(false); }
private void UpdateFlags(Creature selectedUnit) { for (int i = 0; i < 32; i++) { uint item = 1u << i; UnitFlags1 flag = (UnitFlags1)item; string name = flag.ToString(); bool enabled = (selectedUnit.flags1 & flag) == flag; flag1List[i].Enabled = enabled; } for (int i = 0; i < 32; i++) { uint item = 1u << i; UnitFlags2 flag = (UnitFlags2)item; string name = flag.ToString(); bool enabled = (selectedUnit.flags2 & flag) == flag; flag2List[i].Enabled = enabled; } for (int i = 0; i < 29; i++) { uint item = 1u << i; UnitFlags3 flag = (UnitFlags3)item; string name = flag.ToString(); bool enabled = (selectedUnit.flags3 & flag) == flag; flag3List[i].Enabled = enabled; } }
public MainWindow() { InitializeComponent(); UnitList = new ObservableCollection <Creature>(); RaceList = new ObservableCollection <Creature>(); flag1List = new ObservableCollection <FlagDisplay>(); flag2List = new ObservableCollection <FlagDisplay>(); flag3List = new ObservableCollection <FlagDisplay>(); unitListView.ItemsSource = UnitList; raceListView.ItemsSource = RaceList; flags1ListView.ItemsSource = flag1List; flags2ListView.ItemsSource = flag2List; flags3ListView.ItemsSource = flag3List; for (int i = 0; i < 32; i++) { uint item = 1u << i; UnitFlags1 flag = (UnitFlags1)item; string name = flag.ToString(); name = name.Replace('_', ' '); name = TI.ToTitleCase(name); flag1List.Add(new FlagDisplay() { Name = name, Enabled = false }); } for (int i = 0; i < 32; i++) { uint item = 1u << i; UnitFlags2 flag = (UnitFlags2)item; string name = flag.ToString(); name = name.Replace('_', ' '); name = TI.ToTitleCase(name); flag2List.Add(new FlagDisplay() { Name = name, Enabled = false }); } for (int i = 0; i < 29; i++) { uint item = 1u << i; UnitFlags3 flag = (UnitFlags3)item; string name = flag.ToString(); name = name.Replace('_', ' '); name = TI.ToTitleCase(name); flag3List.Add(new FlagDisplay() { Name = name, Enabled = false }); } }
void ShowCursorInfo() { cursorProperties.text = ""; cursorProperties.text += "Cursor: "; cursorProperties.text += cursX + ","; cursorProperties.text += cursY + ","; cursorProperties.text += cursZ + "\n"; var maybeTile = MapDataStore.Main[cursX, cursY, cursZ]; if (maybeTile != null) { var tile = maybeTile.Value; cursorProperties.text += "Tiletype:\n"; var tiletype = DFConnection.Instance.NetTiletypeList.tiletype_list [tile.tileType]; cursorProperties.text += tiletype.name + "\n"; cursorProperties.text += tiletype.shape + ":" + tiletype.special + ":" + tiletype.material + ":" + tiletype.variant + ":" + tiletype.direction + "\n"; var mat = tile.material; cursorProperties.text += "Material: "; cursorProperties.text += mat.mat_type + ","; cursorProperties.text += mat.mat_index + "\n"; if (materials.ContainsKey(mat)) { cursorProperties.text += "Material Name: "; cursorProperties.text += materials[mat].id + "\n"; } else { cursorProperties.text += "Unknown Material\n"; } cursorProperties.text += "\n"; var basemat = tile.base_material; cursorProperties.text += "Base Material: "; cursorProperties.text += basemat.mat_type + ","; cursorProperties.text += basemat.mat_index + "\n"; if (materials.ContainsKey(basemat)) { cursorProperties.text += "Base Material Name: "; cursorProperties.text += materials[basemat].id + "\n"; } else { cursorProperties.text += "Unknown Base Material\n"; } cursorProperties.text += "\n"; var layermat = tile.layer_material; cursorProperties.text += "Layer Material: "; cursorProperties.text += layermat.mat_type + ","; cursorProperties.text += layermat.mat_index + "\n"; if (materials.ContainsKey(layermat)) { cursorProperties.text += "Layer Material Name: "; cursorProperties.text += materials[layermat].id + "\n"; } else { cursorProperties.text += "Unknown Layer Material\n"; } cursorProperties.text += "\n"; var veinmat = tile.vein_material; cursorProperties.text += "Vein Material: "; cursorProperties.text += veinmat.mat_type + ","; cursorProperties.text += veinmat.mat_index + "\n"; if (materials.ContainsKey(veinmat)) { cursorProperties.text += "Vein Material Name: "; cursorProperties.text += materials[veinmat].id + "\n"; } else { cursorProperties.text += "Unknown Vein Material\n"; } cursorProperties.text += "\n"; var cons = tile.construction_item; cursorProperties.text += "Construction Item: "; cursorProperties.text += cons.mat_type + ","; cursorProperties.text += cons.mat_index + "\n"; if (materials.ContainsKey(cons)) { cursorProperties.text += "Construction Item Name: "; cursorProperties.text += items[cons].id + "\n"; } else { cursorProperties.text += "Unknown Construction Item\n"; } } if (unitList != null) { foreach (UnitDefinition unit in unitList.creature_list) { UnitFlags1 flags1 = (UnitFlags1)unit.flags1; UnitFlags2 flags2 = (UnitFlags2)unit.flags2; UnitFlags3 flags3 = (UnitFlags3)unit.flags3; if (((flags1 & UnitFlags1.dead) == UnitFlags1.dead) || ((flags1 & UnitFlags1.left) == UnitFlags1.left)) { continue; } if (unit.pos_x != cursX || unit.pos_y != cursY || unit.pos_z != cursZ) { continue; } CreatureRaw creatureRaw = null; if (DFConnection.Instance.NetCreatureRawList != null) { creatureRaw = DFConnection.Instance.NetCreatureRawList.creature_raws[unit.race.mat_type]; } if (creatureRaw != null) { cursorProperties.text += "Unit: \n"; cursorProperties.text += "Race: "; cursorProperties.text += creatureRaw.creature_id + ":"; cursorProperties.text += creatureRaw.caste[unit.race.mat_index].caste_id; cursorProperties.text += "\n"; cursorProperties.text += flags1 + "\n"; cursorProperties.text += flags2 + "\n"; cursorProperties.text += flags3 + "\n"; } break; } } }