private static void OnClicked(Players.Player sender, PlayerClickedData data) { if (data == null || data.TypeSelected == default(ushort) || data.ConsumedType != PlayerClickedData.EConsumedType.Not || data.IsHoldingButton || (data.ClickType != PlayerClickedData.EClickType.Right || data.OnBuildCooldown) || (data.HitType != PlayerClickedData.EHitType.Block || !TrainTypes.TryGetValue(ItemId.GetItemId(data.TypeSelected), out var cSType) || !sender.Inventory.TryRemove(data.TypeSelected, 1, -1, true))) { return; } data.ConsumedType = PlayerClickedData.EConsumedType.UsedAsTool; CreateTrain(cSType, data.GetExactHitPositionWorld()); }