Skip to content

Dev Docs: Package Structure

soir20 edited this page Jun 19, 2023 · 3 revisions

Like most Java projects, MoreMcmeta organizes code into packages. This page explains the purpose of each package.

Tests and mocks related to each unit go into the same package in the test directory.

Shared code should go in the common directory. Mod loader-specific code should go in the forge or fabric directories. Mod loader-specific packages should mimic how common packages are organized.

API Packages

  • moremcmeta.api - API code for use by plugin developers
  • moremcmeta.api.client - client-side code used throughout the API
  • moremcmeta.api.client.metadata - API code for working with metadata (parsing and analysis)
  • moremcmeta.api.client.texture - API code for creating texture effects
  • moremcmeta.api.math - any math utilities that plugin developers need (like the Point class)

Internal Packages

  • moremcmeta.impl.adt - abstract data types
  • moremcmeta.impl.client.adapter - adapters to make complex Minecraft code fit MoreMcmeta interfaces
  • moremcmeta.impl.client.io - reading files or information about a texture
  • moremcmeta.impl.client.mixin - Mixins
  • moremcmeta.impl.client.mixinaccess - allows access to Mixin methods since objects cannot be casted to Mixin classes directly
  • moremcmeta.impl.client.resource - resource reloading or retrieval from resource packs
  • moremcmeta.impl.client.texture - textures and their event-driven components

Clone this wiki locally