Skip to content

Example Mod Content Update #8

Draft
Jamesp1989SL wants to merge 22 commits intoDrFair:masterfrom
Jamesp1989SL:master
Draft

Example Mod Content Update #8
Jamesp1989SL wants to merge 22 commits intoDrFair:masterfrom
Jamesp1989SL:master

Conversation

@Jamesp1989SL
Copy link
Contributor

@Jamesp1989SL Jamesp1989SL commented Feb 2, 2026

Brand-new content added
• Example Boss Mob (examplebossmob) – a custom boss used by the incursion
• Armor set: examplehelmet, examplechestplate, exampleboots
• Armor set bonus buff: examplearmorsetbonus
• Ore progression + mining objects
• exampleore, examplebar, examplestone
• examplebaserock (base rock object), exampleorerock (ore rock object)
• Wall set objects created via registerWallObjects Example Wall / Door / Window (IDs generated from the “example” wall set)
• New Example Sapling(examplesapling), Example Tree(exampletree) and Example Log(examplelog)
• New Example Chair Object(examplechair) which uses our new logs
Incursion changes (behavior/content changes)
• Boss changed: reaper → examplebossmob
• Extraction objective changed: tungstenore → exampleore
• Incursion level generation expanded: our version adds ExamplePreset placement + guaranteed exampleorerock veins for Extraction incursions
•ExamplePreset uses ExampleLootTable which gives various new items

Renamed/replaced item IDs (repo ID → our ID)
• examplefooditem → examplefood
• examplepotionitem → examplepotion
• examplehuntincursionitem → examplehuntincursionmaterial

@DrFair I have left your comment about the preAntialiasTextures gradle task even though this doesn't appear to be something that exists in the build gradle any more?

Introduces ExampleBossMob, ExampleOreItem, ExampleBaseRockObject, and ExampleOreRockObject, along with their textures and localization. Refactors example incursion classes into a dedicated incursion package, updates incursion logic to use new example objects and items, and registers new mobs, items, and objects in ExampleMod. Adds ExampleAI for mob behavior and updates localization for new content.
Merge pull request DrFair#6 from Jamesp1989SL/master
Introduces ExampleAI and ExampleAILeaf classes to provide custom AI behavior for mobs, including teleporting to incursion entrance and handling chasing and wandering logic. Updates ExampleBossMob to use the new ExampleAI implementation.
Moved sword and projectile weapon classes to a new tools subpackage. Added ExampleBarItem and its associated recipe and icon. Updated item and recipe registration to use new item IDs and structure. Renamed exampleore.png to exampleoreitem.png and updated references. Updated localization and added mob icons.
Introduces a new sound file and registers it with custom settings. Adds ExamplePlaySoundPacket to trigger sound playback on clients, and updates ExampleAILeaf to send this packet when teleporting mobs. Also fixes extraction item ID in ExampleIncursionBiome and moves ExamplePacket to a dedicated packets package.
Standardized item and object IDs by removing 'item' suffixes and updating all references accordingly. Added a new ExampleStoneItem class and registered it. Updated resource file names and localization keys to match new IDs.
Added logic to send a sound packet to clients when the AI leaf fails due to proximity, ensuring sounds are played for both teleport and non-teleport cases. Also added examplestone.png to resources.
Introduces landscaping recipes for examplebaserock and exampleorerock in ExampleRecipes.java. Updates textures for examplebaserock.png, exampleorerock.png, and exampleore.png to reflect new or improved visuals.
Introduces ExampleLootTable and ExamplePreset classes for custom loot and structure generation. Updates ExampleIncursionLevel to use the new preset, demonstrating how to place custom structures and fill them with loot during incursion level generation.
Refactored ExamplePreset to use a script-based preset application instead of manual tile/object placement. Added ExamplePresetCode for the original code-based preset logic, and introduced MissingTextureReporter utility for handling missing texture errors with logging and on-screen notifications.
Introduced ExampleWallWindowDoorObject with registration logic for wall, door, and window objects. Added corresponding textures and updated localization entries for the new objects. Updated ExampleMod to register these new objects during initialization.
Split ExampleMod initialization logic into dedicated loader classes for buffs, commands, incursions, items, mobs, objects, packets, projectiles, resources, and tiles. This improves code organization and readability. Also, moved ExampleRecipes and removed the unused MissingTextureReporter utility.
Introduces example helmet, chestplate, and boots armor items with set bonus buff, including textures and registration. Adds ExampleModCategories for item and crafting category trees, updates item and recipe loaders, and reorganizes example items and buffs into subpackages for better structure. Updates localization for new items, buffs, and categories.
Reworked ExampleModCategories to align with vanilla creative menu roots and subcategories, and updated item/crafting category registration for mod objects. Modified ExampleModObjects to assign new categories to registered objects and added a new object and recipe (exampleobject2) using the new mod-specific category. Updated localization keys to match new category names and structure.
Introduces new ExampleTreeObject, ExampleTreeSaplingObject, ExampleLogItem, and ExampleWoodChairObject classes, along with their registration in loaders and crafting recipes. Adds related item/object categories, updates localization, and includes new/updated resource images for these items and objects. Also renames ExampleSwordItem to ExampleSwordWeapon.
Added 'examplesapling' to the loot table and updated the English localization with 'examplechair'. Also updated the examplesound.ogg sound asset.
Expanded documentation and inline comments in ExampleLootTable, ExamplePreset, and ExamplePresetCode to clarify the structure, usage, and logic of presets and loot tables. These changes improve code readability and serve as a guide for developers learning how to create and use presets and loot tables in the mod.
@Jamesp1989SL Jamesp1989SL marked this pull request as draft February 2, 2026 04:51
Add a new Gradle task (preAntialiasTextures) to run PreAntialiasTextures via Necesse.jar for processing all resource texture folders. The task is grouped under "necesse" and accepts the project resource directories as a semicolon-separated argument. Numerous PNG assets were updated as a result of running the pre-antialiasing process.
Introduce a new example grass system and reorganize map/incursion packages:

