package region

// Default region configuration values
const (
	// Region check intervals
	RegionCheckInterval     = 1000  // Milliseconds between region checks
	RegionUpdateInterval    = 5000  // Milliseconds between region updates
	RegionCleanupInterval   = 30000 // Milliseconds between cleanup operations
	
	// Region detection parameters
	RegionCheckRadius       = 100.0 // Radius for region detection
	RegionTriggerDistance   = 50.0  // Default trigger distance
	RegionExitDistance      = 75.0  // Distance to exit a region
	
	// Performance limits
	MaxRegionsPerZone       = 1000  // Maximum regions per zone
	MaxPlayersPerRegion     = 200   // Maximum players per region
	MaxRegionChecksPerTick  = 100   // Maximum region checks per processing tick
	
	// File loading constants
	MaxRegionFileSize       = 10485760 // 10MB maximum region file size
	RegionFileBufferSize    = 65536    // Buffer size for reading region files
	
	// Cache settings
	RegionCacheSize         = 500    // Maximum cached region lookups
	RegionCacheExpiryMs     = 60000  // Region cache expiry in milliseconds
	
	// Statistics update intervals
	StatsUpdateInterval     = 5000   // Stats update interval in milliseconds
)

// Region file extensions and types
const (
	RegionFileExtension     = ".region"
	WaterVolumeType        = "watervol"
	WaterRegionType        = "waterregion" 
	WaterRegion2Type       = "water_region"
	OceanType              = "ocean"
	WaterType              = "water"
)

// Default environment names for different region types
const (
	EnvironmentNormal      = "normal"
	EnvironmentWater       = "water"
	EnvironmentLava        = "lava"
	EnvironmentZoneLine    = "zoneline"
	EnvironmentPVP         = "pvp"
	EnvironmentSlime       = "slime"
	EnvironmentIce         = "ice"
	EnvironmentVWater      = "vwater"
)

// Region validation constants
const (
	MinRegionSize          = 1.0     // Minimum region bounding box size
	MaxRegionSize          = 10000.0 // Maximum region bounding box size
	RegionOverlapTolerance = 0.1     // Tolerance for region overlap detection
)

// Region processing priorities
const (
	PriorityLow    = 1
	PriorityNormal = 2
	PriorityHigh   = 3
	PriorityUrgent = 4
)

// Special region IDs
const (
	InvalidRegionID = -1
	DefaultRegionID = 0
	GlobalRegionID  = 999999
)