Skip to content

Survival #61

Open
Open
@GoldenStack

Description

@GoldenStack

I think it's important to get a basic survival demo working, and to then incrementally build on top of that with basic features. If we try to have everything implemented before starting survival, it will be impossible to complete (and will kill motivation). Thus, I propose implementing the most basic features first.

For basic survival, we need:

  • Update to latest version (1.21.5 branch; previously Update Minestom to 1.21.5 #57 (thanks flux))
  • World
    • World loading (like 3 lines of code so no use assigning)
    • Chunk generation moved to "Later features"
  • Block breaking & placing
    • Loot tables (assigned to @GoldenStack )
      • Datapack loading (loading the JAR + file extraction utilities)
      • Block experience (technically not loot tables, but still)
    • Block placement rules (most importantly for doors & beds) (assigned to @Garrett-EMS)
    • (optional) Block hardness calculations (so you can't mine diamonds with your fist)
  • Crafting (assigned to @GoldenStack )
    • (optional) Special recipes like dying leather

Bugs:

  • Inventory click inaccuracy
  • Block placement
    • Placing blocks over overridable blocks (e.g. logs on grass)
    • Placing blocks in the air
  • Crafting
    • Recipe book doesn't work
    • Re-add smithing, cooking, etc. (should be relatively simple)
    • Fix clicks being weird (might need custom handling for shift clicks, etc.)
    • Return items to inventory or drop them on crafting table exit
    • Kick player out of crafting table if too far away

Later features:

  • Experience (points & levels)
  • Block updates (important)
  • Random ticks
    • Farming (crops)
  • Commands
  • Fluids
  • Smelting
  • Mobs
    • Mob loading (from anvil)
    • Mob spawning
    • Mob pathfinding
  • Damage & Combat
    • Projectiles
    • Fall damage
  • Enchanting
  • Consumables
    • Food
    • Potions
  • World generation
    • Structures

Note: I'm not going to be removing any existing VRI code until I'm confident that this survival implementation is of higher quality than it, and those features have been amalgamated into this impl. This means that survival exists on a few new modules, which I'll list here:

  • survival
  • datapack
  • loot-table
  • crafting

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions