private void DrawThing(Rect rect, Thing thing, Pawn selPawn)
{
if (Mouse.IsOver(rect))
{
GUI.color = HighlightColor;
GUI.DrawTexture(rect, TexUI.HighlightTex);
}
if (Widgets.ButtonInvisible(rect) && Event.current.button == 1)
{
List<FloatMenuOption> list = new List<FloatMenuOption>();
list.Add(new FloatMenuOption("ThingInfo".Translate(), delegate
{
Find.WindowStack.Add(new Dialog_InfoCard(thing));
}, MenuOptionPriority.Medium, null, null));
if (selPawn.IsColonistPlayerControlled)
{
Action action = null;
ThingWithComps eq = thing as ThingWithComps;
Apparel ap = thing as Apparel;
if (ap != null)
{
Apparel unused;
action = delegate
{
selPawn.apparel.TryDrop(ap, out unused, selPawn.Position, true);
};
}
else if (eq != null && selPawn.equipment.AllEquipment.Contains(eq))
{
ThingWithComps unused;
action = delegate
{
selPawn.equipment.TryDropEquipment(eq, out unused, selPawn.Position, true);
};
}
else if (!thing.def.destroyOnDrop)
{
Thing unused;
action = delegate
{
selPawn.inventory.container.TryDrop(thing, selPawn.Position, ThingPlaceMode.Near, out unused);
};
}
list.Add(new FloatMenuOption("DropThing".Translate(), action, MenuOptionPriority.Medium, null, null));
}
FloatMenu window = new FloatMenu(list, thing.LabelCap, false);
Find.WindowStack.Add(window);
}
GUI.BeginGroup(rect);
if (thing.def.DrawMatSingle != null && thing.def.DrawMatSingle.mainTexture != null)
{
Widgets.ThingIcon(new Rect(3f, 3f, 27f, 27f), thing);
}
GUI.EndGroup();
TooltipHandler.TipRegion(rect, new TipSignal(thing.LabelCap));
}