Lavagem De Pressao | Script Do Simulador De
class CleanableSurface: float dirt_map[1024][1024] // Virtual texture for dirt (0=clean, 1=mud) float base_resistance // 0.2 (dust) to 0.9 (caked mud) float stain_type // Enum: MUD, OIL, RUST, MOSS function Clean(power, hit_point, angle): // Convert world hit to UV coordinate Vector2 uv = WorldToUV(hit_point) float radius = CalculateSplashRadius(angle) // Inches float total_cleaned = 0.0 for x in -radius to +radius: for y in -radius to +radius: float current_dirt = dirt_map[uv.x + x][uv.y + y] if current_dirt > 0: // Effective cleaning per tick float cleaning_rate = power * delta_time * 0.01 if stain_type == OIL and current_temp > 70: cleaning_rate *= 2.0 // Hot water melts oil float removed = Min(current_dirt, cleaning_rate) dirt_map[uv.x + x][uv.y + y] -= removed total_cleaned += removed // Update visual mesh/material UpdateDecalTexture(dirt_map) return total_cleaned
UpdateUI() // Refresh HUD PlaySound("pump_idle_loop") This is the main loop triggered every frame while the player holds the trigger. Script do Simulador de Lavagem de Pressao
// --- Cleaning System --- float dirt_resistance = 0.0 to 1.0 (0 = clean, 1 = muddy) float heat_effectiveness = 0.5 // Hotter water cleans grease faster Apply cleaning to surface float dirt_removed = hit_surface
// Clamp limits current_temp = Clamp(current_temp, 20.0, 100.0) MOSS function Clean(power
// 1. Consume resources fuel_level -= (0.5 * delta_time) // Fuel drain rate if active_nozzle == NozzleType.SOAP: soap_level -= (1.0 * delta_time) if soap_level <= 0: SwitchNozzle(NozzleType.GREEN) // Auto-switch to water
// 3. Apply cleaning to surface float dirt_removed = hit_surface.Clean(cleaning_power, hit_point, spray_angle)