Draft
Conversation
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.
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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?