// Token: 0x060021BF RID: 8639 RVA: 0x000B8088 File Offset: 0x000B6488 private void onRainUpdated(ELightingRain rain) { if (rain != ELightingRain.POST_DRIZZLE) { return; } if (Physics.Raycast(base.transform.position + Vector3.up, Vector3.up, 32f, RayMasks.BLOCK_WIND)) { return; } this._isFull = true; if (Provider.isServer) { BarricadeManager.updateRainBarrel(base.transform, this.isFull, false); } }
// Token: 0x060039EC RID: 14828 RVA: 0x001BA558 File Offset: 0x001B8958 private bool fire(bool mode, out ERefillWaterType newWaterType) { newWaterType = ERefillWaterType.EMPTY; if (base.channel.isOwner) { Ray ray = new Ray(base.player.look.aim.position, base.player.look.aim.forward); RaycastInfo raycastInfo = DamageTool.raycast(ray, 3f, RayMasks.DAMAGE_CLIENT); if (!(raycastInfo.transform != null)) { return(false); } InteractableRainBarrel component = raycastInfo.transform.GetComponent <InteractableRainBarrel>(); InteractableTank component2 = raycastInfo.transform.GetComponent <InteractableTank>(); InteractableObjectResource component3 = raycastInfo.transform.GetComponent <InteractableObjectResource>(); WaterVolume waterVolume; if (WaterUtility.isPointUnderwater(raycastInfo.point, out waterVolume)) { if (mode) { return(false); } if (this.waterType != ERefillWaterType.EMPTY) { return(false); } if (waterVolume == null) { newWaterType = ERefillWaterType.SALTY; } else { newWaterType = waterVolume.waterType; } } else if (component != null) { if (mode) { if (this.waterType != ERefillWaterType.CLEAN) { return(false); } if (component.isFull) { return(false); } newWaterType = ERefillWaterType.EMPTY; } else { if (this.waterType == ERefillWaterType.CLEAN) { return(false); } if (!component.isFull) { return(false); } newWaterType = ERefillWaterType.CLEAN; } } else if (component2 != null) { if (component2.source != ETankSource.WATER) { return(false); } if (mode) { if (this.waterType != ERefillWaterType.CLEAN) { return(false); } if (component2.amount == component2.capacity) { return(false); } newWaterType = ERefillWaterType.EMPTY; } else { if (this.waterType == ERefillWaterType.CLEAN) { return(false); } if (component2.amount == 0) { return(false); } newWaterType = ERefillWaterType.CLEAN; } } else { if (!(component3 != null)) { return(false); } if (component3.objectAsset.interactability != EObjectInteractability.WATER) { return(false); } if (mode) { if (this.waterType == ERefillWaterType.EMPTY) { return(false); } if (component3.amount == component3.capacity) { return(false); } newWaterType = ERefillWaterType.EMPTY; } else { if (this.waterType == ERefillWaterType.CLEAN || this.waterType == ERefillWaterType.DIRTY) { return(false); } if (component3.amount == 0) { return(false); } newWaterType = ERefillWaterType.DIRTY; } } base.player.input.sendRaycast(raycastInfo); } if (Provider.isServer) { if (!base.player.input.hasInputs()) { return(false); } InputInfo input = base.player.input.getInput(true); if (input == null) { return(false); } if ((input.point - base.player.look.aim.position).sqrMagnitude > 49f) { return(false); } WaterVolume waterVolume2; if (WaterUtility.isPointUnderwater(input.point, out waterVolume2)) { if (mode) { return(false); } if (this.waterType != ERefillWaterType.EMPTY) { return(false); } if (waterVolume2 == null) { newWaterType = ERefillWaterType.SALTY; } else { newWaterType = waterVolume2.waterType; } } else if (input.type == ERaycastInfoType.BARRICADE) { if (input.transform == null || !input.transform.CompareTag("Barricade")) { return(false); } InteractableRainBarrel component4 = input.transform.GetComponent <InteractableRainBarrel>(); InteractableTank component5 = input.transform.GetComponent <InteractableTank>(); if (component4 != null) { if (mode) { if (this.waterType != ERefillWaterType.CLEAN) { return(false); } if (component4.isFull) { return(false); } BarricadeManager.updateRainBarrel(component4.transform, true, true); newWaterType = ERefillWaterType.EMPTY; } else { if (this.waterType == ERefillWaterType.CLEAN) { return(false); } if (!component4.isFull) { return(false); } BarricadeManager.updateRainBarrel(component4.transform, false, true); newWaterType = ERefillWaterType.CLEAN; } } else { if (!(component5 != null)) { return(false); } if (component5.source != ETankSource.WATER) { return(false); } if (mode) { if (this.waterType != ERefillWaterType.CLEAN) { return(false); } if (component5.amount == component5.capacity) { return(false); } BarricadeManager.updateTank(input.transform, (ushort)((byte)(component5.amount + 1))); newWaterType = ERefillWaterType.EMPTY; } else { if (this.waterType == ERefillWaterType.CLEAN) { return(false); } if (component5.amount == 0) { return(false); } BarricadeManager.updateTank(input.transform, (ushort)((byte)(component5.amount - 1))); newWaterType = ERefillWaterType.CLEAN; } } } else if (input.type == ERaycastInfoType.OBJECT) { if (input.transform == null) { return(false); } InteractableObjectResource component6 = input.transform.GetComponent <InteractableObjectResource>(); if (component6 == null || component6.objectAsset.interactability != EObjectInteractability.WATER) { return(false); } if (mode) { if (this.waterType == ERefillWaterType.EMPTY) { return(false); } if (component6.amount == component6.capacity) { return(false); } ObjectManager.updateObjectResource(component6.transform, (ushort)((byte)(component6.amount + 1)), true); newWaterType = ERefillWaterType.EMPTY; } else { if (this.waterType == ERefillWaterType.CLEAN || this.waterType == ERefillWaterType.DIRTY) { return(false); } if (component6.amount == 0) { return(false); } ObjectManager.updateObjectResource(component6.transform, (ushort)((byte)(component6.amount - 1)), true); newWaterType = ERefillWaterType.DIRTY; } } } return(true); }