Example #1
0
            public bool TryDoCommand(Players.Player id, string chatItem, List <string> splits)
            {
                if (splits.Count >= 1 && splits[0] == "/speed")
                {
                    if (!PermissionsManager.CheckAndWarnPermission(id, (PermissionsManager.Permission) "FastGlider.speed"))
                    {
                        return(true);
                    }

                    if (splits.Count == 1)
                    {
                        Chat.Send(id, "Set the speed using /speed [speed]");
                        return(true);
                    }
                    else if (splits.Count == 2 && splits[0] == "/speed")
                    {
                        int result;
                        if (!int.TryParse(splits[1], out result))
                        {
                            Chat.Send(id, "Could not parse [" + splits[1] + "] as a number.", EChatSendOptions.Default);
                            return(true);
                        }
                        if (result <= 0)
                        {
                            Chat.Send(id, "Speed cannot be 0 or lower. Use 2 to reset glider to default speed", EChatSendOptions.Default);
                            return(true);
                        }
                        FastGlider.SetSpeed(result);
                        Chat.Send(id, "Set Speed to " + result);
                        return(true);
                    }
                }
                return(false);
            }
Example #2
0
 private static void OnClicked(Players.Player sender, PlayerClickedData data)
 {
     if (data.ConsumedType != PlayerClickedData.EConsumedType.Not || data.IsHoldingButton || (data.ClickType != PlayerClickedData.EClickType.Right || data.OnBuildCooldown) || (data.HitType != PlayerClickedData.EHitType.Block || (int)data.TypeSelected != (int)ItemTypes.GetType(settings.ItemTypeName).ItemIndex || !sender.Inventory.TryRemove(data.TypeSelected, 1, -1, true)))
     {
         return;
     }
     data.ConsumedType = PlayerClickedData.EConsumedType.UsedAsTool;
     FastGlider.CreateGlider(data.GetExactHitPositionWorld() + settings.SpawnOffset, Quaternion.identity, FastGlider.CreateVehicleDescription(MeshedObjectID.GetNew()), (Players.Player)null);
 }
Example #3
0
        private static void LoadGliders(JObject rootObj)
        {
            JToken jtoken1;

            if (!rootObj.TryGetValue("transports", out jtoken1))
            {
                return;
            }
            if (jtoken1.Type != JTokenType.Array)
            {
                Log.WriteWarning("Didn't load gliders as transports wasn't an array");
            }
            else
            {
                JArray jarray = (JArray)jtoken1;
                int    count  = jarray.Count;
                for (int index = 0; index < count; ++index)
                {
                    JToken jtoken2 = jarray[index];
                    if (jtoken2.Type == JTokenType.Object)
                    {
                        JObject jobject = (JObject)jtoken2;
                        if (jobject.TryGetValue("type", out jtoken2) && jtoken2.Type == JTokenType.String)
                        {
                            if (!(jtoken2.Value <string>() != "fastglider"))
                            {
                                try
                                {
                                    Vector3    spawnPosition = ReadVector3((JObject)jobject["position"]);
                                    Quaternion rotation      = Quaternion.Euler(ReadVector3((JObject)jobject["rotation"]));
                                    MeshedVehicleDescription vehicleDescription = FastGlider.CreateVehicleDescription(MeshedObjectID.GetNew());
                                    Players.Player           player             = (Players.Player)null;
                                    JToken jtoken3;
                                    if (jobject.TryGetValue("player", out jtoken3) && jtoken3.Type == JTokenType.String)
                                    {
                                        player = Players.GetPlayer(NetworkID.Parse((string)jtoken3));
                                        MeshedObjectManager.Attach(player, vehicleDescription);
                                    }
                                    FastGlider.CreateGlider(spawnPosition, rotation, vehicleDescription, player);
                                }
                                catch (Exception ex)
                                {
                                    Log.WriteException("Exception loading gliders:", ex);
                                }
                            }
                        }
                    }
                }
            }

            Vector3 ReadVector3(JObject obj)
            {
                return(new Vector3(obj.Value <float>((object)"x"), obj.Value <float>((object)"y"), obj.Value <float>((object)"z")));
            }
        }