- Animated Human Sprite: 64x64 pixel character with skin, black hair, blue shirt, brown pants, and black shoes
- Walking Animation: Arms and legs animate with opposite motion (realistic walking pattern)
- Smooth Movement: 200 pixels/second movement speed with arrow key controls
- Camera Following: Camera centers on player and follows movement
- Health System: Player health can be damaged and restored through gameplay
- Infinite World: Minecraft-like infinite terrain generation
- Grass Background: Seamless tiled grass texture covering the entire world
- Fixed Viewport: 800x600 camera view regardless of screen size
- Chunk-Based Rendering: Only renders visible areas for optimal performance
- Cactus Damage: Walking into cacti damages the player, adding environmental danger to exploration
- Collision Detection: Cacti have collision boxes that trigger damage on contact
- Three Tree Types:
- Regular Trees: 64x64 brown trunk with green leaves
- Apple Trees: 128x128 larger trees with red apples scattered on leaves - restore player health when harvested
- Banana Trees: Restore player health when harvested
- Random Generation: 5% spawn chance per grass tile with distribution across tree types
- Collision Detection: Players cannot walk through trees (optimized collision boxes)
- Deterministic Placement: Same trees appear in same locations every time
- Destructible: Players can destroy trees by attacking them
- Health Regeneration: Trees that are damaged but not fully destroyed will slowly regain health over time
- Tree Chopping: Attack trees with spacebar key
- Health System: Each tree has 100 health, loses 10 per attack (10 hits to destroy)
- Attack Range:
- Regular Trees: 64px in all directions from center (128x128 attack area)
- Apple Trees: 64px left/right, 128px up/down from center
- Health Bars:
- Appear above trees when attacked (3-second visibility)
- Green background with red overlay showing damage percentage
- Half the width of each tree type (32px for trees, 64px for apple trees)
- Permanent Destruction: Destroyed trees never regenerate
- Collision Removal: Destroyed trees no longer block movement
- Health Restoration: Apple and banana trees provide health recovery when harvested
- Visual Indicator: White circular indicator (16x16 pixels, 70% opacity) shows target tile location
- Automatic Activation: Targeting activates automatically when a placeable item is selected from inventory
- Persistent Targeting: Indicator remains visible as long as an item is selected, allowing multiple placements
- Tile-Based Movement: Target moves in 64-pixel increments aligned to the game's tile grid
- WASD Controls:
- A: Move target left
- W: Move target up
- D: Move target right
- S: Move target down
- Placement Actions:
- Spacebar: Context-sensitive - plants item when targeting is active
- P Key: Alternative planting key
- Target Validation: Indicator changes color based on validity:
- White: Valid placement location
- Red: Invalid placement location (occupied tile, wrong biome, etc.)
- Cancellation: Press ESC to cancel targeting without placing
- Deactivation: Press the item key again to deselect and hide targeting
- Client-Side Only: Target indicator is not visible to other players in multiplayer
- Coordinate Synchronization: Planted items appear at exact same coordinates for all clients
- Server Validation: Server validates placement coordinates before accepting
- Bamboo Sapling Planting: Plant bamboo sapling on sand tiles using the targeting system
- Banana Sapling Planting: Plant banana sapling on grass tiles using the targeting system (inventory slot 5)
- Tree Sapling Planting: Plant tree saplings on grass tiles for regular trees
- Growth Mechanics:
- Planted bamboo grows over 120 seconds into a harvestable bamboo tree
- Planted banana trees grow over 120 seconds into harvestable banana trees
- Planted regular trees grow over 120 seconds into harvestable small trees
- Biome Restrictions:
- Bamboo saplings: Sand biome only
- Banana saplings: Grass biome only
- Tree saplings: Grass biome only
- Tile Occupation Check: Cannot plant on tiles already occupied by trees or other objects
- Inventory Integration: Automatically deducts sapling from inventory on successful planting
- Visual Feedback: Planted sapling sprite appears immediately at target location
- Growth Timer Preservation: Growth progress is saved and restored when loading worlds
- Multiplayer Sync: All planted items synchronized across all connected clients
- Network Validation: Server validates planting location, biome, range, and inventory before accepting
- State Rollback: Failed network operations rollback local state to maintain consistency
- Grid Snapping: All planted items snap to 64x64 tile grid for consistent placement
- Arrow Keys: Move character (Up/Down/Left/Right)
- Spacebar: Context-sensitive action:
- No item selected: Attack nearby trees
- Item selected (targeting active): Plant item at target location
- A/W/D/S: Move targeting indicator (when targeting is active)
- P Key: Plant item at target location (when targeting is active)
- 1-6 Keys: Select/deselect inventory slots (toggle selection)
- Selecting a placeable item activates targeting
- Deselecting an item deactivates targeting
- ESC: Cancel targeting or open/close menu
- Tab: Toggle inventory display
- Fullscreen: Maintains proper scaling and collision detection
- Dedicated Server: Run standalone server for multiplayer gameplay
- Client Connection: Connect to servers via IP address and port
- Player Names: Customizable player names (minimum 3 characters)
- Server Configuration: Configurable via server.properties file
- Network Synchronization: Real-time player position and action updates
- Custom Fence Construction: Build rectangular fence enclosures of any size using collected materials
- 8-Piece Fence System: Complete fence structures using corner and edge pieces in clockwise sequence
- Material Types: Wood and bamboo fence materials with distinct textures
- Building Mode: Dedicated building mode activated with B key
- Fence Piece Selection: Visual fence piece selector showing all 8 fence types with arrow key navigation
- Dual UI System: Fence selection panel appears above inventory when fence building mode is active
- Grid-Based Placement: 64x64 pixel grid system for precise fence positioning
- Automatic Piece Selection: System automatically selects correct fence piece type based on position
- Visual Feedback: Grid overlay, material count display, fence piece selection, and placement previews
- Interactive Selection: Press B key to activate fence selection mode, use left/right arrows to select fence pieces
- Targeting Integration: Fence selection automatically activates targeting system for precise placement
- Click-to-Build: Left-click to place fence segments, right-click to remove
- Material Collection: Fence materials automatically collected when harvesting trees and bamboo
- Inventory Integration: Fence materials work with existing inventory system and display in Free World mode
- Collision Detection: Fence structures create collision boundaries that block movement
- World Persistence: Fence structures save and load with world data
- Multiplayer Synchronization: Fence building synchronized across all clients
- Ownership System: Players can only remove fence pieces they placed in multiplayer
- Material Conservation: Removing fence pieces returns materials to inventory
- Performance Optimization: Efficient rendering with texture atlasing and viewport culling
- Collision Detection: Precise collision boxes for trees, cacti, and player
- Individual Attack Ranges: Each tree type has unique attack collision detection
- Health Bar Rendering: Dynamic health visualization using ShapeRenderer
- Health Regeneration System: Damaged trees slowly recover health over time
- Environmental Damage: Cactus collision detection and damage system
- Tile Grid System: 64x64 pixel tile-based world with coordinate snapping
- Targeting Validation: Real-time validation of target positions with visual feedback
- Context-Sensitive Input: Spacebar adapts behavior based on game state (attack vs plant)
- Client-Side Rendering: Targeting indicators rendered locally without network transmission
- Server Authority: Server validates all placement actions before accepting
- State Synchronization: Planted objects synchronized across all clients with coordinate consistency
- Memory Management: Proper texture disposal and cleanup
- Performance Optimization: Only processes visible objects
- Modular Design: Separate classes for Player, Tree, AppleTree, TargetingSystem, and environmental objects
- Infinite Generation: Dynamic world expansion without performance loss
- Cleared Position Tracking: Prevents tree regeneration at destroyed locations