public virtual void Local_FireWeapon(ViewModel vm, ItemRepresentation itemRep, IMeleeWeaponItem itemInstance, ref HumanController.InputSample sample) { this.StartSwingWorldAnimations(itemRep); if (vm != null) { vm.PlayFireAnimation(); } itemInstance.QueueSwingSound(Time.time + this.swingSoundDelay); itemInstance.QueueMidSwing(Time.time + this.midSwingDelay); if (itemRep.networkViewIsMine) { itemRep.Action(3, RPCMode.Server); } }
public static void PlayerGatherWood(IMeleeWeaponItem rec, ResourceTarget rt, ref ItemDataBlock db, ref int amount, ref string name) { Magma.Player player = Magma.Player.FindByNetworkPlayer(rec.inventory.networkView.owner); GatherEvent ge = new GatherEvent(rt, db, amount) { Item = "Wood" }; if (OnPlayerGathering != null) { OnPlayerGathering(player, ge); } db = Magma.Server.GetServer().Items.Find(ge.Item); amount = ge.Quantity; name = ge.Item; }
public static void PlayerGatherWood(IMeleeWeaponItem rec, ResourceTarget rt, ref ItemDataBlock db, ref int amount, ref string name) { try { Fougerite.Player player = Fougerite.Player.FindByNetworkPlayer(rec.inventory.networkView.owner); //Fougerite.Player player = Fougerite.Server.Cache[rec.inventory.networkView.owner.id]; GatherEvent ge = new GatherEvent(rt, db, amount); ge.Item = "Wood"; if (OnPlayerGathering != null) { OnPlayerGathering(player, ge); } db = Fougerite.Server.GetServer().Items.Find(ge.Item); amount = ge.Quantity; name = ge.Item; } catch { } }
public void AutoWood() { if (CVars.Misc.AutoWood) { WoodBlockerTemp.numWood = -1f; Character component = PlayerClient.GetLocalPlayer().controllable.GetComponent <Character>(); Inventory inventory = component.GetComponent(typeof(Inventory)) as Inventory; MeleeWeaponItem <MeleeWeaponDataBlock> meleeWeaponItem = inventory._activeItem as MeleeWeaponItem <MeleeWeaponDataBlock>; if (inventory._activeItem is MeleeWeaponItem <MeleeWeaponDataBlock> && Time.time - this.LAST_ATTACK_TIME > meleeWeaponItem.datablock.fireRate && this.AUTO_WOOD_GATHER) { this.LAST_ATTACK_TIME = Time.time; ItemRepresentation itemRepresentation = meleeWeaponItem.itemRepresentation; IMeleeWeaponItem meleeWeaponItem2 = meleeWeaponItem.iface as IMeleeWeaponItem; RaycastHit2 raycastHit; bool flag = Physics2.Raycast2(component.eyesRay, out raycastHit, meleeWeaponItem.datablock.range, 406721553); Vector3 point = raycastHit.point; itemRepresentation.Action(3, uLink.RPCMode.Server); uLink.BitStream bitStream = new uLink.BitStream(false); if (flag) { IDMain idMain = raycastHit.idMain; bitStream.WriteBoolean(true); bitStream.Write <NetEntityID>(NetEntityID.Get(idMain), new object[0]); bitStream.WriteVector3(point); bitStream.WriteBoolean(false); itemRepresentation.ActionStream(1, uLink.RPCMode.Server, bitStream); HUDHitIndicator hUDHitIndicator; if (Facepunch.Bundling.Load <HUDHitIndicator>("content/hud/HUDHitIndicator", out hUDHitIndicator)) { HUDHitIndicator.CreateIndicator(point, true, hUDHitIndicator); } } else { bitStream.WriteBoolean(false); bitStream.WriteVector3(Vector3.zero); bitStream.WriteBoolean(true); itemRepresentation.ActionStream(1, uLink.RPCMode.Server, bitStream); } } } }
public void AutoWood() { if (CVars.Misc.AutoWood) { Character component = PlayerClient.GetLocalPlayer().controllable.GetComponent <Character>(); Inventory inventory = component.GetComponent(typeof(Inventory)) as Inventory; MeleeWeaponItem <MeleeWeaponDataBlock> item = inventory._activeItem as MeleeWeaponItem <MeleeWeaponDataBlock>; if (((inventory._activeItem is MeleeWeaponItem <MeleeWeaponDataBlock>) && ((Time.time - this.LAST_ATTACK_TIME) > item.datablock.fireRate)) && this.AUTO_WOOD_GATHER) { RaycastHit2 hit; this.LAST_ATTACK_TIME = Time.time; ItemRepresentation itemRepresentation = item.itemRepresentation; IMeleeWeaponItem iface = item.iface as IMeleeWeaponItem; bool flag = Physics2.Raycast2(component.eyesRay, out hit, item.datablock.range, 0x183e1411); Vector3 point = hit.point; itemRepresentation.Action(3, uLink.RPCMode.Server); uLink.BitStream stream = new uLink.BitStream(false); if (flag) { HUDHitIndicator indicator; IDMain idMain = hit.idMain; stream.WriteBoolean(true); stream.Write <NetEntityID>(NetEntityID.Get((UnityEngine.MonoBehaviour)idMain), new object[0]); stream.WriteVector3(point); stream.WriteBoolean(false); itemRepresentation.ActionStream(1, uLink.RPCMode.Server, stream); if (Bundling.Load <HUDHitIndicator>("content/hud/HUDHitIndicator", out indicator)) { HUDHitIndicator.CreateIndicator(point, true, indicator); } } else { stream.WriteBoolean(false); stream.WriteVector3(Vector3.zero); stream.WriteBoolean(true); itemRepresentation.ActionStream(1, uLink.RPCMode.Server, stream); } } } }
public virtual void Local_SecondaryFire(ViewModel vm, ItemRepresentation itemRep, IMeleeWeaponItem itemInstance, ref HumanController.InputSample sample) { RaycastHit hit; Character character = itemInstance.character; if ((character != null) && Physics.SphereCast(character.eyesRay, 0.3f, out hit, this.GetRange(), 0x183e1411)) { IDBase component = hit.collider.gameObject.GetComponent <IDBase>(); if (component != null) { NetEntityID argument = NetEntityID.Get((MonoBehaviour)component); if ((component.GetLocal <RepairReceiver>() != null) && (argument != NetEntityID.unassigned)) { if (vm != null) { vm.PlayFireAnimation(); } itemInstance.QueueSwingSound(Time.time + this.swingSoundDelay); itemRep.Action <NetEntityID>(2, RPCMode.Server, argument); } } } }
public virtual void Local_MidSwing(ViewModel vm, ItemRepresentation itemRep, IMeleeWeaponItem itemInstance, ref HumanController.InputSample sample) { Character shooterOrNull = itemInstance.character; if (shooterOrNull != null) { BodyPart part; Ray eyesRay = shooterOrNull.eyesRay; bool flag = false; Collider hitCollider = null; Vector3 zero = Vector3.zero; Vector3 up = Vector3.up; NetEntityID unassigned = NetEntityID.unassigned; bool flag2 = false; flag = this.Physics2SphereCast(eyesRay, 0.3f, this.GetRange(), 0x183e1411, out zero, out up, out hitCollider, out part); bool flag3 = false; TakeDamage component = null; if (flag) { IDBase base2; TransformHelpers.GetIDBaseFromCollider(hitCollider, out base2); IDMain main = (base2 == null) ? null : base2.idMain; if (main != null) { unassigned = NetEntityID.Get((MonoBehaviour)main); flag2 = !unassigned.isUnassigned; component = main.GetComponent <TakeDamage>(); if ((component != null) && component.ShouldPlayHitNotification()) { this.PlayHitNotification(zero, shooterOrNull); } } flag3 = hitCollider.gameObject.CompareTag("Tree Collider"); if (flag3) { WoodBlockerTemp blockerForPoint = WoodBlockerTemp.GetBlockerForPoint(zero); if (!blockerForPoint.HasWood()) { flag3 = false; Notice.Popup("", "There's no wood left here", 2f); } else { blockerForPoint.ConsumeWood(this.efficiencies[2]); } } this.DoMeleeEffects(eyesRay.origin, zero, Quaternion.LookRotation(up), hitCollider.gameObject); if ((vm != null) && ((component != null) || flag3)) { vm.CrossFade("pull_out", 0.05f, PlayMode.StopSameLayer, 1.1f); } } BitStream stream = new BitStream(false); if (flag2) { stream.WriteBoolean(flag2); stream.Write <NetEntityID>(unassigned, new object[0]); stream.WriteVector3(zero); } else { stream.WriteBoolean(false); stream.WriteVector3(zero); } stream.WriteBoolean(flag3); itemRep.ActionStream(1, RPCMode.Server, stream); this.EndSwingWorldAnimations(itemRep); } }
private object IOnTreeGather(IMeleeWeaponItem weapon, ResourceTarget resourceNode, int amount) { var value = Interface.CallHook("OnGather", weapon.inventory, resourceNode, null, amount); if (value is int) return value; return null; }
public virtual void Local_SecondaryFire(ViewModel vm, ItemRepresentation itemRep, IMeleeWeaponItem itemInstance, ref HumanController.InputSample sample) { RaycastHit raycastHit; Character character = itemInstance.character; if (character == null) { return; } if (Physics.SphereCast(character.eyesRay, 0.3f, out raycastHit, this.GetRange(), 406721553)) { IDBase component = raycastHit.collider.gameObject.GetComponent <IDBase>(); if (component) { NetEntityID netEntityID = NetEntityID.Get(component); if (component.GetLocal <RepairReceiver>() != null && netEntityID != NetEntityID.unassigned) { if (vm) { vm.PlayFireAnimation(); } itemInstance.QueueSwingSound(Time.time + this.swingSoundDelay); itemRep.Action <NetEntityID>(2, uLink.RPCMode.Server, netEntityID); } } } }
public virtual void Local_MidSwing(ViewModel vm, ItemRepresentation itemRep, IMeleeWeaponItem itemInstance, ref HumanController.InputSample sample) { BodyPart bodyPart; IDBase dBase; IDMain dMain; Character character = itemInstance.character; if (character == null) { return; } Ray ray = character.eyesRay; bool flag = false; Collider collider = null; Vector3 vector3 = Vector3.zero; Vector3 vector31 = Vector3.up; NetEntityID netEntityID = NetEntityID.unassigned; bool flag1 = false; flag = this.Physics2SphereCast(ray, 0.3f, this.GetRange(), 406721553, out vector3, out vector31, out collider, out bodyPart); bool flag2 = false; TakeDamage component = null; if (flag) { TransformHelpers.GetIDBaseFromCollider(collider, out dBase); if (!dBase) { dMain = null; } else { dMain = dBase.idMain; } IDMain dMain1 = dMain; if (dMain1) { netEntityID = NetEntityID.Get(dMain1); flag1 = !netEntityID.isUnassigned; component = dMain1.GetComponent <TakeDamage>(); if (component && component.ShouldPlayHitNotification()) { this.PlayHitNotification(vector3, character); } } flag2 = collider.gameObject.CompareTag("Tree Collider"); if (flag2) { WoodBlockerTemp blockerForPoint = WoodBlockerTemp.GetBlockerForPoint(vector3); if (blockerForPoint.HasWood()) { blockerForPoint.ConsumeWood(this.efficiencies[2]); } else { flag2 = false; Notice.Popup("", "There's no wood left here", 2f); } } this.DoMeleeEffects(ray.origin, vector3, Quaternion.LookRotation(vector31), collider.gameObject); if (vm && (component || flag2)) { vm.CrossFade("pull_out", 0.05f, PlayMode.StopSameLayer, 1.1f); } } uLink.BitStream bitStream = new uLink.BitStream(false); if (!flag1) { bitStream.WriteBoolean(false); bitStream.WriteVector3(vector3); } else { bitStream.WriteBoolean(flag1); bitStream.Write <NetEntityID>(netEntityID, new object[0]); bitStream.WriteVector3(vector3); } bitStream.WriteBoolean(flag2); itemRep.ActionStream(1, uLink.RPCMode.Server, bitStream); this.EndSwingWorldAnimations(itemRep); }
public static void PlayerGatherWood(IMeleeWeaponItem rec, ResourceTarget rt, ref ItemDataBlock db, ref int amount, ref string name) { try { Fougerite.Player player = Fougerite.Player.FindByNetworkPlayer(rec.inventory.networkView.owner); GatherEvent ge = new GatherEvent(rt, db, amount); ge.Item = "Wood"; if (OnPlayerGathering != null) { OnPlayerGathering(player, ge); } db = Fougerite.Server.GetServer().Items.Find(ge.Item); amount = ge.Quantity; name = ge.Item; } catch (Exception ex) { Logger.LogException(ex); } }