Author SHA1 Message Date
chylex e98228d280 Add HEE.DIM constant with End dimension ID 2019-12-16 04:46:53 +01:00
chylex 0be16c62e8 Add Autumn Leaves & Saplings w/ tree generation 2019-12-16 01:22:59 +01:00
chylex 2fb8402c17 Add Whitebark Leaves & Sapling classes w/ growth behavior 2019-12-15 22:23:25 +01:00
chylex f7a1ef21e7 Update BlobGenerator & IOreTechnique to use and consider ScaffoldedWorld 2019-12-15 19:21:06 +01:00
chylex c1834f4a3f Add ScaffoldedWorld for small partial structures 2019-12-15 19:21:05 +01:00
chylex 96ef5716dc Implement Ender Causatum event for killing an Enderman 2019-12-14 01:12:02 +01:00
chylex 2680dc47cd Fix instant rotation still interpolating yaw offset in living entities 2019-12-14 00:45:43 +01:00
chylex 403834b984 Add technical entity for managing Ender Causatum events 2019-12-14 00:19:07 +01:00
chylex 08a14fddab Implement Ender Causatum stage triggers for entered territories 2019-12-13 18:27:53 +01:00
chylex 291a61162e Add Angry Enderman & tweak rendering of aggressive Endermen 2019-12-13 17:50:59 +01:00
chylex 830cb39f24 Fix instant TP still causing interpolation & add comment about mob rotation 2019-12-13 17:46:39 +01:00
chylex ae1e8bc0e4 Implement Table dust handling & rendering 2019-12-13 01:20:00 +01:00
chylex 6306e4c7a1 Move common item model rendering code into a utility class 2019-12-12 23:12:25 +01:00
chylex 730958f80d Add Miner's Burial Altar w/ animations and redeem sequence 2019-12-12 18:18:11 +01:00
chylex 7510e08a8f Allow constructing empty MutableWeightedList & combining two lists 2019-12-12 17:09:23 +01:00
chylex 42c38eae61 Delay debug window maximization until game finishes loading 2019-12-11 21:51:07 +01:00
chylex 2884fb2e79 Increase Energy draining rate for items & improve particles w/ reduced setting 2019-12-11 21:16:04 +01:00
chylex 5819d7a3bc Fix setAttackTarget (use event result in Spiderling, document Enderman weirdness) 2019-12-11 20:39:35 +01:00
chylex 7e9d3946cc Time territory generation 2019-12-11 20:32:37 +01:00
chylex 0d1ed428db Fix Spatial Dash Gem texture & expire FX (long distance audio, wrong instant tp pos) 2019-12-11 20:01:56 +01:00
chylex 568259d519 Add Miner's Burial Blocks 2019-12-11 19:19:34 +01:00
chylex 6d8a7108d1 Implement craftable Void Portal blocks & make them usable outside the End 2019-12-10 19:27:47 +01:00
chylex 5fd414cd4b Add custom crafting recipe ingredient types (full Energy, no Infusions) 2019-12-10 16:19:02 +01:00
chylex 5801bc1f3a Add WIP Linking Gem (only item definition and texture) 2019-12-10 15:23:32 +01:00
chylex 771009478d Add WIP Vampire Bat (basic behavior, movement, assets) 2019-12-10 13:20:47 +01:00
chylex d59ec71935 Change IDamageProcessor.STATUS to take a function instead of constant status effect 2019-12-10 11:40:02 +01:00
chylex dd36b0cd30 Add custom entity knockback multiplier 2019-11-17 14:48:47 +01:00
chylex 8d0b38fc96 Add Experience Gate w/ behavior and rendering 2019-11-07 03:16:09 +01:00
chylex e75c868a34 Add particle effect of floating experience orb 2019-11-07 02:08:46 +01:00
chylex a2e971f4e3 Fix Token Holder (rotation stutter, creative mode, placement) & add break particles 2019-10-29 09:27:35 +01:00
chylex 170383b133 Update custom smoke particle to allow setting a custom lifespan 2019-10-27 18:03:11 +01:00
chylex af2b5b30a8 Add packet to update client-side experience points 2019-10-27 18:03:10 +01:00
chylex 11c82ecfd3 Refactor particle system 2019-10-26 14:07:28 +02:00
chylex 17af8f495a Reorganize tile entities & minor fix in BlockBuilders and PosExt 2019-10-26 07:29:21 +02:00
chylex b337510a6e Fix Obsidian Tower room spawning Redstone on top of a ladder 2019-10-26 04:59:40 +02:00
chylex ed1d2f8262 Implement Arcane Conjunctions blob contents & Energy Cluster generation 2019-10-16 18:40:50 +02:00
chylex 6915d4a14e Remove unused code & minor refactoring 2019-10-16 17:08:44 +02:00
chylex f0ce92a9f4 Refactor BlockPuzzleLogic to use the new flood-fill extension 2019-10-16 16:01:52 +02:00
chylex b92e64b743 Add BlockUpdateStructureTrigger to update blocks after generation 2019-10-16 16:00:50 +02:00
chylex d82dc043a0 Add flood-fill as a BlockPos extension 2019-10-16 15:48:04 +02:00
chylex bc64a6e4f3 Fix typo in TileEntitySpawnerObsidianTower & refactor activation check 2019-10-16 14:09:10 +02:00
chylex ed89c0dc03 Work on Arcane Conjunctions territory (all worldgen except for Blob content) 2019-10-15 18:07:11 +02:00
chylex ff394e7ff8 Refactor IStructureTrigger to place blocks into the world immediately 2019-10-15 17:43:46 +02:00
chylex 22a267adba Add BlobPopulatorFill & BlobPopulatorOre 2019-10-15 15:15:59 +02:00
chylex d2caa9d7d4 Fix wrong ore count in OreTechniqueDistance & add attemptMultiplier parameter 2019-10-13 11:45:33 +02:00
chylex 72b377349c Tweak IBlockPlacer to only return true on block change & add documentation 2019-10-13 11:44:53 +02:00
chylex b04a27e80c Hide unwanted vanilla/forge imports in IntelliJ 2019-10-12 16:30:08 +02:00
chylex 268572c87c Fix using vanilla imports instead of migration ones & optimize imports 2019-10-12 16:30:08 +02:00
chylex 3a00a6fc59 Add missing markDirty calls to TileEntityIgneousPlate 2019-10-12 14:27:10 +02:00
chylex 31ea9f2bd7 Refactor code (fewer Sequences and classes, inefficient collection use) 2019-10-12 14:14:14 +02:00
chylex a2f14d8c39 Add Iterator.any & Iterator.find extensions 2019-10-12 14:07:47 +02:00
chylex 2eeb1f13ae Move NBT key string literals into constants 2019-10-12 11:50:43 +02:00
chylex bb1301b1fb Fix imports (TileEntityBaseSpawner) and refactor proxy use in ItemAbstractTrinket 2019-10-12 11:47:52 +02:00
chylex 9a0930da65 Refactor Grave Dirt to not use block states for variations 2019-10-12 09:31:06 +02:00
chylex 40b843f189 Add Obsidian Towers Spawner block & implement its structure trigger 2019-10-12 08:58:18 +02:00
chylex 114a35acb8 Add custom spell particle 2019-10-12 07:33:29 +02:00
chylex c8c6a0b4ee Add PotionEffect.clone extension & fix IDamageProcessor.STATUS 2019-10-12 07:33:29 +02:00
chylex 9720f029f4 Add base classes for custom spawners 2019-10-12 07:33:28 +02:00
chylex 2efbc2e545 Remove configuration file code 2019-10-10 07:41:16 +02:00
chylex 7553c170f3 Remove dependencies (java.awt, FMLCommonHandler, SidedProxy) 2019-10-10 07:40:06 +02:00
chylex 308fedbb73 Fix dedicated server crash caused by SlotTrinketItem 2019-10-10 06:26:35 +02:00
chylex 1b3e4c9215 Add workaround for no light updates after worldgen in the End 2019-10-10 05:49:34 +02:00
chylex 940035a6d8 Add Puzzle Block (assets, variations, Igneous Rock & puzzle behavior) 2019-10-10 05:45:08 +02:00
chylex c46ea188dd Add FacingX.fromDirection(vec) 2019-10-08 02:28:55 +02:00
chylex 28bc4d4a3b Fix duplicate effect in ObsidianTowerSpawnerLevel 2019-10-08 01:17:44 +02:00
chylex 3a48005f76 Add type aliases (MobEffects & PotionTypes), add and use Potion.makeEffect 2019-10-08 01:17:43 +02:00
chylex d8ff161a2b Split FacingExt into individual files and move them to facade package 2019-10-07 23:00:28 +02:00
chylex 7242ba5664 Refactor Resource and move it into facades package 2019-10-07 23:00:13 +02:00
chylex dabd21456c Add facade for StatList & update existing code to use it 2019-10-07 23:00:13 +02:00
chylex 44d423af12 Add type aliases for Blocks, Items, SoundEvents 2019-10-07 11:24:06 +02:00
chylex d2a8717c4b Add method renames (world time, entity attributes) 2019-10-07 11:07:53 +02:00
chylex 2d1b12d6c4 Stop relying on NBT imports 2019-10-07 09:36:55 +02:00
chylex fd0eb2b5f7 Stop relying on FML imports (sides & events) 2019-10-07 08:48:27 +02:00
chylex 6b9253fdf6 Add custom HSB color conversion & destructuring methods to IntColor 2019-10-07 07:07:54 +02:00
chylex f90322129b Stop relying on enum imports (Facing, Difficulty, Hand, ActionResult) 2019-10-02 20:26:23 +02:00
chylex e9da6142d7 Completely remove dependency on GlStateManager 2019-10-02 19:20:05 +02:00
chylex af93df468e Update IBlockColor/IItemColor usages to use the new utilities 2019-10-02 12:03:40 +02:00
chylex 940e62552b Add HSB & IBlockColor/IItemColor utilities 2019-10-02 12:02:16 +02:00
chylex 4f6b14b237 Implement missing Igneous Rock transformations & stack size reduction 2019-09-21 10:03:44 +02:00
chylex 97618e8062 Allow ignoring Trap infusion on TNT & disable Infused TNT flammability 2019-09-21 09:24:49 +02:00
chylex 0c690c4256 Remove TODO in Dispenser behavior for Enderman Heads 2019-09-21 06:39:11 +02:00
chylex f0e4d60777 Add Dispenser support for extinguishing Igneous Plates 2019-09-21 06:31:17 +02:00
chylex 0471d37116 Move Dispenser behavior into a separate package 2019-09-21 06:25:54 +02:00
chylex 08dffde749 Hide Brewing Stand potion slot icons when not empty 2019-09-21 04:39:12 +02:00
chylex 123477b5c5 Add MagicValues for game constants & address a few UPDATE comments 2019-09-21 03:59:31 +02:00
chylex 9ee675be54 Work on Obsidian Tower (loot, rooms, arrangements, token & boss spawning) 2019-09-21 03:57:59 +02:00
chylex 145526a2c5 Log error in LootChestStructureTrigger if applied to invalid tile entity 2019-09-16 19:27:20 +02:00
chylex 7f80f1c6fb Add loot function for picking music disks 2019-09-15 18:44:16 +02:00
chylex 284d9f73e7 Update existing structure palettes to use combo mappings 2019-09-13 22:08:16 +02:00
chylex 6935025004 Add trapdoors to PaletteMappings & define mapping combos for convenience 2019-09-13 21:57:45 +02:00
chylex 9adec4b366 Address IntelliJ code inspection issues 2019-09-10 12:30:29 +02:00
chylex 0f9277b943 Include IntelliJ inspection profile in the repo 2019-09-10 12:27:04 +02:00
chylex 05e67088d5 Add WIP Ender Eye (model, texture, spawn animation & basic behavior) 2019-09-10 09:46:18 +02:00
chylex f816d9076e Update entity code to use Vec3d.directionTowards 2019-09-09 02:37:07 +02:00
chylex f7cebdd2a3 Move Enderman handler classes to a different package 2019-09-08 04:03:26 +02:00
chylex fd741287e5 Ignore setAttackTarget in custom entities when called repeatedly 2019-09-07 10:41:59 +02:00
chylex eaed8e9485 Update EntityMoveFlyingForward to use FLYING_SPEED & add friction constant 2019-09-07 10:05:42 +02:00
chylex e3a59a3ffe Make ModelBox.quadList public and non-final 2019-09-07 10:03:07 +02:00
chylex 0934892eca Refactor EntitySelector to return a List instead of Sequence 2019-09-07 05:37:20 +02:00
chylex 8908293709 Add Entity helpers (instant yaw rotation, direct flight, look slerp) 2019-09-07 04:12:45 +02:00
chylex edc5b5e51d Make Float.toDegrees/toRadians return a Float 2019-09-04 20:27:57 +02:00
chylex 7957de6e2b Add Quaternion class & Vec3d.toPitch extension 2019-09-04 18:29:11 +02:00
chylex ddc9198621 Minor model code refactoring (Token Holder & Amulet of Recovery) 2019-09-04 18:24:16 +02:00
chylex d5658f5532 Make custom creature types public, fix Enderman & Endermite classification 2019-09-03 03:26:38 +02:00
chylex e489576321 Add WIP Igneous Plate (assets, visuals, recipe, smelting speed behavior) 2019-09-02 04:54:02 +02:00
chylex dd8f74cb61 Add model extensions & builder for cubes 2019-08-29 14:33:32 +02:00
chylex 5c7a21a876 Add Property.facing to construct PropertyDirection 2019-08-17 01:51:35 +02:00
chylex 28c9e8d074 Rename SlotReadOnly to SlotTakeOnly 2019-08-16 23:21:28 +02:00
chylex dedae0695b Allow opening Shulker Boxes without placing them down 2019-08-16 21:31:47 +02:00
chylex 8bdb13519a Add IInventoryFromPlayerItem to reduce duplicate code & update existing containers 2019-08-16 21:31:46 +02:00
chylex b17bd3434c Implement Spiderling variation of Grave Dirt 2019-08-16 02:01:05 +02:00
chylex 7dfb8c3467 Add Spiderling w/ behavior, rendering, drops 2019-08-16 02:01:05 +02:00
chylex 211c76bcbb Work on AI (wandering, light startle, on-fire panic, leap attack) 2019-08-16 01:45:42 +02:00
chylex e5ac7156ff Implement entity ground navigator that doesn't require a proper path 2019-08-15 02:00:43 +02:00
chylex 784a544c10 Update AIToggle to support multiple tasks at once 2019-08-14 14:23:10 +02:00
chylex b98c263985 Add IAttributeInstance.tryRemoveModifier & update existing code to use it 2019-08-14 14:20:20 +02:00
chylex 83487046be Add dummy definitions & language keys for Phase 2 territories 2019-08-10 22:02:05 +02:00
chylex b25c38cb8f Rework Blob generation and populator picking 2019-08-10 17:35:58 +02:00
chylex 56c88eca52 Fix Blob generator being off-center & wrong edge distance in The Hub 2019-08-10 16:25:28 +02:00
chylex f324e52daf Replace lambdas generating random numbers with RandomInt/RandomDouble 2019-08-09 22:34:19 +02:00
chylex 9529eceaf9 Add RandomInt & RandomDouble implementing (Random) -> R 2019-08-09 22:34:18 +02:00
chylex d6f6923636 Remove ColorSpaces & refactor code to use new color classes 2019-08-09 16:54:02 +02:00
chylex 9e0d1b2526 Add IRandomColor 2019-08-09 16:54:01 +02:00
chylex eae7b7027f Add IntColor as inline class for RGB w/ HCL support 2019-08-09 16:54:01 +02:00
chylex b8a163effc Add EnvironmentRenderer constant w/ vanilla skycube parameters 2019-08-09 11:49:58 +02:00
chylex 9619760a53 Fix server startup crash due to EnvironmentRenderer 2019-08-09 11:19:00 +02:00
chylex 093fba8138 Add Portal Token to each territory to creative tab 2019-08-08 21:50:51 +02:00
chylex 3e1ac61f10 Remember spawn location of the first entity to travel through Void Portal 2019-08-08 17:09:23 +02:00
chylex a2fa112c20 Hide block outlines for portal blocks 2019-08-08 15:32:29 +02:00
chylex 7a8a930cfa Tweak portal animations & implement slowing before fade-out 2019-08-08 15:32:29 +02:00
chylex 3605ec7935 Implement Void Portals remembering last used portal 2019-08-08 12:55:19 +02:00
chylex 04840002c7 Implement portal clearance & refactor 2019-08-08 10:28:32 +02:00
chylex f7599abb83 Add Purity Extract & Potion of Purity 2019-08-07 17:52:10 +02:00
chylex fb397f9ba5 Add PotionBase.makeType to simplify PotionType registering 2019-08-07 17:50:35 +02:00
chylex bab34fd36f Fix several issues with Potions (typos in recipes, compatibility with old worlds) 2019-08-07 17:28:57 +02:00
chylex 005e467373 Add IForgeRegistry.getIfExists extension to avoid defaults 2019-08-07 15:53:55 +02:00
chylex 5b238ef770 Implement Dragon's Breath recipe using a Cauldron 2019-08-06 21:26:19 +02:00
chylex fa15245cff Refactor custom Cauldrons to make bucket & bottle handling easier 2019-08-06 18:53:42 +02:00
chylex 03a8b5d656 Add TODOs about overridden entities and potions 2019-08-06 18:27:35 +02:00
chylex 07ef703929 Add custom item entity for Cauldron recipes & change pickup behavior for items in Cauldrons 2019-08-06 18:27:35 +02:00
chylex 93f1f627ea Add custom bubble particle that works outside water 2019-08-06 17:56:47 +02:00
chylex 2ee8b75c38 Remove unnecessary JvmStatic and JvmField annotations 2019-08-06 16:51:08 +02:00
chylex 33e924c2b6 Add Ender Goo Cauldron (w/ Purified variation) 2019-08-05 20:27:40 +02:00
chylex bb35f183a4 Add system for custom cauldrons 2019-08-05 19:15:16 +02:00
chylex a1db944a59 Fix wrong Dragon's Breath brewing recipe & Brewing Stand shift-click slot order 2019-08-05 15:00:11 +02:00
chylex d7e6446fc6 Organize storage blocks into one category in code 2019-08-05 11:04:46 +02:00
chylex f01b51c91a Rebalance Energy Oracle, fix visual glitches, implement Cluster ignoring 2019-08-04 18:15:12 +02:00
chylex a3d74538e2 Add BlockPos.closestTickingTile w/ predicate & remove maxDistance default 2019-08-04 16:41:37 +02:00
chylex aad4102dea Add potted Withered Death Flowers into Energy Shrines 2019-08-04 12:45:41 +02:00
chylex 7ce4d1ef51 Implement Flower Pots with Death Flowers & fix Endermen not spawning 2019-08-04 12:14:18 +02:00
chylex b2dd48d8c3 Add system for custom flower pots 2019-08-04 11:12:43 +02:00
chylex 8799b7370d Fix useNeighborBrightness & ambient occlusion on existing blocks 2019-08-03 17:28:52 +02:00
chylex 7063797809 Update solid top checks in BlockEternalFire & BlockJarODust 2019-08-03 17:28:52 +02:00
chylex c87f2605d5 Add BlockPos.isTopSolid extension & remove a few inlines 2019-08-03 17:28:52 +02:00
chylex 074bceb5b2 Update & refactor a few things to address TODOs 2019-08-03 17:28:51 +02:00
chylex 5d2e781a96 Disable Forge worldgen hook in the End dimension 2019-08-02 19:01:54 +02:00
chylex 4d22626cb6 Make instability-spawned Endermites not despawn on peaceful 2019-08-02 18:18:49 +02:00
chylex 989bc6b712 Add mechanism to prevent hostile mob despawning on peaceful 2019-08-02 18:18:49 +02:00
chylex b8538771f1 Address IDE inspections 2019-08-02 18:18:05 +02:00
chylex 43fa25ace3 Replace Chorus Flower override with a transformer 2019-08-02 18:18:05 +02:00
chylex efb295e343 Add coremod & utilities 2019-08-02 18:18:04 +02:00
chylex 4660c0e788 Add Enhanced Brewing Stand w/ textures and custom behavior 2019-08-02 10:19:32 +02:00
chylex 9ee9876a94 Fix being unable to put potions back into Brewing Stands & modifier issues 2019-08-02 10:12:37 +02:00
chylex 79216ee6d2 Replace vanilla Brewing Stand & implement custom modifiers 2019-08-01 17:12:26 +02:00
chylex f1b0f036fe Move ContainerBaseCustomInventory shift-click logic into an interface 2019-08-01 14:14:14 +02:00
chylex 4395ad412f Separate potion modifier recipes & refactor 2019-08-01 14:06:43 +02:00
chylex 482c5f7153 Change IntelliJ module names because ??? 2019-08-01 04:01:26 +02:00
chylex bb32552fda Completely rework vanilla brewing recipes 2019-07-31 17:02:15 +02:00
chylex d4e43614a2 Disable Kotlin assertions 2019-07-31 02:36:05 +02:00
chylex 6564bc7564 Reduce compiler warnings and inlining 2019-07-31 02:36:05 +02:00
chylex a501bc52b0 Add Obsidian Towers territory w/ basic features 2019-07-30 11:38:19 +02:00
chylex 860dbe6c70 Update existing code to use new BlockPos extensions 2019-07-29 04:13:04 +02:00
chylex a5002c4a26 Add BlockPos extensions for iterating spheres & overloads 2019-07-29 03:53:25 +02:00
chylex 7594de630d Make OreGenerator return the amount of successfully generated clusters 2019-07-28 18:02:03 +02:00
chylex 6fcf9d5e57 Add Random extensions for Kotlin ranges & update existing code to use them 2019-07-26 13:19:12 +02:00
chylex 2770dc36b7 Add StructurePiece.Instance context & use it for Energy Shrine pieces 2019-07-23 15:58:45 +02:00
chylex 155145fe24 Add tile entity utilities to ItemEndermanHead 2019-07-23 12:44:09 +02:00
chylex effff77191 Add WIP Obsidian Tower structure w/ basic layout 2019-07-22 13:08:09 +02:00
chylex 4e0be09711 Allow StructureBuild to add detached pieces 2019-07-21 14:09:00 +02:00
chylex 1555f9796d Fix Void Bucket removing non-fluid blocks in 3x3x3 mode 2019-07-21 13:55:02 +02:00
chylex 2caeb40e55 Refactor code to reduce inner class count 2019-07-21 13:37:02 +02:00
chylex ce07fc3c78 Slightly darken territory title shadow color 2019-07-20 09:03:54 +02:00
chylex 26c169c02e Implement Tomb Dungeon entrance generation in Forgotten Tombs 2019-07-19 12:16:41 +02:00
chylex ebe984eb3b Begin work on Tomb Dungeon 2019-07-19 12:13:28 +02:00
chylex 8463037663 Update Forgotten Tombs environment (skylight, custom lightmap, fog tweaks) 2019-07-19 11:52:45 +02:00
chylex 6f1b12109c Refactor EntityTokenHolder constructors 2019-07-19 08:55:16 +02:00
chylex 78e0010990 Refactor entity structure triggers to allow nudging by fractional x/z amounts 2019-07-18 15:47:24 +02:00
chylex 6349b8564f Add proper FX to Spatial Dash Gem projectile 2019-07-18 05:47:41 +02:00
chylex a5d00e1ecf Fix default smoke color regression & allow random smoke colors 2019-07-18 05:08:04 +02:00
chylex 9532b2d3ce Add subtitles to custom sounds & fix sound import in EntityItemIgneousRock 2019-07-18 03:44:34 +02:00
chylex 7cf058f3c8 Add Blank Token w/ crafting and duplication recipes & update Portal Token texture 2019-07-17 04:25:07 +02:00
chylex aa3ba4ce74 Fix Portal Token crash when activating from player inventory & tweak tooltips 2019-07-17 02:39:08 +02:00
chylex 25a2a23051 Allow ParticleFadingSpot to have a random color 2019-07-16 09:39:50 +02:00
chylex 9cfd1790e2 Add texture for Spatial Dash Gem & source file for future Gems 2019-07-16 08:13:28 +02:00
chylex 3e2e18f19b Change Energy Shrine corridor ceilings to Gloomrock Bricks 2019-07-16 01:36:14 +02:00
chylex 3b5a9ed4df Fix Energy Shrine stair bugs (torch placement, 180° piece misalignments) 2019-07-16 01:20:44 +02:00
chylex 4b3f91bca5 Enable End skylight & custom lightmap handling 2019-07-15 05:16:54 +02:00
chylex 3e8d18b6a4 Fix filecopy.ps1 execution to support PowerShell 2 2019-07-13 17:20:01 +02:00
chylex 46cbd87194 Fix naming of Revitalization Substance sound fields 2019-07-07 17:57:45 +02:00
chylex 484866d8a9 Add Undread w/ behavior, rendering, sounds, and drops 2019-07-07 17:01:36 +02:00
chylex 03185ec29e Add customizable wander AI distance & simplify AITargetNearby 2019-07-06 22:47:48 +02:00
chylex e1961be29b Address IDE inspections & fix damage processor order in EntityMobEnderman 2019-07-06 14:40:25 +02:00
chylex 430893b964 Move trinket classes to a different package 2019-07-06 09:01:40 +02:00
chylex f91bbc22b0 Add Scorching Sword w/ recipe and special hit logic 2019-07-06 08:54:12 +02:00
chylex de015c1f12 Refactor Block building & reorganize Block and Item setup 2019-06-24 17:13:30 +02:00
chylex b01a5eeb86 Refactor Scorching tool code in preparation for Scorching Sword 2019-06-24 14:10:14 +02:00
chylex f1585fffec Implement Ender Goo purification & Revitalization Substance stack limit 2019-06-24 01:13:33 +02:00
chylex f24cf081b7 Add Purified Ender Goo w/ textures, custom behavior, and custom bucket 2019-06-23 17:17:10 +02:00
chylex d9f2cd1dbe Add packet to update client's potion duration 2019-06-23 17:13:06 +02:00
chylex 491e2d9935 Allow custom smoke particle color 2019-06-23 16:15:34 +02:00
chylex 92a6a8a0f8 Refactor Goo (remove capability & fix item aging when touching multiple blocks) 2019-06-22 21:03:48 +02:00
chylex 58200d1b01 Implement Energy Cluster revitalization mechanic w/ FX 2019-06-22 18:16:00 +02:00
chylex 21b14b610b Add ParticleBase.interpolateAge & update ParticleEnergyCluster to use it 2019-06-22 18:15:59 +02:00
chylex 368152fd09 Extract player hand position getter from ParticleEnergyTransferToPlayer 2019-06-21 20:39:51 +02:00
chylex a58550726b Update existing code to use the new Vec3d extension 2019-06-21 18:22:54 +02:00
chylex f4f883f731 Add Vec3d.directionTowards extension 2019-06-21 18:21:36 +02:00
chylex d4dd22e5b8 Implement territory detection in Energy Receptacle 2019-06-21 16:16:49 +02:00
chylex d362f1516a Address a few TODOs (Kotlin features, Block.translationKey, unnecessary TODOs) 2019-06-21 14:07:34 +02:00
chylex 971d91d83c Add WIP Revitalization Substance (texture & recipe) 2019-06-20 11:39:07 +02:00
chylex 02eb09edb9 Fix worldgen Energy Clusters not being marked as inactive 2019-06-20 10:39:58 +02:00
chylex 5ee618988b Remove unnecessary event registrations 2019-06-20 07:59:59 +02:00
chylex a2424fa904 Update Kotlin to 1.3.40 2019-06-20 05:47:57 +02:00
chylex 4fea9793ec Add Flint and Infernium w/ recipe and special TNT & Creeper behavior 2019-06-19 18:31:13 +02:00
chylex 35a35968ef Add Eternal Fire 2019-06-19 13:28:35 +02:00
chylex 5b51adb612 Generate territory's default block inside the surrounding void area 2019-06-13 05:02:13 +02:00
chylex 9ac23a0cdf Work on Forgotten Tombs territory (entrance cave generation & WIP environment) 2019-06-11 20:39:53 +02:00
chylex 0f0ac01a9d Update generators (fix out of bounds in Blobs & The Hub, validate Ore gen chunk size) 2019-06-09 23:07:01 +02:00
chylex 7523063bb8 Fix territory title sometimes showing before the world loads 2019-06-09 23:00:08 +02:00
chylex 157d7c6b7d Add debug toggle for territory void & fog 2019-06-09 19:43:16 +02:00
chylex 15bade1f9a Add debug-only client command for toggles 2019-06-09 19:21:30 +02:00
chylex 2c75ea6c3b Implement structure mirroring 2019-06-09 16:10:44 +02:00
chylex 4fb51c7fe1 Add Grave Dirt w/ texture, drops, and WIP variations 2019-06-08 20:26:47 +02:00
chylex 886b266051 Add loot pool roll type that uses Random.nextRounded on the generated float 2019-06-08 16:01:37 +02:00
chylex 50d6f959f4 Tweak biased loot pool roll definition 2019-06-08 15:58:50 +02:00
chylex 8181f1f366 Make Jar o' Dust require a block with solid top under it 2019-06-08 11:02:55 +02:00
chylex 19c8f9abda Update existing structure code to use updated connection placement code 2019-06-07 23:29:12 +02:00
chylex 578d8688db Move structure connection placement to IStructurePieceConnectionType 2019-06-07 23:28:33 +02:00
chylex 98da56e4ad Fix missing block registration for Whitebark & Dusty Stone Brick double slabs 2019-06-07 19:35:11 +02:00
chylex 40df1eeb5f Add Dusty Stone Brick Stairs & Slab 2019-06-07 17:45:06 +02:00
chylex a1742d3a63 Update existing structure code to use the new connection system 2019-06-07 17:18:52 +02:00
chylex 4a22839a10 Refactor structure piece connection definition 2019-06-07 17:15:06 +02:00
chylex e9d50e5cdf Replace vanilla recipes instead of removing to stop advancement error spam 2019-06-07 12:16:15 +02:00
chylex 9bc8be9f6c Update existing structure code to use the new interfaces 2019-06-06 16:53:58 +02:00
chylex 768e117595 Redo interfaces for structure pieces to reduce code duplication 2019-06-06 16:52:22 +02:00
chylex b4a18fcc86 Fix IStructureWorld.placeWalls bug, add IBlockPicker constructor & null structure locator 2019-06-06 15:24:49 +02:00
chylex 68823d9036 Add rotation argument to '/hee structure piecesdev' command 2019-06-06 15:23:21 +02:00
chylex 504a39b0c3 Add territory environment client ticking & void center offset 2019-06-05 10:25:29 +02:00
chylex f7d09c17ab Add void factor into debug overlay instead of logging to console 2019-06-05 10:18:07 +02:00
chylex 592663ea6e Rewrite portal teleportation cooldown to fix relog & double dip bugs
(i.e. instant teleport after relogging, and no teleport after first
teleporting outside a portal)
2019-06-04 20:46:41 +02:00
chylex 5184a4dcbd Tweak Portal Token texture & fix wrong color order 2019-06-04 18:17:52 +02:00
chylex dcb743e198 Add a WIP command to spawn Portal Tokens 2019-06-04 16:19:59 +02:00
chylex cdb77123d5 Implement creative mode Portal Token teleportation/generation 2019-06-04 16:16:38 +02:00
chylex 613c3ba725 Fix wrong territory spawn/interest point Y value 2019-06-04 16:14:32 +02:00
chylex 5886a2027f Add Jar o' Dust w/ special rendering, behavior, and recipes (and a few issues) 2019-06-03 08:31:26 +02:00
chylex e1bbff6ec6 Update existing code to use the new Tessellator extensions 2019-06-03 02:03:31 +02:00
chylex 756024f1cf Add Tessellator extensions 2019-06-03 02:02:42 +02:00
chylex 8f82173f11 Add Infused Glass w/ connected texture and recipe 2019-06-01 12:18:09 +02:00
chylex b015ebd949 Fix Dusty Stone not being harvestable using Scorching Tools 2019-06-01 12:12:42 +02:00
chylex e1e119ca46 Add interface for blocks w/ multiple harvest tools 2019-06-01 12:12:23 +02:00
chylex 3a7964a20a Use Map.getValue instead of [key]!! 2019-06-01 03:04:27 +02:00
chylex 86aabd10bb Refactor burn time handling in ItemIgneousRock 2019-06-01 01:57:02 +02:00
chylex 3a63b7a724 Fix IDE warnings 2019-06-01 01:56:28 +02:00
chylex e62cdef24c Remove unnecessary return type declarations 2019-06-01 01:55:28 +02:00
chylex e9afad1260 Update existing code to use the new Block/IBlockState extensions 2019-06-01 01:34:22 +02:00
chylex 6cf9966804 Add Block & IBlockState extensions 2019-06-01 01:27:46 +02:00
chylex 347d8db4d2 Redo Whitebark Log side texture 2019-05-31 23:03:47 +02:00
chylex aa1870e475 Add WIP Dusty Stone (assets, drops, recipes) 2019-05-31 03:11:02 +02:00
chylex d5def412a8 Add Whitebark wood blocks (Log, Bark, Planks, Stairs, Slabs) 2019-05-16 02:00:47 +02:00
chylex 84e5246e21 Add ItemBlockSlabFuel for wooden slabs 2019-05-16 00:14:36 +02:00
chylex 1bda5c1181 Make Infused TNT, Ancient Cobweb, Dry Vines flammable 2019-05-16 00:13:37 +02:00
chylex 7f83098454 Set void parameters for The Hub 2019-05-15 17:52:10 +02:00
chylex f163aa0ccc Implement client-side void effects 2019-05-15 17:52:10 +02:00
chylex f54b382a3c Implement ellipsoid void with custom damage 2019-05-15 17:43:30 +02:00
chylex aa1d04f640 Add 'wither' damage title 2019-05-15 17:12:59 +02:00
chylex 984ffcc550 Cache value of TerritoryInstance.topLeftChunk & add centerPoint 2019-05-15 16:26:01 +02:00
chylex fdc82784d1 Minor formatting fixes 2019-05-15 02:58:33 +02:00
chylex bde0cc8a1e Refactor TerritoryRenderer 2019-05-15 02:57:26 +02:00
chylex 2019e1f32b Refactor all uses of Minecraft class to use the new helper 2019-05-13 20:06:07 +02:00
chylex fcac20a8b6 Add helper for Minecraft class 2019-05-13 20:01:39 +02:00
chylex f62517cd0f Update territory environment parameters for The Hub 2019-05-13 00:56:24 +02:00
chylex c6db72a92b Implement skycube, skydome, and sun renderers 2019-05-13 00:47:54 +02:00
chylex 58ebcf08dc Remove skyColor and define a general environment renderer 2019-05-12 19:51:00 +02:00
chylex 519b5dad7f Implement The Hub generation & Token handling 2019-05-01 14:26:52 +02:00
chylex 872ab0156e Add territory entry for Forgotten Tombs 2019-05-01 14:24:32 +02:00
chylex 58455ff81f Add helper for portal generation 2019-05-01 14:08:58 +02:00
chylex 93b0e5ce9d Change NBTTagCompound.getEnum to return null on invalid string 2019-05-01 13:42:07 +02:00
chylex 33cdadcf42 Implement Token Holder charge & special territory-based behaviors 2019-05-01 05:53:09 +02:00
chylex 583a161276 Add a simple interface for parameterized noise generation 2019-04-30 03:49:37 +02:00
chylex 7c7cd36dc7 Add cave generation system w/ a few basic component implementations 2019-04-29 21:06:25 +02:00
chylex ca051544c5 Implement blob generation strategies 2019-04-29 17:21:48 +02:00
chylex a4b7205303 Tweak XP drops of End Powder Ore 2019-04-29 17:17:21 +02:00
chylex c0df0be37f Add base classes for blob generation 2019-04-29 17:17:20 +02:00
chylex c9ba15aadb Move SegmentedWorld size validation into chunk generator 2019-04-29 17:17:20 +02:00
chylex 2f62d42908 Add RandomRange 2019-04-29 17:17:20 +02:00
chylex 8ee9d2ce26 Add a Size constructor that initializes all axes with one value & expand method 2019-04-28 23:36:50 +02:00
chylex 3f93652e4e Add ore generation system with basic techniques (single, adjacent, distance, air checking) 2019-04-26 02:24:29 +02:00
chylex 2d2803296e Minor formatting fixes, refactorings, and a comment tweak 2019-04-26 01:24:46 +02:00
chylex 27864ee796 Work on territory generation (default block, boundary checks, block placement) 2019-04-25 22:24:07 +02:00
chylex 2b7509dcf4 Add extensions (Vec3d.withY/scaleY, Facing4/6.fromDirection) 2019-04-25 02:04:08 +02:00
chylex 7604aee5d9 Fix trinkets slot causing inventory sync crash when changing dimensions 2019-04-20 14:13:03 +02:00
chylex 9e89d058b5 Implement territory spawn points & teleportation 2019-04-20 13:52:48 +02:00
chylex d241ad5ca3 Add territory entry for The Hub 2019-04-20 13:51:26 +02:00
chylex 166f1537a3 Add Vec3d.toYaw extension 2019-04-20 13:48:31 +02:00
chylex 9933112e81 Fix stupid crash with Void Portal trying to render on non-existent blocks 2019-04-20 11:18:39 +02:00
chylex 9ff64ec118 Rename OverworldTeleporter to DimensionTeleporter 2019-04-20 11:02:33 +02:00
chylex ec0f9bbc99 Add remapRange variation for Doubles & Vec3d.scale w/ int/float factor 2019-04-20 09:50:28 +02:00
chylex 569a3274da Make SegmentedWorld an IStructureWorld & implement triggers 2019-04-19 21:19:09 +02:00
chylex 0c245d8669 Fix broken custom block state mappers after a refactoring 2019-04-19 16:28:04 +02:00
chylex 3e93223584 Move chunk generator and world provider classes into different packages 2019-04-19 10:03:31 +02:00
chylex b52f21db29 Use custom End world folder & add TODOs to chunk generator 2019-04-19 09:56:02 +02:00
chylex 64bc52393c Add WIP Token Holder (model, texture, basic behavior) 2019-04-18 13:16:49 +02:00
chylex f2c82b76d1 Add packet for instantly setting entity motion 2019-04-18 13:07:35 +02:00
chylex 1286e5e1f3 Add ByteBuf.writeFloatVec/readFloatVec extension 2019-04-18 13:07:35 +02:00
chylex 8ce6c7d0ba Remove debug chunk generator 2019-04-17 20:22:12 +02:00
chylex cb3b3a3a52 Add territory chunk generator 2019-04-17 20:20:04 +02:00
chylex 9150fc8b86 Add a basic 'segment' system for End chunk generation 2019-04-17 17:59:35 +02:00
chylex bb90999131 Disable world border in the End 2019-04-17 10:25:33 +02:00
chylex 26c6f1bdc1 Add territory title renderer 2019-04-17 06:24:29 +02:00
chylex 9fbc3c4f01 Update DCEVM settings to fix Forge event hot swap 2019-04-17 05:53:49 +02:00
chylex 5fec36f39d Move client model and renderer registrations to ModRendering 2019-04-16 09:23:22 +02:00
chylex 897dd7fa7c Add TODO to StructurePiece & fix comment in BlockAbstractChest 2019-04-16 07:15:26 +02:00
chylex 0721129e38 Add client-side Scaffolding structure detection and saving 2019-04-16 07:00:09 +02:00
chylex f557ded6e3 Add Energy Shrine to '/hee structure' command 2019-04-16 06:55:21 +02:00
chylex 73a92a9258 Add Void Portal GUI & inner portal blocks w/ Token activation and teleportation 2019-04-16 06:55:21 +02:00
chylex f3a543a075 Add The Hub territory description 2019-04-16 04:50:37 +02:00
chylex 158d208608 Implement return End Portals 2019-04-15 10:08:37 +02:00
chylex 95316fa75b Add portal controller interface & contact tracking, refactor inner area detection 2019-04-15 10:08:37 +02:00
chylex e67b1dc9d0 Update existing code to use new NBT extensions & tweak formatting 2019-04-15 09:04:51 +02:00
chylex a84e5583c3 NBT extensions (add getOrCreateCompound & Entity ones, move ItemStack ones) 2019-04-15 09:02:07 +02:00
chylex 47d4063026 Add storage for territory data & player Portal Tokens 2019-04-15 03:16:33 +02:00
chylex d57b9d21b1 Add World.perSavefileData extension 2019-04-15 02:43:09 +02:00
chylex 62f1e8bfa4 Add Void Portal blocks 2019-04-14 09:44:29 +02:00
chylex 5de2fc8d4e Prepare portal code for adding new portal types 2019-04-14 08:37:26 +02:00
chylex 0bc0f67b59 Allow skipping teleport event in Teleporter 2019-04-13 00:05:32 +02:00
chylex b69952e479 Add ItemStackHandler -> IInventory adapter 2019-04-12 17:40:26 +02:00
chylex 9a5b0fb1b7 Make SlotReadOnly a wrapper & add SlotFixValidityCheck because vanilla is stupid 2019-04-12 17:36:07 +02:00
chylex 34272dcd39 Add SlotWrapper & base chest container with wrapped slots 2019-04-12 17:31:27 +02:00
chylex af9aff65c4 Refactor Forge capabilities & add helpers and extensions to simplify code 2019-04-12 02:44:08 +02:00
chylex bc2c2de5b7 Rename BlockEndPortalCustom & refactor a few things 2019-04-11 16:59:29 +02:00
chylex 4cc75f1388 Automatically spawn inner portal blocks when placing the controller block 2019-04-11 14:54:49 +02:00
chylex bc4134dc3d Move portal fading animation from End Portal code to base classes 2019-04-11 04:06:56 +02:00
chylex cf5f940513 Add WIP Portal Token (texture & visuals) 2019-04-10 23:57:23 +02:00
chylex 3d3db3f497 Setup territory environment overrides in WorldProviderEndCustom 2019-04-10 23:20:07 +02:00
chylex fb594b135c Add classes to describe territory properties 2019-04-10 23:17:50 +02:00
chylex 38b858c360 Customize Enderman spawning rules in Overworld 2019-04-08 20:34:29 +02:00
chylex 0cf09810e1 Add WIP Enderman entity (loot, despawning, basic battle & teleportation logic) 2019-04-08 14:35:37 +02:00
chylex e4edb5543a Implement Enderman water debuff logic 2019-04-08 14:30:21 +02:00
chylex ded8ea3740 Implement Enderman teleportation logic 2019-04-08 14:29:30 +02:00
chylex c21fcbba7e Force instant rotation of entities staring at something during teleportation 2019-04-08 14:09:12 +02:00
chylex fee17f28da Add fading pixel particle 2019-04-08 14:07:49 +02:00
chylex e251e1635e Add AI to watch current target without moving 2019-04-07 21:28:52 +02:00
chylex 55b2ca902b Fix continuous AI tasks to actually trigger every tick 2019-04-07 19:31:17 +02:00
chylex 053e077e7e Update existing code to use new Vec3d utilities 2019-04-07 17:16:51 +02:00
chylex d2de5f6e2a Add Vec3d utilities (fromXZ, fromYaw, addY, subtractY) 2019-04-07 17:16:00 +02:00
chylex 05b4964cac Implement Enderman block handling logic 2019-04-07 16:29:11 +02:00
chylex a02d2addea Update existing code that used Teleporter's extended range 2019-04-06 15:02:41 +02:00
chylex a208d65243 Refactor Teleporter effect range & allow silent teleportation (no sound/particles) 2019-04-06 15:02:10 +02:00
chylex 3680b76503 Add a debug-only hack to enable infinite banner textures 2019-04-04 11:40:08 +02:00
chylex 6ac3bd673f Fix unused imports & simplify Pos in Stronghold pieces 2019-04-04 11:32:52 +02:00
chylex d8cf7c43d2 Split Energy Shrine 180° stairs to fix Gloomtorch placement & improve AABBs 2019-04-04 10:37:11 +02:00
chylex 73c3738dd7 Implement Energy Shrine trigger entity for particle and mob spawn control 2019-04-03 21:30:56 +02:00
chylex 3eca01b4b7 Make trigger entity's type public 2019-04-03 21:09:28 +02:00
chylex 4603fa2b0d Enable trigger entity updates on client side 2019-04-03 17:48:11 +02:00
chylex 178b920417 Update Stronghold trigger handlers for the new interface 2019-04-03 17:45:00 +02:00
chylex 9becaa84ee Modify trigger entity interface (custom world validation, default serialization impl) 2019-04-03 17:44:59 +02:00
chylex 12cda08d04 wtf intellij 2019-04-03 11:54:49 +02:00
chylex ba61241094 Implement Energy Shrine generation & surface pillars 2019-04-03 11:52:39 +02:00
chylex 7de6590e3f Disable vanilla Stronghold generation 2019-04-02 09:39:23 +02:00
chylex 35d8faef4c Implement Energy Shrine builder 2019-04-01 20:29:10 +02:00
chylex c8453fd9b9 Refactor Stronghold classes to match recent changes & cleanup generator 2019-04-01 20:18:44 +02:00
chylex 1b41e14b1f Minor refactoring (Size, PosExt, OverworldFeatures) 2019-04-01 20:17:07 +02:00
chylex 68867e5759 Update IStructureDescription's structure locator to take PosXZ 2019-04-01 20:15:57 +02:00
chylex 1ca7d57a14 Add IStructureBuild w/ list of bounding boxes forming the generated structure 2019-04-01 20:14:37 +02:00
chylex fdd785d9f6 Add Size.getPos(Alignment) 2019-04-01 20:12:27 +02:00
chylex f43c589533 Add PosXZ utility data class 2019-04-01 20:05:20 +02:00
chylex 0d4bf8c40d Add a bunch of Energy Shrine rooms 2019-03-31 15:14:43 +02:00
chylex 291618776f Add Energy Shrine main room pieces & abstract room class 2019-03-31 14:47:58 +02:00
chylex cc52a3d731 Add Energy Shrine corridor pieces 2019-03-31 14:43:28 +02:00
chylex 3a979793b7 Add Energy Shrine piece connection types 2019-03-31 14:34:43 +02:00
chylex 0ae433b166 Add Energy Shrine banner generator 2019-03-31 14:32:14 +02:00
chylex f49d735270 Add Energy Shrine block palette & base piece class 2019-03-31 14:32:14 +02:00
chylex f941bf6133 Add VM parameters to improve DCEVM performance 2019-03-31 13:53:39 +02:00
chylex c2cee5d5cd Refactor and cleanup StrongholdBuilder 2019-03-31 09:49:38 +02:00
chylex d48dff9fc8 Refactor some structure utilities into an abstract class in IStructureBuilder 2019-03-31 09:39:52 +02:00
chylex 81f8cadb86 Update existing code to use updated Random.removeItem extensions 2019-03-31 08:27:37 +02:00
chylex 69b91d88da Fix inconsistencies between Random.removeItem and Random.nextItem 2019-03-31 08:26:31 +02:00
chylex 241eb42b0c Update existing code to use IBlockState facing extensions 2019-03-31 08:03:30 +02:00
chylex 1d31272418 Rename EnumFacingExt & add IBlockState extensions for facing 2019-03-31 08:03:30 +02:00
chylex b1201e0088 Add Energy Shrine loot tables 2019-03-31 04:05:03 +02:00
chylex 96c3f24be3 Add loot table function to pick a random Smooth Gloomrock color 2019-03-31 04:00:18 +02:00
chylex 971de3e0b4 Add Infusion.byName & basic loot table function to apply random infusions 2019-03-30 16:21:59 +01:00
chylex c119b52247 Minor formatting fixes 2019-03-30 15:29:25 +01:00
chylex ee44e029ea Add a loot table property that allows sorting stacks in a specific order 2019-03-30 13:16:46 +01:00
chylex 4a191ee98e Separate loot table and loot pool configuration to fix weirdness 2019-03-30 09:38:57 +01:00
chylex 7cd00e9c4a Propertly define how structure piece connection attachment should work 2019-03-30 07:13:40 +01:00
chylex 71fb850f98 Add IStructureTrigger for colored beds 2019-03-30 03:17:33 +01:00
chylex a4eb927ef7 Fix filecopy.ps1 to work on older versions of PowerShell 2019-03-28 21:29:35 +01:00
chylex e5ea8377b0 Allow specifying position of starting structure piece 2019-03-20 11:29:38 +01:00
chylex e1932d141a Add support for even-sized structure piece connections 2019-03-20 11:29:38 +01:00
chylex a5fde1de74 Add new subcommands to '/hee structure' (resetcache, norots) 2019-03-20 10:57:29 +01:00
chylex dea6d315a0 Improve Smooth Gloomrock Stairs side texture 2019-03-18 11:16:54 +01:00
chylex 045bbe3f11 Update Stronghold classes to use Air singleton 2019-03-17 12:04:01 +01:00
chylex 9f05e04796 Add IStructureWorld.placeWalls & IBlockPicker.Air 2019-03-17 12:02:31 +01:00
chylex 86be7ad8d6 Add Stronghold to '/hee structure' command 2019-03-16 18:42:15 +01:00
chylex 0dc7b2ecc2 Add a debug command for structures 2019-03-16 18:39:02 +01:00
chylex 9a36fba5fa Improve Smooth Gloomrock Slab side texture 2019-03-16 17:39:52 +01:00
chylex 2e2cd502cc Reorganize all GUI and container-related classes into new packages 2019-03-16 14:20:23 +01:00
chylex 072be51c35 Reorganize all rendering-related classes into new packages 2019-03-16 14:03:02 +01:00
chylex 21ea330124 Add script used to generate Stardust Ore texture variations 2019-03-16 12:04:18 +01:00
chylex d133636386 Implement Death Flower withering logic 2019-03-16 11:58:00 +01:00
chylex 713d22105d Update EndermiteTeleportLogic to use Teleporter.nearLocation 2019-03-16 09:53:16 +01:00
chylex b3beeb114d Add Teleporter.nearLocation to generalize multiple teleport attempts 2019-03-16 09:53:05 +01:00
chylex d473083f5a Make Teleporter.resetFall true by default 2019-03-16 09:09:14 +01:00
chylex 75ea906d23 Tweak Ring of Hunger's balance 2019-03-15 20:25:50 +01:00
chylex d9188f4d60 Trigger item use stat when a Trinket breaks 2019-03-15 20:25:36 +01:00
chylex 6e264ee58a Minor formatting fixes 2019-03-15 15:22:03 +01:00
chylex 8243673e0e Replace vanilla Totem of Undying w/ custom Trinket logic 2019-03-15 15:13:29 +01:00
chylex 7e6b47d832 Add a 'horribly dying Villager' entity 2019-03-15 13:53:58 +01:00
chylex 0671b10aa9 Add growing pixel particle 2019-03-15 13:53:58 +01:00
chylex ba97cf077e Add pixel particle texture 2019-03-15 13:14:32 +01:00
chylex d513c89514 Replace uses of deprecated I18n class 2019-03-14 19:07:20 +01:00
chylex 00ac7bf8f8 Add customizable FX when a Trinket is broken 2019-03-01 17:21:56 +01:00
chylex 48befaf2d2 Reduce log spam from Igneous Rock smelting transformations 2019-03-01 15:09:11 +01:00
chylex 676e4207f4 Fix/workaround log warnings at startup 2019-03-01 14:54:38 +01:00
chylex 03cd848e5b Add Energy Cluster inventory texture & localized name 2019-03-01 14:45:55 +01:00
chylex 070a949eea Implement Dispersed Cluster generation 2019-02-28 21:33:58 +01:00
chylex b0bfe622a0 Generalize worldgen chunk grid logic & fix negative coordinates 2019-02-28 21:09:38 +01:00
chylex 2c506b4436 Tweak behavior of Ancient Cobweb & Dry Vines to work better in Strongholds 2019-02-28 14:09:21 +01:00
chylex 6482e44cc3 Finish Stronghold generation (tweak weights and piece ordering) 2019-02-28 14:07:40 +01:00
chylex 213bb39121 Update WorldToStructureWorldAdapter to take Random in constructor 2019-02-28 14:01:05 +01:00
chylex e2ec225634 Fix a few bugs & finish up Stronghold pieces 2019-02-28 13:59:36 +01:00
chylex 664e957b84 Update Stronghold code for new PaletteBuilder & IStructureGeneratorFromFile 2019-02-28 10:27:24 +01:00
chylex 5029eb41ed Add methods to save structures into files 2019-02-28 10:26:22 +01:00
chylex 58ef583d46 Add BoundingBox.size 2019-02-28 09:58:55 +01:00
chylex 402b72bac8 Rewrite PaletteBuilder to allow palettes for structure development 2019-02-28 09:58:08 +01:00
chylex fcff4b5380 Add PS script to copy file into clipboard
AWT Toolkit is bork..
2019-02-27 22:30:50 +01:00
chylex df101cad2a Prepare to add more PowerShell scripts, woo! 2019-02-27 22:29:28 +01:00
chylex f463d917d4 Add Scaffolding 2019-02-27 17:22:31 +01:00
chylex c6e8c56c26 Implement Stronghold generation w/ Eye of Ender search (and tweaks) 2019-02-27 12:44:36 +01:00
chylex 7cee8db35e Implement Stronghold builder & update size and pieces 2019-02-25 10:48:43 +01:00
chylex cdc6321f25 Add OverworldFeatures to register worldgen 2019-02-24 22:39:47 +01:00
chylex 430692cdef Add BoundingBox.center 2019-02-24 22:35:52 +01:00
chylex f1afdcd3c7 Minor code tweaks & add ignored packages in autocomplete 2019-02-24 13:26:02 +01:00
chylex ea7804d8dc Add a few utilities to structure & weighted list classes 2019-02-24 13:18:44 +01:00
chylex 346896e2df Implement Stronghold piece types & custom piece Instance 2019-02-24 13:07:03 +01:00
chylex 03d9663460 Add Stronghold stair connection that cannot connect to doors 2019-02-24 11:11:14 +01:00
chylex 2dfa54db14 Work on Stronghold pieces (fix portal connections, allow merging relics into doors) 2019-02-24 11:09:16 +01:00
chylex 3f08d6d011 Work on structure piece code (merging, chaining & removal, mutability) 2019-02-23 15:51:37 +01:00
chylex c2def2fc6e Add Rotation4 w/ permutation picker to EnumFacingExt 2019-02-23 14:24:09 +01:00
chylex 8fd1831e06 Change setupRecipeNBT methods to take an ItemStack instead of IRecipe 2019-02-23 14:22:06 +01:00
chylex c612e94eaf Add MutableWeightedList 2019-02-22 09:13:15 +01:00
chylex ad297cdfc9 Update Teleporter to use sendToTracking 2019-02-16 02:02:33 +01:00
chylex 7cef62bc9a Add ModNetwork.sendToTracking 2019-02-16 00:10:28 +01:00
chylex 72510821d7 Add constants and extensions for entity attributes 2019-02-15 17:52:42 +01:00
chylex 9a35db35bd Add Enderman isShaking property 2019-02-15 17:47:20 +01:00
chylex a6c52b048f Fix Enderman Head rendering issues (culling, default transform) 2019-02-15 17:03:43 +01:00
chylex eb7913e453 Minor refactoring (missing SideOnly, import order, comment) 2019-02-14 18:00:42 +01:00
chylex 59903fcf14 Add Enderman Head w/ item and armor model, and a hacked up block 2019-02-14 16:08:16 +01:00
chylex d98fed7e19 Add Random.nextVector2 extension 2019-02-14 12:50:49 +01:00
chylex ccb7b68a25 Add entity AI for picking up blocks 2019-02-13 23:09:06 +01:00
chylex 4e81ee0762 Make entity teleportation instant client-side 2019-02-13 18:07:06 +01:00
chylex cd5c31f574 Refactor Teleporter to randomize particle position by size of teleported object 2019-02-13 18:04:43 +01:00
chylex 6282bf832d Refactor Teleporter to use teleported entity's sound category by default 2019-02-13 12:27:15 +01:00
chylex e9de4593b4 Add World extension for per-dimension storage 2019-02-11 19:25:12 +01:00
chylex 5ac5d72dc5 Implement Death Flower healing using End Powder 2019-02-11 18:22:17 +01:00
chylex 1050084452 Add WIP Death Flower (variations, models, textures) 2019-02-11 18:20:25 +01:00
chylex a5b260e47c Add base for custom particle textures 2019-02-11 10:41:41 +01:00
chylex a6cf78fec4 Add base block and EnumPlantType for plants that grow on End Stone 2019-02-10 17:41:25 +01:00
chylex 10c4298247 Ensure enum modifications are applied as early as possible 2019-02-10 15:02:33 +01:00
chylex 5ab345b67e Minor formatting fixes and updates 2019-02-10 14:59:18 +01:00
chylex 16d4730513 Add IOffset.Gaussian and IColor.toVec 2019-02-10 14:57:52 +01:00
chylex d58ef7e81e Refactor block property definitions 2019-02-10 10:24:36 +01:00
chylex 9e52d5ffd2 Replace PropertyDefault.java (Kotlin fixed the compile error?) 2019-02-10 10:11:49 +01:00
chylex cdb1540850 Change Energy Oracle recipe 2019-02-09 14:52:30 +01:00
chylex 903636aadd Fix Void Miner not mining some blocks because shit's hardcoded 2019-02-09 13:55:27 +01:00
chylex 79a083374b Implement Stronghold Silverfish spawner & trap triggers 2019-02-09 10:13:51 +01:00
chylex e7921103e7 Define Stronghold size & update Stone Brick palette and checks 2019-02-09 10:02:02 +01:00
chylex 2a5a8048f9 Allow constructing AxisAlignedBB using Size 2019-02-09 09:51:29 +01:00
chylex 50b38a5255 Tweak technical trigger entity timer 2019-02-09 09:49:52 +01:00
chylex a844e2aa02 Allow delaying Silverfish hiding AI & tweak summon AI 2019-02-09 09:44:47 +01:00
chylex 409ba7ab47 Fix Stronghold corridors not generating air inside 2019-02-09 09:02:09 +01:00
chylex 72f146d0a8 Add all Stronghold structure pieces (without Silverfish triggers) 2019-02-06 06:44:35 +01:00
chylex 8d187d4d5d Add Stronghold loot tables 2019-02-05 05:06:08 +01:00
chylex b9343debe0 Add Stronghold block palette 2019-02-05 05:04:18 +01:00
chylex 170bcdc801 Add base classes for worldgen structures made of connected pieces 2019-02-05 04:21:11 +01:00
chylex 2521aac0c0 Add FutureBlocks to help 1.13 transition & make Loot Chest inventory public 2019-02-05 03:38:08 +01:00
chylex 7c91238331 Add WIP Knowledge Note (texture & item registry entry) 2019-02-04 22:11:40 +01:00
chylex 22230fe233 Tweak item organization & Energy Cluster sounds 2019-02-04 21:28:28 +01:00
chylex 46c5a9bf67 Add a technical entity to handle custom triggers 2019-02-04 17:35:54 +01:00
chylex 619fde1d88 Add IStructureTriggers for generic entities and tile entities 2019-02-04 17:32:23 +01:00
chylex 70271512a3 Add base class for technical entities 2019-02-04 17:32:22 +01:00
chylex 44017a5039 Add IStructureTriggers for concrete tile entities (Chests, Flower Pots, Energy Clusters) 2019-02-03 17:47:53 +01:00
chylex 3f771e0797 Add IStructureTrigger wrapper for rotations 2019-02-03 17:34:45 +01:00
chylex 9029fc2d81 Add IStructureWorld adapter to place structures into a World 2019-02-03 16:43:21 +01:00
chylex ed664e03ba Add IStructureWorld wrappers for offset and rotations 2019-02-03 16:38:57 +01:00
chylex c44e434457 Add custom structure file loading & block palette system 2019-02-03 15:38:00 +01:00
chylex 7ca5371ca8 Add key interfaces for worldgen structures 2019-02-03 15:17:08 +01:00
chylex bb348ef1d1 Add option to modify loot pool roll bias in loot tables 2019-02-02 22:57:32 +01:00
chylex a9e46c4f1d Add option to disable stack splitting in loot tables 2019-02-02 22:52:57 +01:00
chylex 05bb8dcb36 Add support for custom properties in loot pool names 2019-02-02 22:52:16 +01:00
chylex fec0b00928 Add utilities for worldgen (BoundingBox, Size, EnumFacing tweaks) 2019-02-01 21:36:59 +01:00
chylex f5c7736f9e Update Random.nextItem extensions (enums & nullability) 2019-02-01 21:09:41 +01:00
chylex 77c2a05a64 Add a few utilities (WeightedList.toString, BlockPos.min/max, generics) 2019-01-25 18:14:00 +01:00
chylex bdaa344c55 Fix not being able to place Torches on Stone Brick Wall blocks 2019-01-25 14:51:50 +01:00
chylex 85c7667474 Fix Tables stalling when it fails to assign new processes to unassigned Pedestals 2019-01-23 17:57:03 +01:00
chylex 97fac2e3b1 Implement supporting item mechanic for Tables & tweak default Pedestal status color 2019-01-23 16:48:13 +01:00
chylex 7134f3ee89 Update Accumulation Table (rewrite serializer, report blocked work ticks) 2019-01-23 16:21:44 +01:00
chylex ba29e197d2 Allow Table processes to report successful/blocked work tick w/ particles 2019-01-23 16:18:10 +01:00
chylex f9a72c9ab4 Fix Pedestal breaking when marked as dedicated output while running a process 2019-01-23 13:36:22 +01:00
chylex be7cf98a61 Add a few general Table process serializers 2019-01-23 13:35:18 +01:00
chylex 2a53e20018 Move Table process interfaces into a separate package 2019-01-23 11:34:58 +01:00
chylex 565f2c8fe8 Add a WIP command to test Causatum stages 2019-01-22 08:32:41 +01:00
chylex 6c6142d429 Add Ender Causatum stages and storage 2019-01-22 08:32:40 +01:00
chylex b21337e482 Refactor Tables (block construction, process serialization, generics, naming) 2019-01-21 15:11:02 +01:00
chylex 63e4afad9f Implement non-silent Table Pedestal input replacement & tweak output smoke particles 2019-01-21 10:47:01 +01:00
chylex c3058e2cab Fix missing Table process lifecycle call in TableProcessList.remove(predicate) 2019-01-21 05:04:18 +01:00
chylex 6fba676d03 Minor refactoring (fix imports, unnecessary parameter, inlining) 2019-01-20 11:46:20 +01:00
chylex bca7932d8b Fix Table process not stopping when one of its Pedestals is unlinked 2019-01-20 11:01:40 +01:00
chylex 89ef11a389 Refactor Table process handling and lifecycle 2019-01-20 11:01:39 +01:00
chylex eb5d5a7b32 Add particle effects to Tables (Energy draining, Pedestal processing) 2019-01-20 07:55:58 +01:00
chylex 85616a0b53 Refactor duplicate code in Particle classes 2019-01-19 10:53:43 +01:00
chylex e8a4422676 Add particle effect when charging a held item with Energy 2019-01-19 03:28:48 +01:00
chylex 7bcb025bcb Refactor Energy Cluster particle & add base particle class for Energy transfers 2019-01-19 03:00:36 +01:00
chylex 1545f62ff3 Fix invalid Line particle shape when amount of points equals 1 2019-01-18 12:48:11 +01:00
chylex f8660f4af5 Implement thrown Igneous Rock FX 2019-01-18 05:59:26 +01:00
chylex cba2b0fbdb Refactor PacketClientFX and all FX objects to use the new system 2019-01-18 05:04:24 +01:00
chylex 6791ed30b4 Create reusable FX data and handler classes w/ common parameters 2019-01-18 05:00:35 +01:00
chylex 548953bf9a Add a mechanism to toggle AI tasks 2019-01-18 03:45:53 +01:00
chylex f9d4542c90 Fix double Dark Chest render bounding box 2019-01-18 01:17:41 +01:00
chylex 4b4124821e Implement Ocelot sitting AI for custom Chests 2019-01-18 01:11:10 +01:00
chylex 8cd98142ff Trigger instability from Energy Cluster leaks and breaking 2019-01-17 23:40:27 +01:00
chylex fe6dcbc990 Implement Energy Cluster health-based leaking & rebalance leak values 2019-01-17 23:00:18 +01:00
chylex 049717c780 Implement Energy Cluster proximity 2019-01-17 08:39:27 +01:00
chylex 69479edf9c Refactor Energy Cluster leaking mechanics & update region instability leak 2019-01-17 08:24:14 +01:00
chylex e8b9e680ed Implement a single-block Corrupted Energy leak & use it in End Portal 2019-01-17 08:15:24 +01:00
chylex 50c2518f91 Allow resetting dimension instability action multiplier & tweak naming 2019-01-17 05:40:28 +01:00
chylex 48d53d1e7d Implement AI that targets on eye contact 2019-01-13 20:03:57 +01:00
chylex 16f868bd19 Refactor targeting AI to simplify code 2019-01-13 17:08:37 +01:00
chylex d8755dbfce Replace vanilla Enderman base behavior and rendering 2019-01-11 16:23:13 +01:00
chylex d7eaf48fc2 Add Riding infusion to Ender Pearls 2019-01-10 20:19:26 +01:00
chylex 0c2d6d5956 Fix Ender Pearls going too far when phasing & increase bounding box size 2019-01-10 20:02:08 +01:00
chylex d815c57456 Tweak code style in packets 2019-01-10 19:58:32 +01:00
chylex a6990f4e43 Add a packet that forces dismount at a set location during teleportation 2019-01-10 19:54:22 +01:00
chylex 8afd19a6ad Implement Looting loot table condition 2019-01-10 15:39:30 +01:00
chylex e289f60713 Generalize Fortune loot condition 2019-01-10 15:38:45 +01:00
chylex a8bf0fad76 Fix Spatial Dash Gem range & implement infusions (capacity, distance, speed, vigor) 2019-01-10 11:35:03 +01:00
chylex 525a0a6a23 Implement Energy Oracle infusions (capacity, distance, vigor) 2019-01-10 11:02:57 +01:00
chylex 5d5efb3c29 Add infusions for certain Energy items & Vigor level calculations 2019-01-10 11:00:02 +01:00
chylex 35cfad4123 Refactor infusion construction & tweak colors of some infusions and Binding Essence 2019-01-09 19:37:14 +01:00
chylex 51f8d3b281 Replace Eye of Ender w/ custom recipe, movement behavior, and FX 2019-01-09 18:08:45 +01:00
chylex e1c0ce60af Add glitter particle type 2019-01-09 16:27:03 +01:00
chylex a424f8fc44 Minor style fixes 2019-01-09 16:06:59 +01:00
chylex a11aac50d2 Implement a few Ender Pearl infusions (harmless, phasing, slow) 2019-01-08 11:50:05 +01:00
chylex e1de134d35 Add Infused Ender Pearl item & infusion list to the entity 2019-01-08 11:31:16 +01:00
chylex cd3948b981 Replace vanilla Ender Pearl entity w/ custom impact behavior 2019-01-08 11:02:21 +01:00
chylex 7d62af8e9e Add block position as a parameter to RayTracer collide check callback 2019-01-08 10:32:40 +01:00
chylex 7f35b2af63 Fix missing damage implementation in Teleporter 2019-01-07 20:20:15 +01:00
chylex d2ecdffd6a Fix minor style issues (imports, ByteBuf usage, Item translation key prefixing) 2019-01-07 14:28:13 +01:00
chylex c17a4cddb6 Tweak Void Salad to use the "starve" death message 2019-01-07 14:23:38 +01:00
chylex 360537af31 Refactor Damage to allow null remote source for indirect damage 2019-01-07 14:09:36 +01:00
chylex 4a7da9e973 Add Endersol w/ assets 2019-01-04 18:38:13 +01:00
chylex f71c6e9443 Add utility extension to clone block sound data 2019-01-04 18:36:28 +01:00
chylex 29d6b2f76a Add Scorching tools w/ recipes and custom fortune behavior 2019-01-04 11:40:54 +01:00
chylex 0d5c7eca89 Add (probably WIP) assets for Scorching tools & sword 2019-01-04 11:40:53 +01:00
chylex 3c2e9b2e1b Add a flame particle variant with customizable lifespan 2019-01-04 11:30:37 +01:00
chylex 059f4bdf4d Update existing repair handlers to use the new interface 2019-01-04 11:21:36 +01:00
chylex d18f300c4b Add a custom interface-based Anvil repair handler 2019-01-04 11:21:36 +01:00
chylex a533df19d4 Add Infernium Ingot & Dirty Infernium Ingot w/ recipe 2019-01-03 09:28:47 +01:00
chylex dca610893f Add a debug chunk generator to the End 2019-01-03 03:40:12 +01:00
chylex 1db6b61029 Add Talisman of Griefing 2019-01-01 06:17:57 +01:00
chylex a992c3883c Minor tweaks (IOffset entity constructor, unnecessary code, cleanup) 2019-01-01 03:41:59 +01:00
chylex bb5af7b0c8 Allow cloning an explosion w/ modified parameters 2019-01-01 03:41:59 +01:00
chylex 307ebe0643 Finish implementing dimension & region instability for all dimensions 2018-12-30 06:37:38 +01:00
chylex 15caa41c38 Implement territory chunk grid system w/ a few test territories 2018-12-30 06:28:55 +01:00
chylex ea0b2e440f Replace vanilla End world provider & disable dragon fight manager 2018-12-30 05:48:47 +01:00
chylex 9be0a2a91f Add destructuring extensions for ChunkPos 2018-12-30 05:42:20 +01:00
chylex f225319e51 Update Endermites (render range, instability relief, Corrupted Energy immunity) 2018-12-28 05:09:29 +01:00
chylex 0632538268 Add dimension instability triggers to teleportation 2018-12-28 05:05:15 +01:00
chylex 9001424821 Add a method to leak a set amount of Energy from a Cluster 2018-12-28 05:02:07 +01:00
chylex 480a2da36b Implement main logic and capability handling for dimension & region instability 2018-12-28 04:25:51 +01:00
chylex 48e9aadc0f Add interfaces and utilities for instability 2018-12-27 21:15:04 +01:00
chylex 663554a97b Add parameters to Teleporter (reset pathfinding, extend FX range) & tweak effects 2018-12-27 19:55:51 +01:00
chylex 879ece80f0 Add interface to mark entity as immune to Corrupted Energy 2018-12-27 16:06:29 +01:00
chylex a4c35c1500 Add Random.removeItem extension 2018-12-25 13:39:21 +01:00
chylex 0197d7c5a1 Fix non-lethal damage sometimes leaving player at 1 full heart 2018-12-25 02:30:22 +01:00
chylex 9283a106b7 Minor code style tweaks 2018-12-25 02:08:39 +01:00
chylex 5ae5d3cca7 Add instability-spawned Endermite variation & disable Endermite particles 2018-12-22 17:26:45 +01:00
chylex c7f35e221a Add a way to pause particle effect spawning 2018-12-22 16:21:37 +01:00
chylex bc0b826013 Fix entity translation key 2018-12-22 16:18:57 +01:00
chylex fd699eff11 Tweak Corrupted Energy particle color 2018-12-22 16:18:57 +01:00
chylex fd70dd5da0 Fix Infused TNT and Endermite serialization 2018-12-22 13:42:20 +01:00
chylex 331a4ae7e4 Replace Endermite and implement custom behavior, despawning, and drops 2018-12-22 12:32:16 +01:00
chylex 7109f3dde1 Add custom EntityAIWanderAvoidWater constructor 2018-12-22 12:32:16 +01:00
chylex b5db81dd47 Add mob AI that reduces randomness of wandering 2018-12-22 12:25:38 +01:00
chylex a8aadfab54 Refactor entity override registration 2018-12-22 10:15:27 +01:00
chylex 38fdff2266 Fix being able to open an Amulet of Recovery without recharging it 2018-12-20 09:22:48 +01:00
chylex fa6e5b12c9 Implement modded & Trinket slot handling in Amulet of Recovery 2018-12-20 09:22:48 +01:00
chylex 453f79e33c Fix infusions causing items to lose NBT data 2018-12-20 08:47:32 +01:00
chylex c09ae421fe Fix Trinket duplication on death 2018-12-20 08:47:31 +01:00
chylex eebaa5238c Add NBTList.set 2018-12-20 08:47:31 +01:00
chylex 7587bb49ad Refactor Trinket Pouch serialization to use NBTItemStackList 2018-12-20 05:24:48 +01:00
chylex d8be6810ca Add Ring of Hunger 2018-12-19 15:29:48 +01:00
chylex 66d349166f Move infinite potion duration constants 2018-12-19 15:17:46 +01:00
chylex 30196e925c Rename and move base Item classes 2018-12-18 09:27:01 +01:00
chylex 689e221f01 Make Trinket Pouch infusable & add Expansion infusion 2018-12-18 08:31:05 +01:00
chylex e9c6a8e738 Refactor Infusion color constructors 2018-12-18 08:31:05 +01:00
chylex efeed74006 Add Trinket Pouch w/ custom GUI 2018-12-18 08:26:05 +01:00
chylex 7be6c6d4e9 Allow active Trinket items to provide their own ITrinketHandler instances 2018-12-17 01:27:51 +01:00
chylex b46c885f7c Add base Gui+Container classes for custom inventory interfaces 2018-12-16 07:02:06 +01:00
chylex 67d5e01804 Move SlotTrinketItem player inventory logic into a separate class 2018-12-16 06:53:11 +01:00
chylex 226eb20273 Add packet to tell server to open a GUI 2018-12-16 06:45:32 +01:00
chylex 1f2ffbcda9 Update DetectSlotChangeListener to return slot for item duplication prevention 2018-12-16 06:34:32 +01:00
chylex c66f5a354e Refactor Trinket handling in preparation for Trinket Pouch 2018-12-01 14:34:50 +01:00
chylex 3cb50dc162 Add Elytra w/ custom recipe and durability handling 2018-12-01 10:11:57 +01:00
chylex c5a3e0af24 Fix Table Pedestal render bounding box to include the item area 2018-12-01 10:10:58 +01:00
chylex 49858e4948 Add Binding Essence w/ recipe 2018-11-30 05:56:20 +01:00
chylex 9263572524 Add IInfusableItem & implement infusion colors and item transformations 2018-11-30 03:41:51 +01:00
chylex 4082c6b7ab Push config file for Statistic plugin 2018-11-28 06:26:25 +01:00
chylex 1b5c68c531 Add Compost w/ dispenser behavior and Humus drops 2018-11-28 00:12:26 +01:00
chylex f700df457e Add Accumulation Table 2018-11-27 09:29:46 +01:00
chylex 3d861aadc6 Push Table overlay asset file 2018-11-27 09:23:16 +01:00
chylex 8bfe5e7375 Let Table processes decide between consuming 1 item or the whole input stack 2018-11-27 09:20:34 +01:00
chylex 1aa475aa08 Spawn smoke particles on Table Pedestals when items are added to input/output 2018-11-27 05:37:55 +01:00
chylex 8d82171533 Add a custom smoke particle with modifiable scale 2018-11-27 05:33:38 +01:00
chylex 828a8a6471 Allow Redstone signal to pause Table processing 2018-11-27 03:29:45 +01:00
chylex 12024eaab1 Add Redstone Comparator signal to Table Pedestals 2018-11-27 03:27:26 +01:00
chylex 2344884366 Implement dedicated output Pedestals 2018-11-27 01:17:41 +01:00
chylex cec17ef207 Minor Table Pedestal fixes (consume all inputs, disable mipmapping, compile error) 2018-11-27 00:14:57 +01:00
chylex f6973351b3 Fix too many Table Pedestal item rendering spots 2018-11-26 06:10:23 +01:00
chylex 24040f5475 Implement logic for Table Pedestal status indicator (contents & processing) 2018-11-26 05:44:29 +01:00
chylex ef91d1bc87 Add a Table Pedestal status indicator handler 2018-11-26 05:41:44 +01:00
chylex c8d91449a5 Add a 20 tick Table process pause after updating Pedestal input 2018-11-26 05:37:39 +01:00
chylex f71813515a Add a NotifyOnChange delegate & use it in TEs 2018-11-26 01:09:35 +01:00
chylex 2724950bac Ensure Table processes are saved 2018-11-26 00:10:34 +01:00
chylex 8f383280f7 Refactor Table Pedestal inventory handling into a separate class 2018-11-26 00:08:40 +01:00
chylex f11e4ac38e Make ITrinketITem and IColor methods JvmDefault 2018-11-25 20:53:17 +01:00
chylex a57514dfcf Change RGB constructor(rgb: Int) to UByte to avoid confusion 2018-11-25 20:46:10 +01:00
chylex dc7d38d794 Update Kotlin to 1.3.10 & minor refactoring 2018-11-25 20:22:50 +01:00
chylex f0f120ce55 Implement base classes for describing and handling Table processes 2018-11-25 19:52:29 +01:00
chylex e14767977e Implement Table logic for process handling 2018-11-25 18:14:52 +01:00
chylex 19e71cbc96 Forgot to push TileEntityBaseTable.MarkDirtyOnChange delegate 2018-11-25 17:13:13 +01:00
chylex 48402b2ede Add methods to update and track Pedestal input & output 2018-11-25 16:32:44 +01:00
chylex 8af05dfcca Implement Table behavior for picking and draining Energy Clusters 2018-11-24 10:32:03 +01:00
chylex 39d33fe09f Tweak Table Link cooldown & play linking sound to all players 2018-11-24 09:02:02 +01:00
chylex 231d4b73c5 Refactor Table Pedestal linking behavior & implement Pedestal limit 2018-11-24 07:36:25 +01:00
chylex 9613c6f79f Add interfaces for Table processes & serialization 2018-11-23 21:11:14 +01:00
chylex 0767402469 Make TileEntityBase only refresh Notifying delegate on change & expose isLoaded 2018-11-23 21:07:33 +01:00
chylex 263fa987cd Add NBT extensions to simplify list construction and ItemStack lists 2018-11-14 14:56:36 +01:00
chylex 9442a13708 Add extensions to create/restore IInventory snapshots 2018-11-14 14:52:38 +01:00
chylex 19d4a4ded8 Add Void Salad w/ recipe 2018-11-11 23:55:50 +01:00
chylex 984ec1e8e9 Implement non-lethal damage processor 2018-11-11 22:55:16 +01:00
chylex 42645ab6da Add Purity status effect 2018-11-11 12:40:06 +01:00
chylex 3867a6afdf Move BlockEditor, ExplosionBuilder, RayTracer, and Teleporter to a different package 2018-11-10 20:48:19 +01:00
chylex 725f3a29bb Add Void Bucket w/ animation and recipe 2018-11-10 19:17:44 +01:00
chylex 230a8d650d Add Void Miner w/ recipe 2018-11-10 19:16:23 +01:00
chylex 86777ee7b5 Add a base class and material for Void tools 2018-11-10 19:16:23 +01:00
chylex a2fd85efbe Reimplement vanilla block raytracer with custom collision check behavior 2018-11-10 19:16:17 +01:00
chylex 9d2f291c30 Fix possibility of NPE when handling BreakEvent in BlockIgneousRockOre 2018-11-10 18:49:04 +01:00
chylex 8ce2fdc862 Add Entity extensions (lookPosVec, lookDirVec) and fix warnings 2018-11-10 17:51:21 +01:00
chylex dcebac266c Fix Ring of Preservation repair logic (only repair when damaged & use only 1 Diamond) 2018-11-06 01:41:01 +01:00
chylex a29616d1c9 Implement End Portal leaking Corrupted Energy 2018-11-05 17:55:16 +01:00
chylex d1ddcfb701 Refactor & update properties of Corrupted Energy leaks, fix damage 2018-11-05 17:54:07 +01:00
chylex 23ce6e8f5e Fix CombinedDamage causing damage every tick in some cases 2018-11-05 17:46:48 +01:00
chylex db4256ba6c Implement shift-clicking support for Trinket slot 2018-11-05 03:45:29 +01:00
chylex 6471b49b0e Add Scale of Freefall w/ recipe 2018-11-04 22:31:52 +01:00
chylex 87652ef4d4 Minor refactoring + event priority change in ItemAmuletOfRecovery 2018-11-04 22:19:21 +01:00
chylex 6a86bb093f Add TrinketHandler.getCurrentActiveItem and document ITrinketItem 2018-11-04 21:06:16 +01:00
chylex 65309c732b Update textures for Dragon Scale and Puzzle Medallion 2018-11-04 15:46:01 +01:00
chylex c7de7dc648 Add Ring of Preservation 2018-11-04 12:31:04 +01:00
chylex d2d49d1c69 Use copyIf in BlockTablePedestal & fix ItemBaseTrinket not being open 2018-11-04 12:27:43 +01:00
chylex 309d671d04 Add ItemStack.copyIf extension 2018-11-04 12:26:58 +01:00
chylex fe4b3c31c7 Rewrite BlockEditor.place to use Block.getStateForPlacement 2018-11-02 20:53:27 +01:00
chylex 36f4f1dd09 Add Table Link w/ recipe and sound effects 2018-11-02 16:11:12 +01:00
chylex 8cda9a7f6b Implement basic linking logic for Tables and Pedestals 2018-11-02 15:18:24 +01:00
chylex dfc05f80f1 Add BlockPos.updateState extension 2018-11-02 15:15:46 +01:00
chylex b85eb3cfca Update Gradle to 4.10.2 2018-10-31 13:38:55 +01:00
chylex 0e7cf4c049 Work on Table Pedestal (finish item rendering, add inventory interactions) 2018-10-31 12:44:18 +01:00
chylex bca3eba66e Add InvReverseWrapper (item handler implementation with reversed slot order) 2018-10-30 23:13:01 +01:00
chylex 7e95c10956 Move TE notification checks & FLAG_MARK_DIRTY handling to notifyUpdate 2018-10-30 22:28:01 +01:00
chylex adb1c3df17 Update existing code to use the new NBT extensions 2018-10-30 12:14:01 +01:00
chylex f7c525b4bd Add & update NBT extensions (BlockPos, presence checks, nullability) 2018-10-30 12:14:00 +01:00
chylex 45e4e0cf65 Add ItemStack.cleanupNBT extension w/ unit tests 2018-10-30 10:42:24 +01:00
chylex d93b3f67c1 Add WIP Table Pedestal (assets, model, rendering, inventory storage, recipe) 2018-10-29 23:48:42 +01:00
chylex 6d0b33be85 Minor refactoring and formatting fixes 2018-10-29 14:21:27 +01:00
chylex 13fd65ec58 Update existing classes to use new sound extensions 2018-10-28 13:24:38 +01:00
chylex e1afe9e2d6 Add SoundExt to simplify playing sound effects 2018-10-28 13:23:14 +01:00
chylex b93e9a4b2d Refactor TileEntityBaseChest inventory to use Kotlin's delegation pattern 2018-10-28 11:15:29 +01:00
chylex 5f9f96c055 Add several extension methods (ItemStack, BlockPos, NBT) 2018-10-27 14:36:12 +02:00
chylex c4afd56f9d Add Table Base w/ assets and base classes 2018-10-22 04:07:01 +02:00
chylex 650b8ef90a Add Dark Chest 2018-10-20 18:27:37 +02:00
chylex 0b20a03267 Add temporary ATs to simplify block builder until 1.13 comes 2018-10-20 18:17:01 +02:00
chylex 7b4c33a194 Refactor InfusionList.tag to use NBTEnumList.of 2018-10-20 00:10:05 +02:00
chylex b878300c27 Add Loot Chest w/ creative mode editing and custom opening sound 2018-10-17 18:47:21 +02:00
chylex 2b04c66a28 Simplify TileEntity GUI registration in ModGuiHandler 2018-10-17 16:34:48 +02:00
chylex 9b292ef7dc Add base classes for custom Chests 2018-10-17 15:44:34 +02:00
chylex 6202e75d4f Fix shift-clicking items into read-only slots 2018-10-17 13:28:41 +02:00
chylex 81e5e356bf Simplify NBTEnumList creation & tweak NBTObjectList exception messages 2018-10-17 11:42:37 +02:00
chylex df8b87d408 Add extensions to save/load inventories in NBT 2018-10-17 11:42:03 +02:00
chylex 8d68c8545c Fix some TEs not saving properly (Energy Cluster & End Portal Acceptor) 2018-10-17 11:39:11 +02:00
chylex a6a17d008a Refactor TileEntityBase serialization & add FLAG_MARK_DIRTY to Notifying delegate 2018-10-17 11:35:34 +02:00
chylex d4ff20c55d Update Forge and mappings 2018-10-15 20:50:38 +02:00
chylex 6b13c0b921 Fix Trinkets to respect 'keepInventory' rule 2018-10-15 19:19:52 +02:00
chylex 076a770054 Add Amulet of Recovery w/ recipe, custom model, and retrieval GUI 2018-10-15 19:19:52 +02:00
chylex fd68ddf03b Add method to change player's Trinket 2018-10-15 19:19:25 +02:00
chylex 696e5bbfab Add base class for Chest-like GUIs, read-only slot type, and listener for slot changes 2018-10-14 18:56:09 +02:00
chylex c4b3aa8b9f Add base Trinket item w/ custom tooltip and rarity 2018-10-14 18:01:47 +02:00
chylex 7f9f9996a0 Refactor ItemBaseEnergyUser (open some methods & add new getters) 2018-10-14 17:55:44 +02:00
chylex 9accb19903 Fix broken client->server packet handling 2018-10-14 14:30:44 +02:00
chylex f98c33050f Add GUI handler w/ packet for client GUI events 2018-10-14 11:49:46 +02:00
chylex 9ed7f393d1 Update existing code to use the new NBT extensions 2018-10-13 08:32:37 +02:00
chylex 331c56c903 Move 'heeTag' extensions to all NBTTagCompounds & update unit tests 2018-10-13 08:31:22 +02:00
chylex e139e29825 Fix inconsistency from autoformatting >:( 2018-10-13 06:00:45 +02:00
chylex 1b590ea53f Add extensions to write & read ItemStacks in NBT 2018-10-12 07:51:03 +02:00
chylex d37a0a1858 Add a trinket slot to player inventory 2018-10-11 13:54:29 +02:00
chylex 20c8db8efa Add particle effects to Ender Goo 2018-10-10 13:16:30 +02:00
chylex fb87e9435c Add entity height multiplier parameter to IShape.Point 2018-10-10 13:14:33 +02:00
chylex 1762df92ae Implement Ender Goo causing worsening negative effects to entities 2018-10-09 13:40:14 +02:00
chylex 89f6179eaf Add utilities to simplify Forge capabilities 2018-10-09 12:02:37 +02:00
chylex a549fe9b7b Implement Ender Goo affecting entity motion 2018-10-09 02:55:18 +02:00
chylex 53fffabd8f Generalize and refactor Ender Goo 2018-10-09 01:47:35 +02:00
chylex 27944f5342 Fix more block equality checks 2018-10-08 21:12:57 +02:00
chylex 620a87a6c7 Implement Corrupted Energy tolerance check 2018-10-08 01:56:28 +02:00
chylex 8c2cbd0c0c Add custom creature types 2018-10-08 01:55:51 +02:00
chylex 610d96cb3e Add Lifeless status effect 2018-10-08 01:48:35 +02:00
chylex bc2f59e869 Add base class for custom status effects 2018-10-07 18:16:28 +02:00
chylex 1a0254d6d5 Introduce ModPotions, tweak other registration code 2018-10-07 15:48:57 +02:00
chylex 2f9b482d4a Refactor Resource class 2018-10-07 15:42:35 +02:00
chylex b1a85adc48 Begin implementing Ender Goo (animated texture, overlay effects, custom bucket) 2018-10-06 18:54:34 +02:00
chylex e82fbd66a1 Add Dark Loam and Dark Loam Slab w/ recipe 2018-10-05 18:01:38 +02:00
chylex 579dee296d Fix brightness of custom slabs and stairs 2018-10-05 17:52:42 +02:00
chylex 517f0263f8 Tweak slab construction & fix localization keys for double slabs 2018-10-05 15:50:34 +02:00
chylex cdcea9c234 Add custom item repair recipe with End Powder 2018-10-05 14:52:06 +02:00
chylex d4136c017a Add base class for dynamic recipes 2018-10-05 14:51:25 +02:00
chylex 374d6fd6da Add Int.shlong extension (very necessary) 2018-10-05 14:43:21 +02:00
chylex 947518dfdd Update existing code to use the new ItemStack extensions 2018-10-05 13:39:33 +02:00
chylex b8041322e5 Add extensions for ItemStack (size, enchantments) & IInventory (renaming, iteration) 2018-10-05 13:33:29 +02:00
chylex 96a22b4830 Implement a TNT infusion (phasing w/ indestructible block collisions) 2018-10-04 21:22:58 +02:00
chylex fd40983fae Add extensions to deconstruct BlockPos and Vec3d objects 2018-10-04 21:10:00 +02:00
chylex 0c9dea7884 Delay breaking Ancient Cobwebs to fix weird client particle crash 2018-10-04 20:46:19 +02:00
chylex 6b2d73c864 Implement a TNT infusion (mining w/ special fishing mechanic) 2018-10-04 17:04:40 +02:00
chylex f18e481ac5 Implement a few TNT infusions (power, fire, trap, harmless) 2018-10-04 17:00:58 +02:00
chylex 8796cc1304 Add a custom item entity that spawns smoke 2018-10-04 15:19:14 +02:00
chylex 306755d3ac Add a way to sum multiple IOffset 2018-10-04 14:20:56 +02:00
chylex 7b49062afa Add remapRange utility function 2018-10-04 01:31:39 +02:00
chylex 5134ab2e44 Add Random.nextFloat that returns Double & update EntityItemIgneousRock 2018-10-04 01:29:56 +02:00
chylex a798b6405e Add '/hee infusions' command for testing 2018-10-03 21:52:51 +02:00
chylex 545acf4e0f Add base elements for Infused TNT 2018-10-03 21:48:54 +02:00
chylex d1c73594c3 Minor code fixes (parameter names & equality checks) 2018-10-03 19:37:34 +02:00
chylex 402387754d Reimplement vanilla explosions with more customizability 2018-10-03 14:58:19 +02:00
chylex 6f9985b5ef Generalize infusion storage and item behavior & fix tooltip spacing 2018-10-02 16:49:27 +02:00
chylex 78ec5286b7 Add Entity.useHeeTag extension & use it in EntityProjectileSpatialDash 2018-10-02 16:05:22 +02:00
chylex 1f68f4e0c5 Add EntityData delegate for synchronized entity properties 2018-10-02 16:04:07 +02:00
chylex 41ec8c0936 Simplify Corrupted Energy state json using empty state mapper 2018-10-02 15:37:57 +02:00
chylex 752fc2d4c8 Fix bugs with block registration params & add empty block state mapper 2018-10-02 15:34:48 +02:00
chylex 843f747811 Add Falling Obsidian w/ special falling entity and sound 2018-10-01 23:24:53 +02:00
chylex 4bca942856 Tweak EntityFallingBlockHeavy to let subclasses relocate during placement 2018-10-01 23:23:39 +02:00
chylex 362e718e27 Add empty sounds.json 2018-10-01 22:03:31 +02:00
chylex c30c5938fd IntelliJ is a great IDE with no glaring UX omissions Kappa 2018-10-01 14:33:33 +02:00
chylex 2336102de5 Add Ethereal Lantern w/ recipe 2018-10-01 13:03:54 +02:00
chylex 26378b6b1a Add Gloomtorch w/ recipe 2018-10-01 13:03:48 +02:00
chylex 35f8040a31 Spawn Corrupted Energy when a Cluster is destroyed 2018-09-30 18:33:24 +02:00
chylex 0287528291 Add Corrupted Energy & Cluster capacity deterioration 2018-09-30 18:32:02 +02:00
chylex 163c1468ef Add CombinedDamage to deal damage from multiple sources at once 2018-09-30 18:28:05 +02:00
chylex 167d0e5d16 Add BlockPos extensions to get all block positions in an area 2018-09-30 14:16:46 +02:00
chylex 11443ec1cd Fix vanilla bug with delayed lit particle interpolation 2018-09-29 15:40:59 +02:00
chylex 10e826dc53 Tweak & hide Energy Cluster selection box, and disable default particles 2018-09-29 15:38:30 +02:00
chylex 9f9dcc184d Add Energy Cluster rendering using particles 2018-09-29 15:38:24 +02:00
chylex b10a2ce816 Add a base class for Energy particles 2018-09-29 14:39:45 +02:00
chylex a625c3725a Override multiplyVelocity in ParticleBaseFloating (super method isn't uniform) 2018-09-29 13:09:04 +02:00
chylex ea118bcd59 Refactor Cluster color instantiation 2018-09-29 12:26:43 +02:00
chylex 37c60f31a3 Add a way to use custom skip function for particles 2018-09-29 12:23:19 +02:00
chylex b951c5335c Add a base class for floating particles (no gravity/collisions/random motion) 2018-09-28 22:12:18 +02:00
chylex 37351f8c6a Add teleportation and breaking FX to the Dragon Egg 2018-09-28 15:41:05 +02:00
chylex d7db2e55e4 Add custom teleportation FX & update existing code 2018-09-28 15:39:24 +02:00
chylex 5bd2cdf1b0 Add custom packet for particle and sound effects 2018-09-28 14:54:00 +02:00
chylex 0fae2ba2dd Add more ByteBuf extensions (strings, and apply-style method w/o return value) 2018-09-28 14:07:32 +02:00
chylex 55e63ea976 Implement particle spawning system for non-vanilla particle types 2018-09-28 12:44:29 +02:00
chylex 4d932dff42 Add a way to generate and validate particle data array 2018-09-28 12:43:15 +02:00
chylex a5fb760fd0 Update packets to use plain ByteBuf & add sendToAllAround w/ Vec3d parameter 2018-09-27 22:46:29 +02:00
chylex e88cab9ed2 Add ByteBuf extensions w/ unit tests 2018-09-27 22:44:21 +02:00
chylex 079ff94f3a Add particle effects to Igneous Rock 2018-09-26 21:36:08 +02:00
chylex 1dddd38654 Fix NetworkCheckHandler throwing when called in an undocumented circumstance 2018-09-26 21:03:30 +02:00
chylex 5461199bbe Begin implementing custom particle spawning system 2018-09-26 21:01:52 +02:00
chylex 2fe125bbbb Add extension method to get a point between two vectors 2018-09-26 17:28:13 +02:00
chylex 5fa62709be Fix End Portal rendering on older AMD cards 2018-09-25 12:57:00 +02:00
chylex 0aefcd227d Fix block culling in BlockSimpleShaped 2018-09-25 12:23:59 +02:00
chylex 4aec1e7bae Replace ResourceLocation constructor calls with utility methods 2018-09-25 12:01:01 +02:00
chylex e8c36b91ac Rename main mod object to HEE 2018-09-25 11:01:39 +02:00
chylex e67b3e032a Replace Dragon Egg and implement custom falling & interaction behavior 2018-09-25 09:27:35 +02:00
chylex 9c4a5e51de Fix Energy Oracle freaking out when held by the player model in a GUI 2018-09-25 09:00:06 +02:00
chylex a6375a36eb Refactor equality checks, fix imports, update BlockPos calls & ItemAncientCobweb 2018-09-25 08:34:52 +02:00
chylex 5db64b44c9 Add a custom falling block entity that crushes transparent blocks 2018-09-25 07:32:47 +02:00
chylex ee3f11e905 Refactor PosExt to return whether setters succeeded & add extensions 2018-09-25 07:29:17 +02:00
chylex 266ebe6beb Add EntityItemNoBob to simplify rendering items without bobbing 2018-09-24 13:54:37 +02:00
chylex aa1e75f40a Fix BlockPos.offsetUntil extension not using proper offset values 2018-09-24 13:29:07 +02:00
chylex 2f0e108aff Fix AI class names after intellij/kotlin stopped being weird 2018-09-24 13:27:03 +02:00
chylex a7d37192e0 Replace Silverfish and implement custom behavior, attributes, and drops 2018-09-24 10:00:54 +02:00
chylex 6bda95edde Add AI to hide in or spawn from blocks 2018-09-24 09:58:29 +02:00
chylex 36bf702fab Add custom targeting AI (random targeting, swarming multiple targets) 2018-09-24 09:26:23 +02:00
chylex 62d8b6212b Replace javaClass with ::class.java 2018-09-24 07:32:11 +02:00
chylex be4ae5fc9e Add AI utilities (custom base classes, constants, and class aliases) 2018-09-24 05:49:41 +02:00
chylex 5d22d72625 Allow passing class parameter to EntitySelector 2018-09-24 03:55:33 +02:00
chylex 356374f102 Fix formatting of 'return if' statements 2018-09-23 08:05:10 +02:00
chylex ac2acf7a53 Add loot condition for critical kills & simplify entity loot table registration 2018-09-23 05:24:18 +02:00
chylex 4147a71f03 Fix package name (game.entity.utils -> game.entity.util) 2018-09-22 20:38:52 +02:00
chylex e24c1ed4d4 Fix incorrect entity name formatting 2018-09-22 20:31:41 +02:00
chylex f9c9791dff Tweak damage classes (grouped protection modifiers, return if damage succeeded) 2018-09-22 20:16:20 +02:00
chylex 890e4b4f1b Add Dry Vine 2018-09-22 07:38:09 +02:00
chylex 5bc27f7c0e Allow generics in ItemBlock registration code 2018-09-22 07:36:36 +02:00
chylex fa3e3c4038 Update existing code to use new utilities & fix missing Spatial Dash Gem name 2018-09-22 03:53:56 +02:00
chylex fcae53a3c7 Add a Teleporter class to simplify teleportation code 2018-09-22 03:53:02 +02:00
chylex 7544bc454c Replace Chorus Flower, Plant, and Fruit, and implement custom drops and behavior 2018-09-22 01:35:48 +02:00
chylex a39395f70e Add extensions (BlockPos, iterable Facing) & refactor block/item registration code 2018-09-22 01:32:40 +02:00
chylex aef3147d79 Add Humus block w/ special planting and harvesting behavior 2018-09-21 06:33:09 +02:00
chylex 4fff20c966 Minor tweaks (add comments, update existing code to use getMaterial) 2018-09-20 15:08:07 +02:00
chylex a94ca2b2e0 Add Spatial Dash Gem w/ recipe and basic behavior 2018-09-20 15:07:30 +02:00
chylex fb76cb0997 Add a class to simplify storing UUID and retrieving the Entity 2018-09-20 14:56:49 +02:00
chylex 8878370758 Add a few extensions and utilities (math, BlockPos, BlockEditor, NBT) 2018-09-20 11:35:49 +02:00
chylex 67f27568f1 Add Static Core w/ recipe 2018-09-18 19:32:01 +02:00
chylex 0c4ff9c07b Add Energy Oracle w/ animated texture, recipe, and basic behavior 2018-09-18 00:00:55 +02:00
chylex e64719a13c Rewrite class for color transitions to improve queueing 2018-09-17 23:50:46 +02:00
chylex 9a19329e82 Rewrite ItemBaseEnergyUser to allow calculating Energy capacity and usage from NBT 2018-09-16 18:51:51 +02:00
chylex a7b40cfb56 Add ColorTransitionQueue for smooth client-side color transitions 2018-09-16 18:48:06 +02:00
chylex 2737681ab0 Convert HCL chroma and luminance to floats 2018-09-16 13:07:28 +02:00
chylex b43949a5dc Add vector and angle extensions 2018-09-16 13:06:37 +02:00
chylex d7273e2195 Why the hell is Kotlin exposing const vals of private companion objects 2018-09-15 19:39:52 +02:00
chylex 70510c3341 Minor formatting and annotation fixes 2018-09-15 13:08:29 +02:00
chylex b30fdcdf90 Implement WIP Igneous Rock entity burning and block smelting behavior 2018-09-15 13:06:01 +02:00
chylex ac6d8dd9b0 Add BlockPos extensions (new constructor, getFaceShape, offsetUntil) 2018-09-15 13:02:15 +02:00
chylex ace6f1b6b5 Add extension method to generate random vector 2018-09-15 13:01:00 +02:00
chylex 167465faad Add EntitySelector with several utility extension 2018-09-14 20:47:45 +02:00
chylex 134eb4e717 Change FIRE_TYPE damage to use ticks & update Igneous Rock Ore damage properties 2018-09-14 15:52:42 +02:00
chylex 2b799d1df8 Add Entity.setFireTicks extension & update EntityItem.cloneFrom to use AT 2018-09-14 15:51:12 +02:00
chylex 2fb8bef8c9 Add AT for 'fire' and 'pickupDelay' 2018-09-14 15:49:27 +02:00
chylex 4c2feacd29 Stop importing 'T' and fucking up generics, intellij 2018-09-14 13:07:18 +02:00
chylex 32fda32262 Simplify tile entity renderer registration code 2018-09-14 11:26:49 +02:00
chylex 2a5ff0d722 Add item entity for Igneous Rock w/ custom movement, lifespan, and rendering 2018-09-14 11:20:35 +02:00
chylex ec6c103813 Add entity utilities (extension methods and EntityItem renderer with no bobbing) 2018-09-14 11:09:24 +02:00
chylex 56f96c264e Add class with renderer factories 2018-09-14 11:06:54 +02:00
chylex 3088fa00af Move packet constructors and GUI factory to a different package 2018-09-13 16:57:00 +02:00
chylex 80155570e7 Refactor entity registration code 2018-09-13 16:56:27 +02:00
chylex 5b88697567 Add Igneous Rock Ore & Igneous Rock (WIP) 2018-09-13 12:37:17 +02:00
chylex 69bbceec40 Add Stardust Ore w/ drop table 2018-09-12 23:06:56 +02:00
chylex 68417a08a6 Add a base model for cubes with an overlay on each side & fix some formatting 2018-09-12 21:56:48 +02:00
chylex 75a08e846e Add a utility function to generate random numbers with bias 2018-09-12 21:55:42 +02:00
chylex e58cf55e12 Tweak Void Essence texture 2018-09-12 17:12:02 +02:00
chylex 6e51398da6 Add Vantablock w/ recipe 2018-09-12 17:04:27 +02:00
chylex d961392f87 Add resource items (Puzzle Medallion, Infernium, Auricion, Dragon Scale) 2018-09-12 14:48:30 +02:00
chylex 18aa107a52 Implement Energy Receptacle infusions 2018-09-11 13:43:57 +02:00
chylex aba96a917c Remove potentially confusing InfusionTag overloads 2018-09-11 13:39:50 +02:00
chylex 6e8d3d306f Implement a basic infusion system (serialization, item tooltip) 2018-09-11 12:15:15 +02:00
chylex 1d3520c3a1 Add an empty iterator object 2018-09-11 12:09:40 +02:00
chylex 2b8ba1bebb Add NBTEnumList to NBT extensions 2018-09-11 12:09:23 +02:00
chylex 85b4d2e81a Fix missing space before colon in generics 2018-09-11 00:02:53 +02:00
chylex b62f45fc70 Add Energy Cluster property generators for Overworld structures 2018-09-10 17:58:42 +02:00
chylex c8379d86ca Add a base generator for Energy Cluster properties and color 2018-09-10 15:37:45 +02:00
chylex 998b94bc5b Move the 'chylex.hee.render' to 'chylex.hee.game.render' 2018-09-10 14:57:45 +02:00
chylex 0a8d7f84da Add RandomExt.nextLong and WeightedList 2018-09-10 13:33:41 +02:00
chylex e78c0bfbb8 Display Cluster color in Energy Receptacle 2018-09-10 09:25:32 +02:00
chylex 9614fe7d46 Add Energy Cluster color 2018-09-10 09:23:42 +02:00
chylex 4a7b9acdb8 Add Energy Receptacle w/ recipe and WIP texture 2018-09-09 19:42:30 +02:00
chylex b4990cd6e4 Rework Energy Cluster serialization to simplify handling Cluster data 2018-09-09 17:17:47 +02:00
chylex 60ce0b5332 Move Energy quantity string conversion & tweak Energy item tooltips 2018-09-09 16:46:45 +02:00
chylex 187d27d3fd Add a method to deteriorate Energy Cluster's health 2018-09-09 15:56:14 +02:00
chylex 0032321015 Add utilities for block placement 2018-09-09 13:24:28 +02:00
chylex d9cdd61515 Fix wrong NBT calls in TileEntityEnergyCluster & use constants for keys 2018-09-08 22:24:51 +02:00
chylex be9e6d6eb6 Fix death messages with custom damage system 2018-09-08 19:31:29 +02:00
chylex 421a707252 Implement damage modifiers that modify invincibility frames 2018-09-08 15:15:38 +02:00
chylex 241b6e4ae5 Move some stuff around in IDamageProcessor 2018-09-08 15:06:10 +02:00
chylex b772ae3ba8 Implement damage types & enchantment protection handling 2018-09-08 14:52:47 +02:00
chylex 406166b9f4 Implement damage modifiers for armor, shields, and status effects 2018-09-08 13:25:16 +02:00
chylex bd04429a01 Implement difficulty/gamemode damage modifiers 2018-09-08 11:41:20 +02:00
chylex 479815d194 Maximize client/server window when debugging 2018-09-08 11:21:11 +02:00
chylex a47db662bc Begin implementing a custom damage system 2018-09-08 09:38:12 +02:00
chylex 02366154b2 Fix a duplicate client-side NBT call in TileEntityBase 2018-09-06 21:34:32 +02:00
chylex 75bd585153 Replace vanilla End Portal & implement custom charging mechanic and animation 2018-09-06 21:16:43 +02:00
chylex 092617dc3d Add base classes and block builders for custom portals & update rendering 2018-09-06 19:56:24 +02:00
chylex bc5f22fb86 Add LerpedFloat & LerpedDouble to simplify partial tick handling 2018-09-06 19:40:24 +02:00
chylex 22d3c6102c Add a utility method to find the closest tile entity to a block 2018-09-06 19:40:16 +02:00
chylex 626e862684 More minor refactoring (mostly verbosity reduction) 2018-09-06 12:46:49 +02:00
chylex 4c5a9ac009 Add an overridable firstTick method to TileEntityBase 2018-09-06 11:07:59 +02:00
chylex fc09e69ae2 Set a client username to keep advancements and statistics 2018-09-06 08:30:11 +02:00
chylex 2263a093e1 Fix custom transparent material to prevent Energy Clusters from exploding on right-click 2018-09-06 08:29:27 +02:00
chylex f70af2a608 Use block builder for Energy Cluster & enable mining stats 2018-09-06 08:07:22 +02:00
chylex 2d106a9d53 Add miningStats property to block builder & add BlockSimpleShaped 2018-09-06 08:03:31 +02:00
chylex 292b023f62 Very minor refactoring (parameter nullability) 2018-09-06 07:37:58 +02:00
chylex 2affe45fb9 Minor formatting fixes 2018-09-05 21:25:57 +02:00
chylex 9cd2e0363c Add a utility method to override vanilla blocks 2018-09-05 20:30:59 +02:00
chylex 884996927c Minor fix to explosion resistance for indestructible blocks 2018-09-05 20:14:51 +02:00
chylex 6b3b88ab2d Rewrite End Portal rendering to look like before Mojang fucked it up 2018-09-05 19:17:30 +02:00
chylex db7df5388e Add minor math & GL utilities 2018-09-05 18:23:41 +02:00
chylex c6474f0f33 Add End Stone variations 2018-09-05 09:58:51 +02:00
chylex 405cadb80a Optimize Obsidian textures 2018-09-05 08:22:46 +02:00
chylex 3cb7265776 Replace Ender Chest recipe 2018-09-05 07:50:21 +02:00
chylex 6a695aa713 Add Obsidian blocks (Stairs, Smooth, Chiseled, Pillar) & items (Fragment, Rod) w/ recipes 2018-09-05 06:49:03 +02:00
chylex c1e17415d1 Fix recipe issues (wrong file names & missing grouping for Endium Ingot and Gloomrock) 2018-09-05 06:38:44 +02:00
chylex e4b3ecdf0d Add base class for pillar blocks 2018-09-05 06:23:43 +02:00
chylex c49df03491 Fix issues with explosion resistance calculations 2018-09-05 06:08:54 +02:00
chylex a0f5ec6bd0 Add a few ore blocks (End Powder Ore, Endium Ore) 2018-09-04 18:00:41 +02:00
chylex 6ca0e9e13d Simplify loot table registration 2018-09-04 17:22:16 +02:00
chylex 9f995f050f Implement modifications to vanilla blocks (End Stone Bricks, Purpur Block, End Rod) 2018-09-04 16:17:10 +02:00
chylex 19ad33e2b8 Add a class for data integrity checking after the game loads 2018-09-04 16:14:04 +02:00
chylex 07395fcfe1 Convert block json files to forge blockstate format 2018-09-04 15:07:56 +02:00
chylex 8fe36fd557 Add forge blockstate json generators 2018-09-04 15:03:05 +02:00
chylex f523928917 Add Endium block and items w/ conversion recipes 2018-09-04 07:55:43 +02:00
chylex acb3eb0b37 Allow extending BlockSimple & minor tweak to ItemBlock registration and a comment 2018-09-04 07:28:33 +02:00
chylex eeeb4ea50a Add a few resource items (End Powder, Stardust, Void Essence) 2018-09-04 06:04:59 +02:00
chylex 5e4ea03910 Forgot to initialize custom loot 2018-09-04 02:54:14 +02:00
chylex cfe34ad483 Add Ancient Cobweb 2018-09-04 02:53:41 +02:00
chylex 426d405df7 Adapt vanilla loot system to block drops w/ Fortune condition 2018-09-03 18:15:25 +02:00
chylex 0b64683f52 Add base class for Energy-containing items & implement charging 2018-09-03 13:17:53 +02:00
chylex d235db2b7c Fix Energy Clusters overflowing during regeneration 2018-09-03 12:52:36 +02:00
chylex 342e3c4cc8 Add a text overlay when looking at Energy Clusters 2018-09-03 10:35:59 +02:00
chylex b5bfa36f0c Implement several basic Energy Cluster features (regeneration, health, inactivity, WIP breaking) 2018-09-03 09:11:34 +02:00
chylex 4409dd1491 Add a few extensions to PosExt & RandomExt 2018-09-03 07:33:54 +02:00
chylex e4911d66e8 Update NBT extensions with a property to create & retrieve a HEE specific tag 2018-09-03 06:38:31 +02:00
chylex a2e501e69e Add scalar multiplication to IEnergyQuantity w/ updated unit tests 2018-09-03 04:53:20 +02:00
chylex eda7af0ccf Add IEnergyQuantity for different representations of Energy amounts w/ unit tests 2018-09-03 03:31:16 +02:00
chylex 8b289283e9 Update TileEntityBase to use the new BlockPos extensions and constants 2018-09-03 00:14:29 +02:00
chylex 3b64d64ce4 Add BlockPos extensions 2018-09-03 00:04:51 +02:00
chylex 75905303b4 Add base material and classes for Energy Clusters 2018-09-02 14:03:31 +02:00
chylex 0d21e12ad0 Minor refactorings (block materials, exception messages, math extension use) 2018-08-29 16:18:53 +02:00
chylex bf85417659 Move from Trove to fastutil 2018-08-29 07:25:54 +02:00
chylex c7cc9b762a Add TileEntityBase with simple NBT synchronization 2018-08-29 06:59:30 +02:00
chylex 52bd97a96d Add setEnum/getEnum to NBT extensions 2018-08-29 06:56:54 +02:00
chylex da17bda84d Add color utilities (RGB & HCL/CIELCH conversion) 2018-08-29 06:38:12 +02:00
chylex cac8a624ae Add a custom material builder & some basic materials 2018-08-28 05:07:32 +02:00
chylex 4e9fba3d1c Fix explosion resistance in BlockSimple not matching vanilla values 2018-08-28 04:00:53 +02:00
chylex 3ec3714978 Add NBT extensions for ItemStacks and lists w/ unit tests 2018-08-28 03:06:07 +02:00
chylex bd2f643740 Add JUnit reference & update run configurations 2018-08-27 19:34:41 +02:00
chylex c5811a1816 Add an update WIP extension methods (Math, EnumFacing) 2018-08-27 18:36:02 +02:00
chylex 5ed9954360 Optimize PNG files 2018-08-26 21:19:30 +02:00
chylex 2582e0b3ac Register item models automatically because I can't be bothered 2018-08-26 21:07:35 +02:00
chylex 2d17bfbf9a Update build.gradle (kotlin version & minor tweaks) 2018-08-26 20:23:08 +02:00
chylex a308f0d66f Add Stone Brick Wall w/ recipe 2018-08-26 17:16:53 +02:00
chylex 238ad265b9 Add recipes for Gloomrock 2018-08-26 16:34:38 +02:00
chylex f3bfa5cc88 Add ModRecipes 2018-08-26 15:58:41 +02:00
chylex 99acb1e5ca Ensure block and item order in creative tab 2018-08-26 15:43:18 +02:00
chylex 7db613f2b7 Add Gloomrock & variations 2018-08-26 14:53:07 +02:00
chylex b3ecb70643 Add a base class and json generator for stairs 2018-08-26 14:30:34 +02:00
chylex 8df0ac29ee Fix error in BlockSlabCustom & use the property builder 2018-08-26 14:00:35 +02:00
chylex 556870311d Prepare block and model registration code w/ property builder 2018-08-26 13:55:39 +02:00
chylex 1cbf8730e4 Add a base class and json generator for slabs 2018-08-26 11:56:02 +02:00
chylex df1995428e Add scripts to simplify block and item json generation 2018-08-25 18:30:41 +02:00
chylex 9d87e196ba Add a recipe for Alteration Nexus 2018-08-25 15:54:07 +02:00
chylex 05d9de3ff5 Add a few resource items & update creative tab icon
Items: Ethereum, Ancient Dust, Alteration Nexus
2018-08-25 15:45:13 +02:00
chylex 51eb529157 Prepare item and model registration code 2018-08-25 15:18:41 +02:00
chylex 2d7d9f182a Add a creative tab 2018-08-25 14:19:36 +02:00
chylex 7fb26db4f4 Refactor ModConfig for better categorization of options 2018-03-25 18:25:40 +02:00
chylex 9605219761 Add a WIP client command '/hee version' 2018-03-25 17:21:52 +02:00
chylex 47d00e2c91 Add a debug command '/hee testworld' 2018-03-24 09:56:20 +01:00
chylex 52018f3c53 Add registry handlers for blocks, items, and entities 2018-03-24 09:44:53 +01:00
chylex 890850763b Move ModPackets and make it safer 2018-03-24 07:20:53 +01:00
chylex c6ded167cd Add a networking system 2018-03-23 17:36:10 +01:00
chylex 1f878d8edb Add import exclusion rules and fix warnings 2018-03-22 11:17:30 +01:00
chylex 5a5e347de0 Cleanup code and formatting of help command 2018-03-22 09:52:03 +01:00
chylex 1893f1bd94 Implement an interactive help command 2018-03-22 07:34:19 +01:00
chylex 05d8c21227 Add a subcommand system and support for debug-only commands 2018-03-21 05:19:48 +01:00
chylex dd22239f1c Add a basic client/server command system 2018-03-21 01:38:10 +01:00
chylex 15f7f78d69 Add debug mode triggered by a custom VM argument 2018-03-20 23:59:17 +01:00
chylex 27c6d533f0 Push run configurations 2018-03-20 23:32:10 +01:00
chylex 28e897cdfd Update annotation settings 2018-03-20 23:03:37 +01:00
chylex 7be4cff5ef Add a basic proxy object 2018-03-20 21:09:10 +01:00
chylex 074ba8e881 Add extension methods for Random 2018-03-20 09:21:00 +01:00
chylex cedb89d3c2 Store version in main class and add a network check 2018-03-20 08:27:16 +01:00
chylex 2227eee3dd Fix Kotlin to target JVM 1.8 and ignore NetworkCheckHandler warnings 2018-03-17 20:35:29 +01:00
chylex d15538aaa6 Merge branch 'master' of https://github.com/chylex/Hardcore-Ender-Expansion-2 2018-03-15 22:53:16 +01:00
chylex d9c6f75dcb Add a test config file 2018-03-15 22:18:58 +01:00
chylex 433a137fed Add log to main class and fix formatting 2018-03-15 22:13:15 +01:00
chylexandGitHub a667d08b9c Add a readme file 2018-03-02 08:15:39 +01:00
chylex 95af2c14fc Update Kotlin version and modules.xml 2018-03-02 08:11:32 +01:00
chylex 23372bd45d Let's Go! I mean, Kotlin 2018-01-29 13:32:58 +01:00
chylex 0af463f98c Push gitignore and workspace settings 2018-01-29 13:11:52 +01:00
chylex 4e4ffa01ea Gradle 2018-01-29 09:24:19 +01:00
1573 changed files with 61477 additions and 1193 deletions
-1
View File
@@ -1 +0,0 @@
* text=auto eol=lf
+22 -9
View File
@@ -1,15 +1,28 @@
# IntelliJ # idea
out
/.idea/
*.iml
*.ipr *.ipr
*.iws *.iws
*.iml
# Gradle .idea/gradle.xml
.idea/tasks.xml
.idea/workspace.xml
.gradle/ .idea/codeStyles
build/ .idea/libraries
# Game # eclipse
bin
*.launch
.settings
.metadata
.classpath
.project
/run/ # gradle
build
.gradle
# game
run/*
!run/*.ps1
+40
View File
@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaProjectCodeInsightSettings">
<excluded-names>
<name>akka</name>
<name>com.ibm</name>
<name>com.sun</name>
<name>java.awt</name>
<name>java.beans</name>
<name>java.rmi</name>
<name>javafx</name>
<name>javax.rmi</name>
<name>javax.swing</name>
<name>javax.xml</name>
<name>jdk.internal</name>
<name>net.java.games.input.Component.Identifier.Key</name>
<name>net.minecraft.init.Blocks</name>
<name>net.minecraft.init.Items</name>
<name>net.minecraft.init.MobEffects</name>
<name>net.minecraft.init.PotionTypes</name>
<name>net.minecraft.init.SoundEvents</name>
<name>net.minecraft.util.EnumActionResult</name>
<name>net.minecraft.util.EnumFacing</name>
<name>net.minecraft.util.EnumHand</name>
<name>net.minecraft.world.EnumDifficulty</name>
<name>net.minecraftforge.fml.common.Mod.EventBusSubscriber</name>
<name>net.minecraftforge.fml.common.eventhandler.Event</name>
<name>net.minecraftforge.fml.common.eventhandler.EventPriority</name>
<name>net.minecraftforge.fml.common.eventhandler.SubscribeEvent</name>
<name>net.minecraftforge.fml.relauncher.Side</name>
<name>net.minecraftforge.fml.relauncher.SideOnly</name>
<name>org.ietf</name>
<name>org.omg</name>
<name>org.w3c</name>
<name>org.xml</name>
<name>scala</name>
<name>sun</name>
</excluded-names>
</component>
</project>
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="1.8">
<module name="Hardcore-Ender-Expansion-2.api" target="1.8" />
<module name="Hardcore-Ender-Expansion-2.main" target="1.8" />
<module name="Hardcore-Ender-Expansion-2.test" target="1.8" />
</bytecodeTargetLevel>
</component>
</project>
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" defaultCharsetForPropertiesFiles="UTF-8">
<file url="PROJECT" charset="UTF-8" />
</component>
</project>
+22
View File
@@ -0,0 +1,22 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="CascadeIf" enabled="false" level="INFO" enabled_by_default="false" />
<inspection_tool class="ClassName" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<option name="namePattern" value="[A-Z][_A-Za-z\d]*" />
</inspection_tool>
<inspection_tool class="FoldInitializerAndIfToElvis" enabled="false" level="INFO" enabled_by_default="false" />
<inspection_tool class="FunctionName" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<option name="namePattern" value="([A-Za-z][A-Za-z\d]*)|([A-Z][_A-Z\d]*)" />
</inspection_tool>
<inspection_tool class="RedundantSuppression" enabled="true" level="WARNING" enabled_by_default="true">
<option name="IGNORE_ALL" value="true" />
</inspection_tool>
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
<option name="processCode" value="true" />
<option name="processLiterals" value="true" />
<option name="processComments" value="true" />
</inspection_tool>
<inspection_tool class="UnusedProperty" enabled="false" level="WARNING" enabled_by_default="false" />
</profile>
</component>
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Kotlin2JsCompilerArguments">
<option name="sourceMapEmbedSources" />
<option name="sourceMapPrefix" />
</component>
<component name="Kotlin2JvmCompilerArguments">
<option name="jvmTarget" value="1.8" />
</component>
</project>
+41
View File
@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="EntryPointsManager">
<list size="6">
<item index="0" class="java.lang.String" itemvalue="net.minecraftforge.fml.common.Mod" />
<item index="1" class="java.lang.String" itemvalue="net.minecraftforge.fml.common.Mod.EventBusSubscriber" />
<item index="2" class="java.lang.String" itemvalue="net.minecraftforge.fml.common.Mod.EventHandler" />
<item index="3" class="java.lang.String" itemvalue="net.minecraftforge.fml.common.eventhandler.SubscribeEvent" />
<item index="4" class="java.lang.String" itemvalue="net.minecraftforge.fml.common.network.NetworkCheckHandler" />
<item index="5" class="java.lang.String" itemvalue="net.minecraftforge.fml.relauncher.IFMLLoadingPlugin.Name" />
</list>
</component>
<component name="NullableNotNullManager">
<option name="myDefaultNullable" value="javax.annotation.Nullable" />
<option name="myDefaultNotNull" value="javax.annotation.Nonnull" />
<option name="myNullables">
<value>
<list size="5">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
<item index="2" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" />
<item index="3" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
<item index="4" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
</list>
</value>
</option>
<option name="myNotNulls">
<value>
<list size="4">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
<item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
<item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
</list>
</value>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="false" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/bin" />
</component>
</project>
+11
View File
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/modules/Hardcore-Ender-Expansion-2.iml" filepath="$PROJECT_DIR$/.idea/modules/Hardcore-Ender-Expansion-2.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/Hardcore-Ender-Expansion-2.api.iml" filepath="$PROJECT_DIR$/.idea/modules/Hardcore-Ender-Expansion-2.api.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/Hardcore-Ender-Expansion-2.main.iml" filepath="$PROJECT_DIR$/.idea/modules/Hardcore-Ender-Expansion-2.main.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/Hardcore-Ender-Expansion-2.test.iml" filepath="$PROJECT_DIR$/.idea/modules/Hardcore-Ender-Expansion-2.test.iml" />
</modules>
</component>
</project>
+15
View File
@@ -0,0 +1,15 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Minecraft Client" type="Application" factoryName="Application" singleton="true">
<option name="MAIN_CLASS_NAME" value="GradleStart" />
<module name="Hardcore-Ender-Expansion-2.main" />
<option name="PROGRAM_PARAMETERS" value="--username Player" />
<option name="VM_PARAMETERS" value="-Dhee.debug -Dfml.coreMods.load=chylex.hee.system.core.CoremodPlugin -XX:HotswapDeoptClassPath='chylex.,net.,com.sun.proxy.$Proxy,sun.reflect.Generated'" />
<option name="WORKING_DIRECTORY" value="./run" />
<extension enabled="false" name="coverage" runner="idea" sample_coverage="true" />
<RunnerSettings RunnerId="Run" />
<ConfigurationWrapper RunnerId="Run" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
</component>
+14
View File
@@ -0,0 +1,14 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Minecraft Server" type="Application" factoryName="Application" singleton="true">
<option name="MAIN_CLASS_NAME" value="GradleStartServer" />
<module name="Hardcore-Ender-Expansion-2.main" />
<option name="VM_PARAMETERS" value="-Dhee.debug -Dfml.coreMods.load=chylex.hee.system.core.CoremodPlugin -XX:HotswapDeoptClassPath='chylex.,net.,com.sun.proxy.$Proxy,sun.reflect.Generated'" />
<option name="WORKING_DIRECTORY" value="./run" />
<extension enabled="false" name="coverage" runner="idea" sample_coverage="true" />
<RunnerSettings RunnerId="Run" />
<ConfigurationWrapper RunnerId="Run" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
</component>
+14
View File
@@ -0,0 +1,14 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Unit Tests" type="JUnit" factoryName="JUnit" singleton="true">
<module name="Hardcore-Ender-Expansion-2_test" />
<option name="PACKAGE_NAME" value="chylex.hee.test" />
<option name="MAIN_CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="TEST_OBJECT" value="package" />
<option name="PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="./run" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
</component>
+18
View File
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Statistic">
<option name="fileTypes" value="cfg;info;md" />
<option name="separateTabsFileTypes" value="java;json;kt;lang;mcmeta;py" />
<option name="excludedDirectories">
<list>
<option value="$PROJECT_DIR$/.gradle" />
<option value="$PROJECT_DIR$/gradle" />
<option value="$PROJECT_DIR$/.idea" />
<option value="$PROJECT_DIR$/run" />
<option value="$PROJECT_DIR$/bin" />
<option value="$PROJECT_DIR$/assets" />
<option value="$PROJECT_DIR$/build" />
</list>
</option>
</component>
</project>
-1
View File
@@ -1,3 +1,2 @@
# Hardcore Ender Expansion 2 # Hardcore Ender Expansion 2
Work in progress. PRs will not be accepted before release. Work in progress. PRs will not be accepted before release.
Binary file not shown.
Binary file not shown.
+1
View File
@@ -0,0 +1 @@
{"meta":{"format_version":"3.0","model_format":"modded_entity","box_uv":true},"name":"ender_eye","geo_name":"EnderEye","resolution":{"width":128,"height":64},"elements":[{"name":"head","from":[-9,0,-9],"to":[9,18,9],"autouv":0,"color":6,"origin":[0,0.5,0],"uuid":"fb9acb7e-e386-2daf-51e7-e487f7edb51e"},{"name":"eye","from":[-8,1,-9],"to":[8,17,-8],"autouv":0,"color":5,"origin":[0,0,0],"uv_offset":[15,47],"uuid":"0f34925f-0ce7-73d1-b6bc-3ebc6b954619"},{"name":"left","from":[9,-17,-2],"to":[12,10,1],"autouv":0,"color":3,"origin":[0,0,0],"uv_offset":[73,0],"uuid":"683a14b0-c7d3-ee33-e790-ec456d2eafa1"},{"name":"right","from":[-12,-17,-2],"to":[-9,10,1],"autouv":0,"color":6,"shade":false,"origin":[0,0,0],"uv_offset":[73,0],"uuid":"edc957d9-62dd-52d4-82a3-9db5f0f81fee"}],"outliner":[{"name":"head","uuid":"2a0767df-d550-08ea-5bef-585cc941b58f","export":true,"isOpen":true,"visibility":true,"autouv":0,"origin":[0,9,0],"children":["fb9acb7e-e386-2daf-51e7-e487f7edb51e"]},{"name":"eye","uuid":"3ed25df7-6cab-0a5f-3900-39521430d664","export":true,"isOpen":true,"visibility":true,"autouv":0,"origin":[0,9,0],"children":["0f34925f-0ce7-73d1-b6bc-3ebc6b954619"]},{"name":"arms","uuid":"50918f7b-a888-8c07-5851-72c157cac008","export":true,"isOpen":true,"visibility":true,"autouv":0,"origin":[0,8.5,-0.5],"children":["683a14b0-c7d3-ee33-e790-ec456d2eafa1","edc957d9-62dd-52d4-82a3-9db5f0f81fee"]}],"textures":[{"path":"C:\\Dan\\Projekty\\Hardcore-Ender-Expansion-2\\src\\main\\resources\\assets\\hee\\textures\\entity\\ender_eye.png","name":"ender_eye.png","folder":"entity","namespace":"hee","id":"0","particle":false,"mode":"link","saved":true,"uuid":"43e48689-95e3-8430-06f8-1c61b6f96c9d"}]}
Binary file not shown.
Binary file not shown.
+1
View File
@@ -0,0 +1 @@
{"meta":{"format_version":"3.0","model_format":"modded_entity","box_uv":true},"name":"IgneousPlate","geo_name":"IgneousPlate","resolution":{"width":32,"height":16},"elements":[{"name":"cube","from":[-14,-12,0],"to":[-12,-4,2],"autouv":0,"color":3,"origin":[3.5,8,1],"uv_offset":[0,6],"uuid":"90291b85-56cc-94f2-58ac-e37c867ac90a"},{"name":"cube","from":[-4,-12,0],"to":[-2,-4,2],"autouv":0,"color":1,"origin":[0,0,0],"uv_offset":[8,6],"uuid":"cf15a4d3-d9cb-be21-c49a-1e2cf8ba68e9"},{"name":"cube","from":[-14,-4,0],"to":[-2,-2,2],"autouv":0,"color":7,"origin":[0,0,0],"uuid":"5e21b956-681a-3556-7acd-a7098ee9fb5c"},{"name":"cube","from":[-14,-14,0],"to":[-2,-12,2],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,4],"uuid":"e944760c-3ee1-ca95-0a38-f470471948ba"},{"name":"cube","from":[-12,-12,0.5],"to":[-4,-4,1.5],"autouv":0,"color":3,"origin":[0,0,0],"uv_offset":[14,7],"uuid":"0566d9d0-a1b5-e435-e234-caa759b3aec4"}],"outliner":[{"name":"outerBox","uuid":"a5f25de6-2619-4ae4-2de8-c1cdec9112b7","export":true,"isOpen":true,"visibility":true,"autouv":0,"origin":[0,0,0],"children":["90291b85-56cc-94f2-58ac-e37c867ac90a","cf15a4d3-d9cb-be21-c49a-1e2cf8ba68e9","5e21b956-681a-3556-7acd-a7098ee9fb5c","e944760c-3ee1-ca95-0a38-f470471948ba"]},{"name":"innerBox","uuid":"62290e42-d30b-2154-940b-a50c3c127698","export":true,"isOpen":true,"visibility":true,"autouv":0,"origin":[0,0,0],"children":["0566d9d0-a1b5-e435-e234-caa759b3aec4"]}],"textures":[{"path":"C:\\Dan\\Projekty\\Hardcore-Ender-Expansion-2\\src\\main\\resources\\assets\\hee\\textures\\entity\\igneous_plate.png","name":"igneous_plate.png","folder":"entity","namespace":"hee","id":"0","particle":false,"mode":"link","saved":true,"uuid":"f1c8b220-6b45-6f19-175d-ba78fba868a3"}]}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+78
View File
@@ -0,0 +1,78 @@
buildscript{
ext.kotlin_version = "1.3.40"
repositories{
jcenter()
mavenCentral()
maven{
url = "http://files.minecraftforge.net/maven"
}
}
dependencies{
classpath "net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlin_version}"
}
}
apply plugin: "net.minecraftforge.gradle.forge"
apply plugin: "kotlin"
sourceCompatibility = targetCompatibility = "1.8"
tasks.withType(JavaCompile){
sourceCompatibility = targetCompatibility = "1.8"
}
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile){
kotlinOptions{
jvmTarget = "1.8"
apiVersion = "1.3"
languageVersion = "1.3"
freeCompilerArgs = [
"-Xno-call-assertions",
"-Xno-param-assertions",
"-Xno-receiver-assertions",
"-Xjvm-default=enable",
"-Xuse-experimental=kotlin.ExperimentalUnsignedTypes",
"-Xuse-experimental=kotlin.contracts.ExperimentalContracts",
"-XXLanguage:+InlineClasses"
]
}
}
minecraft{
version = "1.12.2-14.23.5.2768"
runDir = "run"
mappings = "stable_39"
makeObfSourceJar = false
}
dependencies{
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
compile "org.jetbrains.kotlin:kotlin-reflect"
testCompile "org.junit.jupiter:junit-jupiter-api:5.3.0-RC1"
}
test{
systemProperty "junit.jupiter.testinstance.lifecycle.default", "per_class"
}
def modinfo = null
processResources{
File file = new File(++sourceSets.main.resources.srcDirs.iterator(), "mcmod.info")
modinfo = new groovy.json.JsonSlurper().parseText(file.getText())[0]
rename("hee_at.cfg", "META-INF/hee_at.cfg")
}
jar{
archiveName = "HardcoreEnderExpansion MC-${project.minecraft.version} v${modinfo.version}.jar"
manifest{
attributes "FMLAT": "hee_at.cfg"
}
}
-13
View File
@@ -1,13 +0,0 @@
plugins {
idea
}
idea {
module {
excludeDirs.add(file("gradle"))
excludeDirs.add(file("run"))
isDownloadSources = true
isDownloadJavadoc = true
}
}
+2 -17
View File
@@ -1,18 +1,3 @@
# Mod # Sets default memory used for gradle commands. Can be overridden by user or command line properties.
group=com.chylex.hee # This is required to provide enough memory for the Minecraft decompilation process.
version=2.0.0-dev
# Dependencies
javaVersion=21
neoForgeVersion=20.6.13-beta
kotlinForForgeVersion=5.0.2
# Constraints
minecraftVersionRange=[1.20.6,)
neoForgeVersionRange=[20.6.13-beta,)
kotlinForForgeVersionRange=[5.0.0,)
# Gradle
org.gradle.jvmargs=-Xmx3G org.gradle.jvmargs=-Xmx3G
org.gradle.caching=true
org.gradle.parallel=true
-10
View File
@@ -1,10 +0,0 @@
# IntelliJ
/.idea/
*.iml
*.ipr
*.iws
# Gradle
/gradle/wrapper/gradle-wrapper.jar
-34
View File
@@ -1,34 +0,0 @@
plugins {
idea
`kotlin-dsl`
`maven-publish`
}
group = "com.chylex.hee.gradle"
version = "1"
idea {
module {
excludeDirs.add(file("gradle"))
excludeDirs.add(file("repository"))
isDownloadSources = true
isDownloadJavadoc = true
}
}
repositories {
gradlePluginPortal()
maven(url = "https://maven.neoforged.net/releases") { name = "NeoForge" }
}
dependencies {
implementation(group = "net.neoforged.gradle", name = "userdev", version = "7.0.120")
implementation(group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version = "1.9.22")
}
publishing {
repositories {
maven(url = projectDir.resolve("repository"))
}
}
-6
View File
@@ -1,6 +0,0 @@
# Gradle
org.gradle.caching=true
org.gradle.parallel=true
# Publishing
systemProp.org.gradle.internal.publish.checksums.insecure=true
@@ -1,7 +0,0 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-249
View File
@@ -1,249 +0,0 @@
#!/bin/sh
#
# Copyright © 2015-2021 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
##############################################################################
#
# Gradle start up script for POSIX generated by Gradle.
#
# Important for running:
#
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
# noncompliant, but you have some other compliant shell such as ksh or
# bash, then to run this script, type that shell name before the whole
# command line, like:
#
# ksh Gradle
#
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
# * functions;
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
# * compound commands having a testable exit status, especially «case»;
# * various built-in commands including «command», «set», and «ulimit».
#
# Important for patching:
#
# (2) This script targets any POSIX shell, so it avoids extensions provided
# by Bash, Ksh, etc; in particular arrays are avoided.
#
# The "traditional" practice of packing multiple parameters into a
# space-separated string is a well documented source of bugs and security
# problems, so this is (mostly) avoided, by progressively accumulating
# options in "$@", and eventually passing that to Java.
#
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
# see the in-line comments for details.
#
# There are tweaks for specific operating systems such as AIX, CygWin,
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
#
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
app_path=$0
# Need this for daisy-chained symlinks.
while
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
[ -h "$app_path" ]
do
ls=$( ls -ld "$app_path" )
link=${ls#*' -> '}
case $link in #(
/*) app_path=$link ;; #(
*) app_path=$APP_HOME$link ;;
esac
done
# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
warn () {
echo "$*"
} >&2
die () {
echo
echo "$*"
echo
exit 1
} >&2
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "$( uname )" in #(
CYGWIN* ) cygwin=true ;; #(
Darwin* ) darwin=true ;; #(
MSYS* | MINGW* ) msys=true ;; #(
NONSTOP* ) nonstop=true ;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD=$JAVA_HOME/jre/sh/java
else
JAVACMD=$JAVA_HOME/bin/java
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD=java
if ! command -v java >/dev/null 2>&1
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
fi
# Increase the maximum file descriptors if we can.
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
fi
# Collect all arguments for the java command, stacking in reverse order:
# * args from the command line
# * the main class name
# * -classpath
# * -D...appname settings
# * --module-path (only if needed)
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
# For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
JAVACMD=$( cygpath --unix "$JAVACMD" )
# Now convert the arguments - kludge to limit ourselves to /bin/sh
for arg do
if
case $arg in #(
-*) false ;; # don't mess with options #(
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
[ -e "$t" ] ;; #(
*) false ;;
esac
then
arg=$( cygpath --path --ignore --mixed "$arg" )
fi
# Roll the args list around exactly as many times as the number of
# args, so each arg winds up back in the position where it started, but
# possibly modified.
#
# NB: a `for` loop captures its iteration list before it begins, so
# changing the positional parameters here affects neither the number of
# iterations, nor the values presented in `arg`.
shift # remove old arg
set -- "$@" "$arg" # push replacement arg
done
fi
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
org.gradle.wrapper.GradleWrapperMain \
"$@"
# Stop when "xargs" is not available.
if ! command -v xargs >/dev/null 2>&1
then
die "xargs is not available"
fi
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
#
# In Bash we could simply go:
#
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
# set -- "${ARGS[@]}" "$@"
#
# but POSIX shell has neither arrays nor command substitution, so instead we
# post-process each arg (as a line of input to sed) to backslash-escape any
# character that might be a shell metacharacter, then use eval to reverse
# that process (while maintaining the separation between arguments), and wrap
# the whole thing up as a single "set" statement.
#
# This will of course break if any of these variables contains a newline or
# an unmatched quote.
#
eval "set -- $(
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
xargs -n1 |
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
tr '\n' ' '
)" '"$@"'
exec "$JAVACMD" "$@"
-92
View File
@@ -1,92 +0,0 @@
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%"=="" set DIRNAME=.
@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if %ERRORLEVEL% equ 0 goto execute
echo. 1>&2
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
echo. 1>&2
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
goto fail
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell
if %ERRORLEVEL% equ 0 goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
@@ -1 +0,0 @@
8c53620c5692edaa922df99e88aa7451
@@ -1 +0,0 @@
bd66e0beeaa9a4e476515c12572e29e3d561b7b2
@@ -1,80 +0,0 @@
{
"formatVersion": "1.1",
"component": {
"group": "com.chylex.hee.gradle",
"module": "hee-gradle-plugins",
"version": "1",
"attributes": {
"org.gradle.status": "release"
}
},
"createdBy": {
"gradle": {
"version": "8.7"
}
},
"variants": [
{
"name": "apiElements",
"attributes": {
"org.gradle.category": "library",
"org.gradle.dependency.bundling": "external",
"org.gradle.jvm.environment": "standard-jvm",
"org.gradle.jvm.version": 21,
"org.gradle.libraryelements": "jar",
"org.gradle.usage": "java-api",
"org.jetbrains.kotlin.platform.type": "jvm"
},
"files": [
{
"name": "hee-gradle-plugins-1.jar",
"url": "hee-gradle-plugins-1.jar",
"size": 733108,
"sha512": "8c1ba78307aa2c515f26f83f9266500bd68ca6333c7cff829c2a76796424269d8863cfd702d399c795adfdae94b7bcdf72f07b8c6bd8152bf060c78a43283407",
"sha256": "171ba9a326baa942164ec9c6399a50c27b71edce473f08cfa2add54ce467c2ec",
"sha1": "bd66e0beeaa9a4e476515c12572e29e3d561b7b2",
"md5": "8c53620c5692edaa922df99e88aa7451"
}
]
},
{
"name": "runtimeElements",
"attributes": {
"org.gradle.category": "library",
"org.gradle.dependency.bundling": "external",
"org.gradle.jvm.environment": "standard-jvm",
"org.gradle.jvm.version": 21,
"org.gradle.libraryelements": "jar",
"org.gradle.usage": "java-runtime",
"org.jetbrains.kotlin.platform.type": "jvm"
},
"dependencies": [
{
"group": "net.neoforged.gradle",
"module": "userdev",
"version": {
"requires": "7.0.120"
}
},
{
"group": "org.jetbrains.kotlin",
"module": "kotlin-gradle-plugin",
"version": {
"requires": "1.9.22"
}
}
],
"files": [
{
"name": "hee-gradle-plugins-1.jar",
"url": "hee-gradle-plugins-1.jar",
"size": 733108,
"sha512": "8c1ba78307aa2c515f26f83f9266500bd68ca6333c7cff829c2a76796424269d8863cfd702d399c795adfdae94b7bcdf72f07b8c6bd8152bf060c78a43283407",
"sha256": "171ba9a326baa942164ec9c6399a50c27b71edce473f08cfa2add54ce467c2ec",
"sha1": "bd66e0beeaa9a4e476515c12572e29e3d561b7b2",
"md5": "8c53620c5692edaa922df99e88aa7451"
}
]
}
]
}
@@ -1 +0,0 @@
bfc6d663eb698b5e372348b870c7b951
@@ -1 +0,0 @@
adcd08fa9b6d9aa94d2a69258a89bdab23c7ace4
@@ -1,26 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do_not_remove: published-with-gradle-metadata -->
<modelVersion>4.0.0</modelVersion>
<groupId>com.chylex.hee.gradle</groupId>
<artifactId>hee-gradle-plugins</artifactId>
<version>1</version>
<dependencies>
<dependency>
<groupId>net.neoforged.gradle</groupId>
<artifactId>userdev</artifactId>
<version>7.0.120</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-gradle-plugin</artifactId>
<version>1.9.22</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</project>
@@ -1 +0,0 @@
91b6a4aa191ec0c4dce4abefeb00f72e
@@ -1 +0,0 @@
1e6a80349a017a5a53816cf61cf5fc7fc5ba4fc1
@@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>com.chylex.hee.gradle</groupId>
<artifactId>hee-gradle-plugins</artifactId>
<versioning>
<latest>1</latest>
<release>1</release>
<versions>
<version>1</version>
</versions>
<lastUpdated>20240511075855</lastUpdated>
</versioning>
</metadata>
@@ -1 +0,0 @@
ab01f51b197eabf9037f94777a6ae9d9
@@ -1 +0,0 @@
7a4d2163a1d3f6a015b51bc76bd29d214595dea7
@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>hee.java</groupId>
<artifactId>hee.java.gradle.plugin</artifactId>
<version>1</version>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>com.chylex.hee.gradle</groupId>
<artifactId>hee-gradle-plugins</artifactId>
<version>1</version>
</dependency>
</dependencies>
</project>
@@ -1 +0,0 @@
f196bd1a3bc41dee8da6f62de657232d
@@ -1 +0,0 @@
28057427bd53cdd856eaf9ee66a132d9a1125be1
@@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>hee.java</groupId>
<artifactId>hee.java.gradle.plugin</artifactId>
<versioning>
<latest>1</latest>
<release>1</release>
<versions>
<version>1</version>
</versions>
<lastUpdated>20240511075854</lastUpdated>
</versioning>
</metadata>
@@ -1 +0,0 @@
603d48970b1cad2e907a1b070f20247a
@@ -1 +0,0 @@
22b4ca491774244c91f60f429b8c4dfd6a6bda42
@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>hee.kotlin</groupId>
<artifactId>hee.kotlin.gradle.plugin</artifactId>
<version>1</version>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>com.chylex.hee.gradle</groupId>
<artifactId>hee-gradle-plugins</artifactId>
<version>1</version>
</dependency>
</dependencies>
</project>
@@ -1 +0,0 @@
8c4f03e97711738d21870d5a9918bc7e
@@ -1 +0,0 @@
32e486aa78a2b3428b3f1151dbc7fbf674d4b009
@@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>hee.kotlin</groupId>
<artifactId>hee.kotlin.gradle.plugin</artifactId>
<versioning>
<latest>1</latest>
<release>1</release>
<versions>
<version>1</version>
</versions>
<lastUpdated>20240511075854</lastUpdated>
</versioning>
</metadata>
@@ -1 +0,0 @@
6f57bf2093a89c9c5035915b9fc8dabc
@@ -1 +0,0 @@
86d0ca44e770726163d46cbb481dd035d6a86f01
@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>hee.library</groupId>
<artifactId>hee.library.gradle.plugin</artifactId>
<version>1</version>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>com.chylex.hee.gradle</groupId>
<artifactId>hee-gradle-plugins</artifactId>
<version>1</version>
</dependency>
</dependencies>
</project>
@@ -1 +0,0 @@
03c0e6be358b44308048f2cf90e69e02
@@ -1 +0,0 @@
88fbfa80926a52378fa2f3e98d1ebbbb4e444a90
@@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>hee.library</groupId>
<artifactId>hee.library.gradle.plugin</artifactId>
<versioning>
<latest>1</latest>
<release>1</release>
<versions>
<version>1</version>
</versions>
<lastUpdated>20240511075854</lastUpdated>
</versioning>
</metadata>
@@ -1 +0,0 @@
a69c3149cf17aa90ac5624e667a6c137
@@ -1 +0,0 @@
a011445613d78360085a8987a5e5cbf40659e77a
@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>hee.minecraft</groupId>
<artifactId>hee.minecraft.gradle.plugin</artifactId>
<version>1</version>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>com.chylex.hee.gradle</groupId>
<artifactId>hee-gradle-plugins</artifactId>
<version>1</version>
</dependency>
</dependencies>
</project>
@@ -1 +0,0 @@
e600fee6a3545c69c77dc076b28eb823
@@ -1 +0,0 @@
7e65b2d10962b59d1ddc7cfcf54b6db6c21c384b
@@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>hee.minecraft</groupId>
<artifactId>hee.minecraft.gradle.plugin</artifactId>
<versioning>
<latest>1</latest>
<release>1</release>
<versions>
<version>1</version>
</versions>
<lastUpdated>20240511075854</lastUpdated>
</versioning>
</metadata>
@@ -1 +0,0 @@
0c7b43bd121d8eff6d3ca077903238a4
@@ -1 +0,0 @@
bb3dbbbaf4629a499f56623e9e38d41fe7a79408
-1
View File
@@ -1 +0,0 @@
rootProject.name = "hee-gradle-plugins"
@@ -1,22 +0,0 @@
val javaVersion: String by project
plugins {
java
}
sourceSets {
configureEach {
java.setSrcDirs(listOf(file("./$name/java")))
resources.setSrcDirs(listOf(file("./$name/resources")))
}
}
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(javaVersion))
}
}
tasks.withType<JavaCompile> {
options.encoding = "UTF-8"
}
@@ -1,24 +0,0 @@
val kotlinForForgeVersion: String by project
plugins {
id("hee.java")
kotlin("jvm")
}
sourceSets {
configureEach {
java.setSrcDirs(emptyList<File>())
kotlin.setSrcDirs(listOf(file("./$name/kotlin")))
}
}
repositories {
maven(url = "https://thedarkcolour.github.io/KotlinForForge") {
name = "KotlinForForge"
content { includeGroup("thedarkcolour") }
}
}
dependencies {
implementation("thedarkcolour:kotlinforforge-neoforge:${kotlinForForgeVersion}")
}
@@ -1,27 +0,0 @@
plugins {
id("hee.java")
}
val generateManifest = tasks.register("generateManifest") {
val outputDir = layout.buildDirectory.dir("generateManifest")
outputs.dir(outputDir).withPropertyName("outputDir")
doLast {
val outputDirFile = outputDir.get().asFile
outputDirFile.mkdir()
outputDirFile.resolve("MANIFEST.MF").writeText(
"""
Automatic-Module-Name: com.chylex.hee.${project.name}
FMLModType: GAMELIBRARY
""".trimIndent()
)
}
}
tasks.processResources {
from(generateManifest) {
into("META-INF")
}
}
@@ -1,12 +0,0 @@
val neoForgeVersion: String by project
plugins {
id("hee.java")
id("net.neoforged.gradle.userdev")
}
dependencies {
implementation("net.neoforged:neoforge:$neoForgeVersion")
}
runs.clear()
Binary file not shown.
+2 -3
View File
@@ -1,7 +1,6 @@
#Wed Oct 31 13:34:38 CET 2018
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-bin.zip
Vendored
+109 -194
View File
@@ -1,127 +1,78 @@
#!/bin/sh #!/usr/bin/env bash
#
# Copyright © 2015-2021 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
############################################################################## ##############################################################################
# ##
# Gradle start up script for POSIX generated by Gradle. ## Gradle start up script for UN*X
# ##
# Important for running:
#
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
# noncompliant, but you have some other compliant shell such as ksh or
# bash, then to run this script, type that shell name before the whole
# command line, like:
#
# ksh Gradle
#
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
# * functions;
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
# * compound commands having a testable exit status, especially «case»;
# * various built-in commands including «command», «set», and «ulimit».
#
# Important for patching:
#
# (2) This script targets any POSIX shell, so it avoids extensions provided
# by Bash, Ksh, etc; in particular arrays are avoided.
#
# The "traditional" practice of packing multiple parameters into a
# space-separated string is a well documented source of bugs and security
# problems, so this is (mostly) avoided, by progressively accumulating
# options in "$@", and eventually passing that to Java.
#
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
# see the in-line comments for details.
#
# There are tweaks for specific operating systems such as AIX, CygWin,
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
#
############################################################################## ##############################################################################
# Attempt to set APP_HOME # Attempt to set APP_HOME
# Resolve links: $0 may be a link # Resolve links: $0 may be a link
app_path=$0 PRG="$0"
# Need this for relative symlinks.
# Need this for daisy-chained symlinks. while [ -h "$PRG" ] ; do
while ls=`ls -ld "$PRG"`
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path link=`expr "$ls" : '.*-> \(.*\)$'`
[ -h "$app_path" ] if expr "$link" : '/.*' > /dev/null; then
do PRG="$link"
ls=$( ls -ld "$app_path" ) else
link=${ls#*' -> '} PRG=`dirname "$PRG"`"/$link"
case $link in #( fi
/*) app_path=$link ;; #(
*) app_path=$APP_HOME$link ;;
esac
done done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
# This is normally unused APP_NAME="Gradle"
# shellcheck disable=SC2034 APP_BASE_NAME=`basename "$0"`
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value. # Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum MAX_FD="maximum"
warn ( ) { warn ( ) {
echo "$*" echo "$*"
} >&2 }
die ( ) { die ( ) {
echo echo
echo "$*" echo "$*"
echo echo
exit 1 exit 1
} >&2 }
# OS specific support (must be 'true' or 'false'). # OS specific support (must be 'true' or 'false').
cygwin=false cygwin=false
msys=false msys=false
darwin=false darwin=false
nonstop=false nonstop=false
case "$( uname )" in #( case "`uname`" in
CYGWIN* ) cygwin=true ;; #( CYGWIN* )
Darwin* ) darwin=true ;; #( cygwin=true
MSYS* | MINGW* ) msys=true ;; #( ;;
NONSTOP* ) nonstop=true ;; Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM. # Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables # IBM's JDK on AIX uses strange locations for the executables
JAVACMD=$JAVA_HOME/jre/sh/java JAVACMD="$JAVA_HOME/jre/sh/java"
else else
JAVACMD=$JAVA_HOME/bin/java JAVACMD="$JAVA_HOME/bin/java"
fi fi
if [ ! -x "$JAVACMD" ] ; then if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
@@ -130,120 +81,84 @@ Please set the JAVA_HOME variable in your environment to match the
location of your Java installation." location of your Java installation."
fi fi
else else
JAVACMD=java JAVACMD="java"
if ! command -v java >/dev/null 2>&1 which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the Please set the JAVA_HOME variable in your environment to match the
location of your Java installation." location of your Java installation."
fi fi
fi
# Increase the maximum file descriptors if we can. # Increase the maximum file descriptors if we can.
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
case $MAX_FD in #( MAX_FD_LIMIT=`ulimit -H -n`
max*) if [ $? -eq 0 ] ; then
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
# shellcheck disable=SC2039,SC3045 MAX_FD="$MAX_FD_LIMIT"
MAX_FD=$( ulimit -H -n ) || fi
warn "Could not query maximum file descriptor limit" ulimit -n $MAX_FD
esac if [ $? -ne 0 ] ; then
case $MAX_FD in #( warn "Could not set maximum file descriptor limit: $MAX_FD"
'' | soft) :;; #( fi
*) else
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
# shellcheck disable=SC2039,SC3045 fi
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
fi fi
# Collect all arguments for the java command, stacking in reverse order: # For Darwin, add options to specify how the application appears in the dock
# * args from the command line if $darwin; then
# * the main class name GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
# * -classpath
# * -D...appname settings
# * --module-path (only if needed)
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
# For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
JAVACMD=$( cygpath --unix "$JAVACMD" )
# Now convert the arguments - kludge to limit ourselves to /bin/sh
for arg do
if
case $arg in #(
-*) false ;; # don't mess with options #(
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
[ -e "$t" ] ;; #(
*) false ;;
esac
then
arg=$( cygpath --path --ignore --mixed "$arg" )
fi fi
# Roll the args list around exactly as many times as the number of
# args, so each arg winds up back in the position where it started, but # For Cygwin, switch paths to Windows format before running java
# possibly modified. if $cygwin ; then
# APP_HOME=`cygpath --path --mixed "$APP_HOME"`
# NB: a `for` loop captures its iteration list before it begins, so CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
# changing the positional parameters here affects neither the number of JAVACMD=`cygpath --unix "$JAVACMD"`
# iterations, nor the values presented in `arg`.
shift # remove old arg # We build the pattern for arguments to be converted via cygpath
set -- "$@" "$arg" # push replacement arg ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi fi
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
JVM_OPTS=("$@")
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
org.gradle.wrapper.GradleWrapperMain \
"$@"
# Stop when "xargs" is not available.
if ! command -v xargs >/dev/null 2>&1
then
die "xargs is not available"
fi
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
#
# In Bash we could simply go:
#
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
# set -- "${ARGS[@]}" "$@"
#
# but POSIX shell has neither arrays nor command substitution, so instead we
# post-process each arg (as a line of input to sed) to backslash-escape any
# character that might be a shell metacharacter, then use eval to reverse
# that process (while maintaining the separation between arguments), and wrap
# the whole thing up as a single "set" statement.
#
# This will of course break if any of these variables contains a newline or
# an unmatched quote.
#
eval "set -- $(
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
xargs -n1 |
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
tr '\n' ' '
)" '"$@"'
exec "$JAVACMD" "$@"
Vendored
+38 -40
View File
@@ -1,19 +1,3 @@
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@if "%DEBUG%" == "" @echo off @if "%DEBUG%" == "" @echo off
@rem ########################################################################## @rem ##########################################################################
@rem @rem
@@ -26,28 +10,24 @@ if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0 set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=. if "%DIRNAME%" == "" set DIRNAME=.
@rem This is normally unused
set APP_BASE_NAME=%~n0 set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME% set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" set DEFAULT_JVM_OPTS=
@rem Find java.exe @rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1 %JAVA_EXE% -version >NUL 2>&1
if %ERRORLEVEL% equ 0 goto execute if "%ERRORLEVEL%" == "0" goto init
echo. 1>&2 echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo. 1>&2 echo.
echo Please set the JAVA_HOME variable in your environment to match the 1>&2 echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation. 1>&2 echo location of your Java installation.
goto fail goto fail
@@ -55,36 +35,54 @@ goto fail
set JAVA_HOME=%JAVA_HOME:"=% set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute if exist "%JAVA_EXE%" goto init
echo. 1>&2 echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo. 1>&2 echo.
echo Please set the JAVA_HOME variable in your environment to match the 1>&2 echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation. 1>&2 echo location of your Java installation.
goto fail goto fail
:init
@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
goto execute
:4NT_args
@rem Get arguments from the 4NT Shell from JP Software
set CMD_LINE_ARGS=%$
:execute :execute
@rem Setup the command line @rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle @rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end :end
@rem End local scope for the variables with windows NT shell @rem End local scope for the variables with windows NT shell
if %ERRORLEVEL% equ 0 goto mainEnd if "%ERRORLEVEL%"=="0" goto mainEnd
:fail :fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code! rem the _cmd.exe /c_ return code!
set EXIT_CODE=%ERRORLEVEL% if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
if %EXIT_CODE% equ 0 set EXIT_CODE=1 exit /b 1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%
:mainEnd :mainEnd
if "%OS%"=="Windows_NT" endlocal if "%OS%"=="Windows_NT" endlocal
+5
View File
@@ -0,0 +1,5 @@
Param([Parameter(Mandatory = $True, Position = 1)][string] $filePath)
Add-Type -AssemblyName System.Windows.Forms
$files = new-object System.Collections.Specialized.StringCollection
$files.Add($filePath)
[System.Windows.Forms.Clipboard]::SetFileDropList($files)
+3
View File
@@ -0,0 +1,3 @@
Param([Parameter(Mandatory = $True, Position = 1)][string] $processId)
Add-Type -MemberDefinition '[DllImport("user32.dll")]public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);' -Name Functions -Namespace Win32
[Win32.Functions]::ShowWindow((Get-Process -Id $processId).MainWindowHandle, 3)
-21
View File
@@ -1,21 +0,0 @@
rootProject.name = "hee"
pluginManagement {
repositories {
gradlePluginPortal()
maven(url = "https://maven.neoforged.net/releases") { name = "NeoForge" }
maven(url = rootDir.resolve("gradle/plugins/repository"))
}
plugins {
id("hee.java") version "1"
id("hee.kotlin") version "1"
id("hee.library") version "1"
id("hee.minecraft") version "1"
}
}
for (module in listOf("core", "content", "neoforge")) {
include(":$module")
project(":$module").projectDir = file("./src/$module")
}
-9
View File
@@ -1,9 +0,0 @@
plugins {
id("hee.kotlin")
id("hee.library")
id("hee.minecraft")
}
dependencies {
implementation(project(":core"))
}
@@ -1,11 +0,0 @@
package com.chylex.hee.content
import com.chylex.hee.content.block.GloomrockBlock
import com.chylex.hee.core.Constants
import net.neoforged.neoforge.registries.DeferredRegister
object HeeBlocks {
private val REGISTRY = DeferredRegister.createBlocks(Constants.MOD_ID)
val GLOOMROCK = GloomrockBlock.register(REGISTRY)
}
@@ -1,9 +0,0 @@
package com.chylex.hee.content
import com.chylex.hee.core.Constants
object Test {
fun test() {
println(Constants.MOD_ID)
}
}
@@ -1,6 +0,0 @@
package com.chylex.hee.content.block
import com.chylex.hee.core.HeeBlock
object GloomrockBlock : HeeBlock() {
}
-5
View File
@@ -1,5 +0,0 @@
plugins {
id("hee.kotlin")
id("hee.library")
id("hee.minecraft")
}
@@ -1,5 +0,0 @@
package com.chylex.hee.core
object Constants {
const val MOD_ID = "hee"
}
@@ -1,9 +0,0 @@
package com.chylex.hee.core
import net.neoforged.neoforge.registries.DeferredRegister
open class HeeBlock {
fun register(registry: DeferredRegister.Blocks) {
}
}
+104
View File
@@ -0,0 +1,104 @@
package chylex.hee
import chylex.hee.game.block.util.CustomPlantType
import chylex.hee.game.commands.HeeServerCommand
import chylex.hee.game.entity.CustomCreatureType
import chylex.hee.game.entity.item.EntityItemIgneousRock
import chylex.hee.game.entity.living.EntityMobEnderman
import chylex.hee.game.entity.living.behavior.EndermanBlockHandler
import chylex.hee.game.item.util.CustomRarity
import chylex.hee.game.item.util.CustomToolMaterial
import chylex.hee.game.mechanics.causatum.EnderCausatum
import chylex.hee.game.mechanics.instability.Instability
import chylex.hee.game.mechanics.trinket.TrinketHandler
import chylex.hee.game.world.WorldProviderEndCustom
import chylex.hee.game.world.feature.OverworldFeatures
import chylex.hee.game.world.territory.storage.TokenPlayerStorage
import chylex.hee.init.ModCreativeTabs
import chylex.hee.init.ModGuiHandler
import chylex.hee.init.ModLoot
import chylex.hee.init.ModNetwork
import chylex.hee.init.ModPotions
import chylex.hee.init.ModRecipes
import chylex.hee.proxy.Environment
import chylex.hee.system.Debug
import chylex.hee.system.IntegrityCheck
import chylex.hee.system.migration.forge.Side
import net.minecraftforge.fml.common.Mod
import net.minecraftforge.fml.common.Mod.EventHandler
import net.minecraftforge.fml.common.event.FMLInitializationEvent
import net.minecraftforge.fml.common.event.FMLLoadCompleteEvent
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent
import net.minecraftforge.fml.common.event.FMLServerStartingEvent
import net.minecraftforge.fml.common.network.NetworkCheckHandler
import org.apache.logging.log4j.Logger
@Mod(modid = HEE.ID, useMetadata = true, modLanguageAdapter = "chylex.hee.system.core.KotlinAdapter")
object HEE{
const val ID = "hee"
const val DIM = 1
lateinit var log: Logger
lateinit var version: String
val proxy = Environment.constructProxy()
init{
CustomRarity
CustomToolMaterial
CustomCreatureType
CustomPlantType
}
@EventHandler
fun onPreInit(e: FMLPreInitializationEvent){
log = e.modLog
version = e.modMetadata.version
Debug.initialize()
ModNetwork.initialize()
ModGuiHandler.initialize()
ModCreativeTabs.initialize()
TrinketHandler.register()
EnderCausatum.register()
Instability.register()
TokenPlayerStorage.register()
WorldProviderEndCustom.register()
proxy.onPreInit()
}
@EventHandler
fun onInit(@Suppress("UNUSED_PARAMETER") e: FMLInitializationEvent){
ModLoot.initialize()
ModRecipes.initialize()
OverworldFeatures.register()
proxy.onInit()
}
@EventHandler
fun onPostInit(@Suppress("UNUSED_PARAMETER") e: FMLPostInitializationEvent){
CustomToolMaterial.setupRepairItems()
EntityItemIgneousRock.setupSmeltingTransformations()
EntityMobEnderman.setupBiomeSpawns()
EndermanBlockHandler.setupCarriableBlocks()
ModPotions.setupVanillaOverrides()
OverworldFeatures.setupVanillaOverrides()
}
@EventHandler
fun onLoadComplete(@Suppress("UNUSED_PARAMETER") e: FMLLoadCompleteEvent){
IntegrityCheck.verify()
}
@EventHandler
fun onServerStarting(e: FMLServerStartingEvent){
e.registerServerCommand(HeeServerCommand)
}
@NetworkCheckHandler
fun onNetworkCheck(mods: Map<String, String>, @Suppress("UNUSED_PARAMETER") side: Side): Boolean{
return mods.isNotEmpty() && mods[ID] == version
}
}
@@ -0,0 +1,30 @@
package chylex.hee.client.gui
import chylex.hee.client.gui.base.GuiBaseChestContainer
import chylex.hee.game.container.ContainerAmuletOfRecovery
import chylex.hee.network.server.PacketServerContainerEvent
import chylex.hee.system.migration.forge.Side
import chylex.hee.system.migration.forge.Sided
import net.minecraft.client.gui.GuiButton
import net.minecraft.client.resources.I18n
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.util.EnumHand
import net.minecraftforge.fml.client.config.GuiButtonExt
@Sided(Side.CLIENT)
class GuiAmuletOfRecovery(player: EntityPlayer, itemHeldIn: EnumHand) : GuiBaseChestContainer(ContainerAmuletOfRecovery(player, itemHeldIn)){
override fun initGui(){
super.initGui()
val moveAllTitle = I18n.format("gui.hee.amulet_of_recovery.move_all")
val moveAllWidth = (fontRenderer.getStringWidth(moveAllTitle) + 14).coerceAtMost(xSize / 2)
buttonList.add(GuiButtonExt(1000, guiLeft + xSize - moveAllWidth - 7, (height / 2) + 6, moveAllWidth, 11, moveAllTitle))
}
override fun actionPerformed(button: GuiButton){
when(button.id){
1000 -> PacketServerContainerEvent(0).sendToServer()
else -> super.actionPerformed(button)
}
}
}
@@ -0,0 +1,68 @@
package chylex.hee.client.gui
import chylex.hee.client.render.util.GL
import chylex.hee.client.util.MC
import chylex.hee.game.block.entity.TileEntityBrewingStandCustom
import chylex.hee.game.container.ContainerBrewingStandCustom
import chylex.hee.system.migration.forge.Side
import chylex.hee.system.migration.forge.Sided
import chylex.hee.system.util.facades.Resource
import chylex.hee.system.util.getStack
import chylex.hee.system.util.isNotEmpty
import chylex.hee.system.util.totalTime
import net.minecraft.client.gui.inventory.GuiBrewingStand
import net.minecraft.entity.player.InventoryPlayer
@Sided(Side.CLIENT)
class GuiBrewingStandCustom(inventory: InventoryPlayer, private val brewingStand: TileEntityBrewingStandCustom) : GuiBrewingStand(inventory, brewingStand){
private companion object{
private val TEX_BACKGROUND = Resource.Custom("textures/gui/brewing_stand.png")
private val BUBBLE_LENGTHS = intArrayOf(0, 6, 11, 16, 20, 24, 29)
}
private var brewStartTime = brewingStand.world.totalTime
init{
inventorySlots = ContainerBrewingStandCustom(inventory, brewingStand)
}
override fun drawGuiContainerBackgroundLayer(partialTicks: Float, mouseX: Int, mouseY: Int){
val x = (width - xSize) / 2
val y = (height - ySize) / 2
GL.color(1F, 1F, 1F, 1F)
MC.textureManager.bindTexture(TEX_BACKGROUND)
drawTexturedModalRect(x, y, 0, 0, xSize, ySize)
val worldTime = brewingStand.world.totalTime
val brewTime = brewingStand.brewTime
if (brewTime > 0){
val brewProgress = (28F * (1F - (brewTime / 400F))).toInt()
if (brewProgress > 0){
drawTexturedModalRect(x + 97, y + 16, 176, 0, 9, brewProgress)
}
val bubbleLength = BUBBLE_LENGTHS[((worldTime - brewStartTime).toInt() / 2) % 7]
if (bubbleLength > 0){
drawTexturedModalRect(x + 63, y + 43 - bubbleLength, 185, 29 - bubbleLength, 12, bubbleLength)
}
}
else{
brewStartTime = worldTime
}
if (brewingStand.getStack(TileEntityBrewingStandCustom.SLOT_MODIFIER).isNotEmpty){
drawTexturedModalRect(x + 62, y + 45, 197, 0, 14, 2)
}
for(slotIndex in TileEntityBrewingStandCustom.SLOTS_POTIONS){
val slot = inventorySlots.getSlot(slotIndex)
if (!slot.hasStack){
drawTexturedModalRect(x + slot.xPos, y + slot.yPos, 211, 0, 16, 16)
}
}
}
}
@@ -0,0 +1,10 @@
package chylex.hee.client.gui
import chylex.hee.client.gui.base.GuiBaseChestContainer
import chylex.hee.game.block.entity.TileEntityLootChest
import chylex.hee.game.container.ContainerLootChest
import chylex.hee.system.migration.forge.Side
import chylex.hee.system.migration.forge.Sided
import net.minecraft.entity.player.EntityPlayer
@Sided(Side.CLIENT)
class GuiLootChest(player: EntityPlayer, tile: TileEntityLootChest) : GuiBaseChestContainer(ContainerLootChest(player, tile))
@@ -0,0 +1,17 @@
package chylex.hee.client.gui
import chylex.hee.client.gui.base.GuiBaseChestContainer
import chylex.hee.game.block.entity.TileEntityVoidPortalStorage
import chylex.hee.game.container.ContainerPortalTokenStorage
import chylex.hee.system.migration.forge.Side
import chylex.hee.system.migration.forge.Sided
import chylex.hee.system.util.any
import chylex.hee.system.util.nonEmptySlots
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.item.ItemStack
@Sided(Side.CLIENT)
class GuiPortalTokenStorage(player: EntityPlayer, tile: TileEntityVoidPortalStorage) : GuiBaseChestContainer(ContainerPortalTokenStorage(player, tile)){
fun canActivateToken(stack: ItemStack): Boolean{
return (inventorySlots as ContainerPortalTokenStorage).lowerChestInventory.nonEmptySlots.any { it.stack === stack }
}
}
@@ -0,0 +1,42 @@
package chylex.hee.client.gui
import chylex.hee.client.gui.base.GuiBaseCustomInventory
import chylex.hee.game.container.ContainerTrinketPouch
import chylex.hee.game.container.base.ContainerBaseCustomInventory
import chylex.hee.game.item.ItemTrinketPouch.Inventory
import chylex.hee.system.migration.forge.Side
import chylex.hee.system.migration.forge.Sided
import chylex.hee.system.util.color.IntColor.Companion.RGBA
import chylex.hee.system.util.facades.Resource
import chylex.hee.system.util.size
import net.minecraft.client.gui.Gui
import net.minecraft.entity.player.EntityPlayer
@Sided(Side.CLIENT)
class GuiTrinketPouch(player: EntityPlayer, inventorySlot: Int) : GuiBaseCustomInventory<Inventory>(ContainerTrinketPouch(player, inventorySlot)){
override val texBackground = Resource.Custom("textures/gui/trinket_pouch.png")
override val titleContainer = "gui.hee.trinket_pouch.title"
private val hiddenSlots: Int
private val hiddenSlotColor = RGBA(0u, 0.25F).i
init{
ySize = ContainerTrinketPouch.HEIGHT
hiddenSlots = ContainerTrinketPouch.MAX_SLOTS - (inventorySlots as ContainerBaseCustomInventory<*>).containerInventory.size
}
override fun drawGuiContainerBackgroundLayer(partialTicks: Float, mouseX: Int, mouseY: Int){
super.drawGuiContainerBackgroundLayer(partialTicks, mouseX, mouseY)
val middleSlot = ContainerTrinketPouch.MAX_SLOTS / 2
repeat(hiddenSlots){
renderSlotCover(middleSlot + ((ContainerTrinketPouch.MAX_SLOTS - it) / 2) * (if (it % 2 == 0) -1 else 1))
}
}
private fun renderSlotCover(index: Int){
val x = guiLeft + 44 + (index * 18)
val y = guiTop + 18
Gui.drawRect(x, y, x + 16, y + 16, hiddenSlotColor)
}
}
@@ -0,0 +1,49 @@
package chylex.hee.client.gui.base
import chylex.hee.client.render.util.GL
import chylex.hee.client.util.MC
import chylex.hee.system.migration.forge.Side
import chylex.hee.system.migration.forge.Sided
import chylex.hee.system.util.color.IntColor.Companion.RGB
import chylex.hee.system.util.facades.Resource
import chylex.hee.system.util.size
import net.minecraft.client.gui.inventory.GuiContainer
import net.minecraft.inventory.ContainerChest
@Sided(Side.CLIENT)
abstract class GuiBaseChestContainer(container: ContainerChest) : GuiContainer(container){
private companion object{
private val TEX_BACKGROUND = Resource.Vanilla("textures/gui/container/generic_54.png")
private val COLOR_TEXT = RGB(64u).i
}
private val containerRows = container.lowerChestInventory.size / 9
private val titleContainer = container.lowerChestInventory.displayName.unformattedText
private val titleInventory = MC.player?.inventory?.displayName?.unformattedText ?: "" // 'mc' not initialized yet
init{
ySize = 114 + (containerRows * 18)
}
override fun drawScreen(mouseX: Int, mouseY: Int, partialTicks: Float){
drawDefaultBackground()
super.drawScreen(mouseX, mouseY, partialTicks)
renderHoveredToolTip(mouseX, mouseY)
}
override fun drawGuiContainerBackgroundLayer(partialTicks: Float, mouseX: Int, mouseY: Int){
val x = (width - xSize) / 2
val y = (height - ySize) / 2
val heightContainer = 17 + (containerRows * 18)
GL.color(1F, 1F, 1F, 1F)
mc.textureManager.bindTexture(TEX_BACKGROUND)
drawTexturedModalRect(x, y, 0, 0, xSize, heightContainer)
drawTexturedModalRect(x, y + heightContainer, 0, 126, xSize, 96)
}
override fun drawGuiContainerForegroundLayer(mouseX: Int, mouseY: Int){
fontRenderer.drawString(titleContainer, 8, 6, COLOR_TEXT)
fontRenderer.drawString(titleInventory, 8, ySize - 94, COLOR_TEXT)
}
}
@@ -0,0 +1,43 @@
package chylex.hee.client.gui.base
import chylex.hee.client.render.util.GL
import chylex.hee.client.util.MC
import chylex.hee.game.container.base.ContainerBaseCustomInventory
import chylex.hee.system.migration.forge.Side
import chylex.hee.system.migration.forge.Sided
import chylex.hee.system.util.color.IntColor.Companion.RGB
import net.minecraft.client.gui.inventory.GuiContainer
import net.minecraft.client.resources.I18n
import net.minecraft.inventory.IInventory
import net.minecraft.util.ResourceLocation
@Sided(Side.CLIENT)
abstract class GuiBaseCustomInventory<T : IInventory>(container: ContainerBaseCustomInventory<T>) : GuiContainer(container){
private companion object{
private val COLOR_TEXT = RGB(64u).i
}
protected abstract val texBackground: ResourceLocation
protected abstract val titleContainer: String
private val titleInventory = MC.player?.inventory?.displayName?.unformattedText ?: "" // 'mc' not initialized yet
override fun drawScreen(mouseX: Int, mouseY: Int, partialTicks: Float){
drawDefaultBackground()
super.drawScreen(mouseX, mouseY, partialTicks)
renderHoveredToolTip(mouseX, mouseY)
}
override fun drawGuiContainerBackgroundLayer(partialTicks: Float, mouseX: Int, mouseY: Int){
val x = (width - xSize) / 2
val y = (height - ySize) / 2
GL.color(1F, 1F, 1F, 1F)
mc.textureManager.bindTexture(texBackground)
drawTexturedModalRect(x, y, 0, 0, xSize, ySize)
}
override fun drawGuiContainerForegroundLayer(mouseX: Int, mouseY: Int){
fontRenderer.drawString(I18n.format(titleContainer), 8, 6, COLOR_TEXT)
fontRenderer.drawString(titleInventory, 8, ySize - 94, COLOR_TEXT)
}
}
@@ -0,0 +1,44 @@
package chylex.hee.client.model
import chylex.hee.client.util.MC
import chylex.hee.system.migration.Hand.MAIN_HAND
import chylex.hee.system.migration.forge.Side
import chylex.hee.system.migration.forge.Sided
import chylex.hee.system.util.Vec3
import chylex.hee.system.util.lookPosVec
import chylex.hee.system.util.subtractY
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.util.EnumHand
import net.minecraft.util.EnumHandSide.RIGHT
import net.minecraft.util.math.MathHelper
import net.minecraft.util.math.Vec3d
import kotlin.math.abs
import kotlin.math.pow
object ModelHelper{
@Sided(Side.CLIENT)
fun getHandPosition(player: EntityPlayer, hand: EnumHand): Vec3d{
val yawOffsetMp = (if (player.primaryHand == RIGHT) 1 else -1) * (if (hand == MAIN_HAND) 1 else -1)
if (player === MC.player && MC.settings.thirdPersonView == 0){
val pitch = MathHelper.wrapDegrees(player.rotationPitch)
val yaw = MathHelper.wrapDegrees(player.rotationYaw)
val fov = MC.settings.fovSetting
return player
.lookPosVec
.subtractY(0.1 + (pitch.coerceIn(-90F, 45F) * 0.0034))
.add(Vec3.fromYaw(yaw + (yawOffsetMp * fov * 0.6F)).scale(0.25))
.add(Vec3.fromYaw(yaw + 165F - (fov - 90F) / 2F).scale(abs(pitch.coerceIn(0F, 90F) / 90.0).pow(1.5) * (0.3 - abs(fov - 90.0) / 600F)))
// TODO kinda weird and inaccurate, maybe use the camera transformations somehow?
}
else{
val handOffset = if (player.isSneaking) 1.15 else 0.75
return player
.lookPosVec
.subtractY(handOffset)
.add(Vec3.fromYaw(player.renderYawOffset + yawOffsetMp * 39F).scale(0.52))
}
}
}

Some files were not shown because too many files have changed in this diff Show More