// ReSharper disable once UnusedMember.Local private void Start() { try { // Initialize properties Logger.Info("Setting up KeyManager"); KeyManager = new KeyManager(this); Logger.Info("Setting up SphereAction"); SphereAction = new SphereAction(); Logger.Info("Setting up InstantBuilding"); InstantBuilding = new InstantBuild(this); Logger.Info("Setting up KillAllPlayers"); KillAllPlayers = new KillAllPlayers(this); Logger.Info("Setting up DestroyBuildings"); DestroyBuildings = new DestroyBuildings(this); Logger.Info("Setting up DestroyTrees"); DestroyTrees = new DestroyTrees(this); Logger.Info("Setting up Aura"); Aura = new Aura(this); Logger.Info("Initialization completed!"); } catch (Exception e) { Logger.Exception("Error initializing properites", e); } }
// ReSharper disable once UnusedMember.Local private void Start() { try { Instance = this; // Initialize properties Logger.Info($"Setting up {nameof(KeyManager)}"); KeyManager = new KeyManager(this); Logger.Info($"Setting up {nameof(PlayerManager)}"); PlayerManager = new PlayerManager(this); Logger.Info($"Setting up {nameof(SphereAction)}"); SphereAction = new SphereAction(); Logger.Info($"Setting up {nameof(InstantBuilding)}"); InstantBuilding = new InstantBuild(this); Logger.Info($"Setting up {nameof(KillAllPlayers)}"); KillAllPlayers = new KillAllPlayers(this); Logger.Info($"Setting up {nameof(DestroyBuildings)}"); DestroyBuildings = new DestroyBuildings(this); Logger.Info($"Setting up {nameof(DestroyTrees)}"); DestroyTrees = new DestroyTrees(this); Logger.Info($"Setting up {nameof(Aura)}"); Aura = new Aura(this); Logger.Info($"Setting up {nameof(ChatManager)}"); ChatManager = new ChatManager(this); Logger.Info($"Setting up {nameof(VoiceManager)}"); VoiceManager = new VoiceManager(this); Logger.Info("Initialization completed!"); } catch (Exception e) { Logger.Exception("Error initializing properites", e); } }
public override LocalAction checkMutation(LocalApplication app, Index p, Vector3 diff, float voxelSize) { SphereApp sApp = (SphereApp)app; SphereAction action = new SphereAction(); action.disSqr = diff.sqrMagnitude; action.maxRadius = sApp.radius + voxelSize; float maxRadSqr = action.maxRadius * action.maxRadius; if (action.disSqr > maxRadSqr) return action; action.modify = true; action.minRadius = Mathf.Max(0, sApp.radius - voxelSize); float minRadSqr = action.minRadius * action.minRadius; if (!overwriteShape || action.disSqr >= minRadSqr) action.doTraverse = true; return action; }
public override Voxel mutate(LocalApplication app, Index p, LocalAction action, Voxel original) { SphereApp sApp = (SphereApp)app; SphereAction sAction = (SphereAction)action; float dis = Mathf.Sqrt(sAction.disSqr); byte newOpacity = (dis <= sAction.minRadius) ? value.averageOpacity() : (byte)((original.averageOpacity() * (dis - sAction.minRadius) + value.averageOpacity() * (sAction.maxRadius - dis)) / 2); byte newSubstance = original.averageMaterialType(); if (newOpacity >= 2 * original.averageOpacity() || (overwriteSubstance && dis < sApp.radius)) { newSubstance = value.averageMaterialType(); } if (!overwriteShape) { newOpacity = original.averageOpacity(); } return(new Voxel(newSubstance, newOpacity)); }
public override LocalAction checkMutation(LocalApplication app, Index p, Vector3 diff, float voxelSize) { SphereApp sApp = (SphereApp)app; SphereAction action = new SphereAction(); action.disSqr = diff.sqrMagnitude; action.maxRadius = sApp.radius + voxelSize; float maxRadSqr = action.maxRadius * action.maxRadius; if (action.disSqr > maxRadSqr) { return(action); } action.modify = true; action.minRadius = Mathf.Max(0, sApp.radius - voxelSize); float minRadSqr = action.minRadius * action.minRadius; if (action.disSqr >= minRadSqr) { action.doTraverse = true; } return(action); }
// ReSharper disable once UnusedMember.Local private void Update() { try { if (BoltNetwork.isRunning && LocalPlayer.Entity != null && LocalPlayer.Entity.isAttached) { PlayerName = LocalPlayer.Entity.GetState <IPlayerState>().name; } } catch (Exception) { // ignored } if (ChatBox.IsChatOpen) { return; } if (OnTick != null) { try { foreach (var action in OnTick.GetInvocationList()) { try { action.DynamicInvoke(this, EventArgs.Empty); } catch (Exception e) { Logger.Exception($"Exception while notifying {nameof(OnTick)} listener: " + action.GetType().Name, e); } } } catch (Exception e) { Logger.Exception($"Exception while looping over {nameof(OnTick)} listeners", e); } } if (BoltNetwork.isRunning) { // Visible player if (Menu.Values.Self.Visible && LocalPlayer.Entity != null && !LocalPlayer.Entity.isAttached) { Utility.AttachLocalPlayer(); } // Invisible player else if (!Menu.Values.Self.Visible && LocalPlayer.Entity != null && LocalPlayer.Entity.isAttached) { Utility.DetachLocalPlayer(); } // Add fire trail to movement if (Menu.Values.Self.FireTrail) { var feetPos = LocalPlayer.Transform.position - new Vector3(0, 4, 0); if (Vector3.Distance(LastFirePos, feetPos) > 2 || Environment.TickCount - LastFireTime > 5000) { LastFirePos = feetPos; LastFireTime = Environment.TickCount; BoltPrefabsHelper.Spawn(BoltPrefabs.Fire, feetPos, LocalPlayer.Transform.rotation); } } } if (FreeCam && !_lastFreeCam) { LocalPlayer.CamFollowHead.enabled = false; LocalPlayer.CamRotator.enabled = false; LocalPlayer.MainRotator.enabled = false; LocalPlayer.FpCharacter.enabled = false; _lastFreeCam = true; } if (!FreeCam && _lastFreeCam) { LocalPlayer.CamFollowHead.enabled = true; LocalPlayer.CamRotator.enabled = true; LocalPlayer.MainRotator.enabled = true; LocalPlayer.FpCharacter.enabled = true; _lastFreeCam = false; } if (FreeCam && !Menu.IsOpen && !LocalPlayer.FpCharacter.Locked) { var button1 = Input.GetButton("Crouch"); var button2 = Input.GetButton("Run"); var button3 = Input.GetButton("Jump"); var multiplier = 0.1f; if (button2) { multiplier = 2f; } var vector3 = Camera.main.transform.rotation * ( new Vector3(Input.GetAxis("Horizontal"), 0f, Input.GetAxis("Vertical") ) * multiplier); if (button3) { vector3.y += multiplier; } if (button1) { vector3.y -= multiplier; } Camera.main.transform.position += vector3; var rotationX = Camera.main.transform.localEulerAngles.y + Input.GetAxis("Mouse X") * 15f; _rotationY += Input.GetAxis("Mouse Y") * 15f; _rotationY = Mathf.Clamp(_rotationY, -80f, 80f); Camera.main.transform.localEulerAngles = new Vector3(-_rotationY, rotationX, 0); } if (ModAPI.Input.GetButtonDown("FreeCam")) { FreeCam = !FreeCam; } if (ModAPI.Input.GetButton("SphereAction")) { SphereAction?.OnPrepare(); } else { SphereAction?.OnTick(); } if (LocalPlayer.Stats != null) { if (Menu.Values.Stats.FixBodyTemp) { LocalPlayer.Stats.BodyTemp = Menu.Values.Stats.FixedBodyTemp; } if (Menu.Values.Stats.FixBatteryCharge) { LocalPlayer.Stats.BatteryCharge = Menu.Values.Stats.FixedBatteryCharge; } if (Menu.Values.Stats.FixEnergy) { LocalPlayer.Stats.Energy = Menu.Values.Stats.FixedEnergy; } if (Menu.Values.Stats.FixHealth) { LocalPlayer.Stats.Health = Menu.Values.Stats.FixedHealth; } if (Menu.Values.Stats.FixStamina) { LocalPlayer.Stats.Stamina = Menu.Values.Stats.FixedStamina; } if (Menu.Values.Stats.FixFullness) { LocalPlayer.Stats.Fullness = Menu.Values.Stats.FixedFullness; } if (Menu.Values.Stats.FixStarvation) { LocalPlayer.Stats.Starvation = Menu.Values.Stats.FixedStarvation; } if (Menu.Values.Stats.FixThirst) { LocalPlayer.Stats.Thirst = Menu.Values.Stats.FixedThirst; } } if (BoltNetwork.isRunning && Menu.Values.Self.InstaRevive) { foreach (var player in PlayerManager.Players) { var triggerObject = player.DeadTriggerObject; if (triggerObject != null && triggerObject.activeSelf) { var trigger = triggerObject.GetComponent <RespawnDeadTrigger>(); //Logger.Info("Reviving " + player.Entity.GetState<IPlayerState>().name); // Send revive packet var playerHealed = PlayerHealed.Create(GlobalTargets.Others); playerHealed.HealingItemId = trigger._healItemId; playerHealed.HealTarget = player.Entity; PacketQueue.Add(playerHealed); // Set revive trigger inactive trigger.SendMessage("SetActive", false); } } } }
// ReSharper disable once UnusedMember.Local private void Update() { try { if (LocalPlayer.Entity != null && LocalPlayer.Entity.isAttached) { PlayerName = LocalPlayer.Entity.GetState <IPlayerState>().name; } } catch (Exception) { // ignored } if (ChatBox.IsChatOpen) { return; } if (OnTick != null) { try { foreach (var action in OnTick.GetInvocationList()) { try { action.DynamicInvoke(this, EventArgs.Empty); } catch (Exception e) { Logger.Exception("Exception while notifying OnTick listener: " + action.GetType().Name, e); } } } catch (Exception e) { Logger.Exception("Exception while looping over OnTick listeners", e); } } if (Menu.Values.Player.Visible && LocalPlayer.Entity != null && !LocalPlayer.Entity.isAttached) { Utility.AttachLocalPlayer(); } else if (!Menu.Values.Player.Visible && LocalPlayer.Entity != null && LocalPlayer.Entity.isAttached) { Utility.DetachLocalPlayer(); } if (FreezeTime && !LastFreezeTime) { Time.timeScale = 0f; LastFreezeTime = true; } if (!FreezeTime && LastFreezeTime) { Time.timeScale = 1f; LastFreezeTime = false; } if (Menu.Values.Other.FreeCam && !LastFreeCam) { LocalPlayer.CamFollowHead.enabled = false; LocalPlayer.CamRotator.enabled = false; LocalPlayer.MainRotator.enabled = false; LocalPlayer.FpCharacter.enabled = false; LastFreeCam = true; } if (!Menu.Values.Other.FreeCam && LastFreeCam) { LocalPlayer.CamFollowHead.enabled = true; LocalPlayer.CamRotator.enabled = true; LocalPlayer.MainRotator.enabled = true; LocalPlayer.FpCharacter.enabled = true; LastFreeCam = false; } if (Menu.Values.Other.FreeCam && !Menu.IsOpen && !LocalPlayer.FpCharacter.Locked) { var button1 = Input.GetButton("Crouch"); var button2 = Input.GetButton("Run"); var button3 = Input.GetButton("Jump"); var multiplier = 0.1f; if (button2) { multiplier = 2f; } var vector3 = Camera.main.transform.rotation * ( new Vector3(Input.GetAxis("Horizontal"), 0f, Input.GetAxis("Vertical") ) * multiplier); if (button3) { vector3.y += multiplier; } if (button1) { vector3.y -= multiplier; } Camera.main.transform.position += vector3; var rotationX = Camera.main.transform.localEulerAngles.y + Input.GetAxis("Mouse X") * 15f; RotationY += Input.GetAxis("Mouse Y") * 15f; RotationY = Mathf.Clamp(RotationY, -80f, 80f); Camera.main.transform.localEulerAngles = new Vector3(-RotationY, rotationX, 0); } if (ModAPI.Input.GetButtonDown("FreezeTime")) { FreezeTime = !FreezeTime; } if (ModAPI.Input.GetButtonDown("FreeCam")) { Menu.Values.Other.FreeCam = !Menu.Values.Other.FreeCam; } if (ModAPI.Input.GetButton("SphereAction")) { SphereAction?.OnPrepare(); } else { SphereAction?.OnTick(); } if (Menu.Values.Stats.FixBodyTemp) { LocalPlayer.Stats.BodyTemp = Menu.Values.Stats.FixedBodyTemp; } if (Menu.Values.Stats.FixBatteryCharge) { LocalPlayer.Stats.BatteryCharge = Menu.Values.Stats.FixedBatteryCharge; } if (Menu.Values.Stats.FixEnergy) { LocalPlayer.Stats.Energy = Menu.Values.Stats.FixedEnergy; } if (Menu.Values.Stats.FixHealth) { LocalPlayer.Stats.Health = Menu.Values.Stats.FixedHealth; } if (Menu.Values.Stats.FixStamina) { LocalPlayer.Stats.Stamina = Menu.Values.Stats.FixedStamina; } if (Menu.Values.Stats.FixFullness) { LocalPlayer.Stats.Fullness = Menu.Values.Stats.FixedFullness; } if (Menu.Values.Stats.FixStarvation) { LocalPlayer.Stats.Starvation = Menu.Values.Stats.FixedStarvation; } if (Menu.Values.Stats.FixThirst) { LocalPlayer.Stats.Thirst = Menu.Values.Stats.FixedThirst; } }