- Add ExampleBiome (examples.maps.biomes) and new ExampleModBiomes loader; ExampleMod now loads biomes.
- Implement overworld biome generation, spawn tables, generator stack and region placement logic.
- Add ExampleGrassTile (terrain splatter tile) with growth/spread, loot and rendering logic, plus splat texture.
- Add ExampleGrassObject (drops ExampleGrassSeed) and ExampleGrassSeedItem (places examplegrasstile).
- Register new tile/object/item in ExampleModTiles, ExampleModObjects and ExampleModItems.
- Add resource assets: item and object textures and tile splat PNGs.
- Update locale/en.lang with names for new tile, object and seed.
- Move incursion/map classes into examples.maps.incursion and rename ExampleTile package to examples.tiles; remove old incursion ExampleBiome file.

These changes add a complete example grass biome + gameplay loop (tile growth, objects, and seed drops) and tidy up package structure for map/incursion examples.
Introduce example event plumbing and a placeable object demonstrating LevelEvent and GameEvent usage. Adds ExampleLevelEvent (server-side level event) and ExampleEvent (lightweight game event), an ExampleLevelEventObject that spawns the level event and triggers the game event, and ExampleModEvents to register the level event and a listener. Updates ExampleMod to load the events and registers the new object in ExampleModObjects. Also adds sprites for the object and a locale entry (en.lang).
Introduce a summon weapon and associated summon mob plus event-driven demo changes. Added ExampleSummonOrbWeapon, ExampleSummonWeaponMob, ExampleObjectEntity and new item/mob textures; registered the summon mob and item, and added an iron anvil recipe for the summon orb. Expanded ExampleLevelEvent to support server-side damage/health-change logic and client-side particle effects, plus proper spawn packet serialization. Replaced direct object interaction with an ObjectEntity (ExampleObjectEntity) for tile-based triggers and refactored ExampleLevelEventObject to spawn that entity. Renamed projectile/sword classes and assets for clarity (ExampleProjectileWeapon -> ExampleMagicProjectileWeapon, ExampleSwordWeapon -> ExampleMeleeSwordWeapon) and updated item registrations, recipes, and locale keys/tooltips accordingly. Misc: minor formatting and comments updates across examples and resource additions/deletions for new sprites.
Introduce arrow ammo, a ranged bow, projectile, and associated regen buff plus assets and registry updates. Adds ExampleArrowItem (arrow stats and projectile lookup), ExampleRangedBowWeapon (bow stats/behavior), ExampleArrowProjectile (custom draw, target filtering, hit logic that applies a 4s regen buff and 50% drop chance), and ExampleArrowBuff (server-side heal over time: 5 HP per 250ms). Registers new items, ammo and projectiles in ExampleModItems/ExampleModProjectiles and registers the buff in ExampleModBuffs. Also renamed/moved several example classes/packages (ExampleArmorSetBonusBuff -> ExampleArmorSetBuff, ExampleMagicProjectileWeapon -> ExampleMagicStaffWeapon, ExampleProjectile moved into projectiles package) and updated localization entries and sprite resources.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant