SanAndreasUnity/Assets/Scripts/UI/WeaponsWindow.cs

102 lines
2.2 KiB
C#
Raw Normal View History

2020-05-31 17:07:22 +00:00
using System.Collections.Generic;
using UnityEngine;
using SanAndreasUnity.Importing.Items;
using SanAndreasUnity.Behaviours;
using System.Linq;
using SanAndreasUnity.Utilities;
2019-07-08 15:18:17 +00:00
using SanAndreasUnity.Net;
2020-05-31 17:07:22 +00:00
namespace SanAndreasUnity.UI {
public class WeaponsWindow : PauseMenuWindow {
WeaponsWindow() {
// set default parameters
this.windowName = "Weapons";
this.useScrollView = true;
}
void Start () {
this.RegisterButtonInPauseMenu ();
// adjust rect
this.windowRect = Utilities.GUIUtils.GetCenteredRect( new Vector2( 600, 400 ) );
}
protected override void OnWindowGUIBeforeContent ()
{
base.OnWindowGUIBeforeContent ();
bool playerExists = Ped.Instance != null;
if (playerExists)
{
GUILayout.BeginHorizontal ();
2019-04-24 22:23:10 +00:00
if (GUILayout.Button ("Add random weapons", GUILayout.ExpandWidth(false)))
2019-07-08 15:18:17 +00:00
PlayerRequests.Local.AddRandomWeapons ();
2019-04-24 22:23:10 +00:00
GUILayout.Space (5);
2020-05-31 17:07:22 +00:00
if (GUILayout.Button ("Remove all weapons", GUILayout.ExpandWidth(false)))
2019-07-08 15:18:17 +00:00
PlayerRequests.Local.RemoveAllWeapons ();
2020-05-31 17:07:22 +00:00
GUILayout.Space (5);
2019-07-08 19:02:07 +00:00
if (GUILayout.Button ("Remove current weapon", GUILayout.ExpandWidth(false)))
PlayerRequests.Local.RemoveCurrentWeapon ();
GUILayout.Space (5);
2020-05-31 17:07:22 +00:00
if (GUILayout.Button ("Give ammo", GUILayout.ExpandWidth (false)))
2019-07-08 15:18:17 +00:00
PlayerRequests.Local.GiveAmmo();
2020-05-31 17:07:22 +00:00
GUILayout.EndHorizontal ();
GUILayout.Space (15);
}
}
protected override void OnWindowGUI ()
{
// display all weapons from the game
// add option to add them to player
bool playerExists = Ped.Instance != null;
// var defs = Item.GetDefinitions<Importing.Items.Definitions.WeaponDef> ();
var datas = Importing.Weapons.WeaponData.LoadedWeaponsData.DistinctBy( wd => wd.weaponType );
foreach (var data in datas) {
GUILayout.Label ("Id: " + data.modelId1 + " Name: " + data.weaponType + " Slot: " + data.weaponslot +
" Flags: " + ( null == data.gunData ? "" : string.Join(" ", data.gunData.Flags) ) );
if (playerExists) {
if (GUILayout.Button ("Give", GUILayout.Width(70))) {
// give weapon to player
2019-07-08 15:18:17 +00:00
PlayerRequests.Local.GiveWeapon(data.modelId1);
2020-05-31 17:07:22 +00:00
}
}
GUILayout.Space (5);
}
}
}
}