Commit graph

224 commits

Author SHA1 Message Date
Steven Blom
d3da111c08 Allow all Forge Registries to work with ObjectHolder (#3220) 2016-10-09 13:34:38 -07:00
LexManos
bc303074f6 Introduce IContextSetter for events.
This will set the active mod container for events using the normal EventBus.
Fixes improper warnings from initializing mods using the new Registry events.
Modders, you should not use this as it has many performance implementations
and if abused will slow down the event bus A LOT. ActiveModContainer is not
thread safe.
2016-10-08 16:30:53 -07:00
LexManos
1107088acb Add support for generic filtering of events.
Please DO NOT use this in performance sensitive environments where you will have tons of things added to the listener list.
If that's the case define sub-classes as they have completely separate lists and will thus be more efficient when firing the event.
2016-09-17 15:08:23 -07:00
Steven Blom
8dca9f2694 New event to allow mutating a baby entity based on it's parents (#3227) 2016-09-13 09:32:27 -07:00
LatvianModder
4e3b6b0f15 Added CommandTreeBase (#3193) 2016-09-13 00:36:51 -07:00
Marvin Rösch
bf6437c12a Fix universal bucket not being returned in crafting recipes (#3234) 2016-09-13 00:02:01 -07:00
boni
8dbfe1baad Expand getHarvestLevel to include player and blockstate (#3192) 2016-08-19 15:54:37 -07:00
LexManos
0e286f880e Fix World Capabilities NPE when there are no attached capabilities. 2016-08-14 01:48:41 -07:00
Abastro
bfddcfb4fc Introduced Capabilities for World (#3069) 2016-08-13 20:42:00 -07:00
Joseph C. Sible
8195c36434 Fix test mod IDs, names, and versions (#3122)
Most of our test mods have bad IDs (uppercase) and are missing names or
versions. Forge produces a bunch of warnings in the console about this, which
makes it more likely that an important message will be missed.
2016-08-12 15:10:47 -07:00
LexManos
fdea60f89a Disable DecorateEventDebug by default.
Prevents me thinking that decoration is broken >.<
2016-08-08 17:35:48 -07:00
LexManos
f4e8804c8a Restone binary compatibility with registry substitution rework.
Modders please switch to using the provided RegistryBuilder to ensure more forward compatbility. Closes #3144
2016-08-02 15:55:18 -07:00
cpw
4dcee246d5 Another pass at substitutions - now capable of fixing up ItemBlock to point at the right block when a block is substituted, should also handle substituting itemblocks. There's some hackery in the way we have to change the value of ItemBlock.block, but it's not too egregious in my opinion. 2016-07-29 17:08:52 -04:00
cpw
1473334f61 Merge remote-tracking branch 'origin/pr/3120' into 1.10.x 2016-07-28 23:15:32 -04:00
Me4502
579f028294 Fixed NeighborNotifyEvent not containing the piston facing direction.
(cherry picked from commit 5637c41)
2016-07-28 20:51:06 -04:00
cpw
bc82f2ae5a Fix #3126 - duplicate stat id error - don't use the "universal iterators" in statbuilding, use the one without the duplicate entries. (The duplicate entry one is for rendering setup) 2016-07-28 15:56:30 -04:00
cpw
ab64d1a166 Fix a vanilla bug with the blockstate ID map not being properly symmetric with respect to block.getStateFromMeta - closes #3012 properly but probably has a random MCJIRA ticket somewhere too. 2016-07-26 17:16:42 -04:00
Dakota Pierone
0cf2cdfdb3 Update decorate for biomes to support Decorate event 2016-07-24 10:40:14 -07:00
cpw
fe96792506 Merge remote-tracking branch 'origin/pr/3087' into 1.10.x 2016-07-24 10:57:47 -04:00
cpw
cace1f00b2 Merge remote-tracking branch 'origin/pr/3110' into 1.10.x 2016-07-24 10:08:46 -04:00
Bernhard Bonigl
bc27f0e204 Add shouldCauseBlockBreakReset callback to Item. This allows to keep breaking blocks if the NBT or similar changes. 2016-07-24 13:52:27 +02:00
Joseph C. Sible
5ebf77bfd9 Add a test for CreateFluidSourceEvent 2016-07-23 22:39:54 -04:00
cpw
8f74d05d02 Add the new tests into the suite 2016-07-20 21:29:13 -04:00
cpw
80621de9ea Some dummy block replacement tests - it seems they work correctly. 2016-07-20 21:27:03 -04:00
cpw
a156d5e0fe Some more substitution tests. It seems like it's working as it should. 2016-07-20 20:39:36 -04:00
cpw
7d4bf619fe More tests. Substitutions now work, and a fix is included. *sigh* Closes too many bugs to count. 2016-07-20 16:03:56 -04:00
cpw
22394f87d5 Some test harness stuffs. Time to get the registry manager properly tested. 2016-07-19 19:21:52 -04:00
mezz
93a7ac3d89 Add TextureDump forge test mod 2016-07-13 17:04:47 -07:00
LexManos
5f234fdcf8 Added support for using static methods as event listeners, Register the .class instead of an instance.
And added an improvement to calltime listener rebuilding.
2016-07-13 12:08:13 -07:00
cpw
565cfb155f Merge remote-tracking branch 'origin/pr/3036' into 1.10.x Closes #3036 Thanks Mezz! 2016-07-12 18:05:13 -04:00
Bernhard Bonigl
432e3ab08a Add an event that allows to modify the looting level based on damage source 2016-07-03 15:19:31 +02:00
mezz
0fc08e383a Add Forge fluid handler test 2016-06-26 02:46:19 -07:00
cpw
260be68723 Update to 1.10 2016-06-23 02:39:55 -04:00
RainWarrior
ce481da1d1 Initial support for model visibility system. Implemented it for OBJ, B3D and normal vanilla models; fixed NPE accessing parent state in B3DModel. Fixes #2801. 2016-05-30 01:20:43 +03:00
LexManos
df7c7d6dfc Make unit test for EnumHelper more robust and less spammy. Now detects missing accessors as well. 2016-05-24 16:11:12 -07:00
Steven Blom
a4e2d0e304 Add Unit Test to detect mismatches between EnumHelper and Enum ctor 2016-05-20 13:25:04 +09:30
LexManos
cdc86e9af6 Update mappoings snapshot to 20160518 2016-05-18 05:23:30 -07:00
LexManos
b9ac73b0f1 1.9.4 Update.
Major things to note:
Class renames: https://gist.github.com/LexManos/44dd211f90f498ad4015279b103dff86
Tile Entities are now packed in the ChunkData packet.
Forge intends to work around this to better support large moded worlds, but for the time being modders should implement the new function carefully and only send what data they need to!
Minecraft's codebase now has annotations, these are directly from Mojang and should be adheared to!
Added support for package-info.java's containing @Nullable information for all MC code base.
2016-05-18 03:29:10 -07:00
LexManos
aaa146c10d New LootTable interaction system and event.
Modders can now modify and reference internal elements of a loot table by name.
Editing can ONLY be done in the event and any external editing will cause a exception to be thrown.
See this gist for more information: https://gist.github.com/LexManos/77c983d67b9ad27010428478b66d50fd
2016-05-09 14:15:59 -07:00
Vincent Lee
9f28c90365 Add Potion.renderHUDEffect (#2798) 2016-05-02 14:44:14 -07:00
RainWarrior
ab2b07f149 Fixed some test mods not being marked as client-only. 2016-04-05 11:46:05 +03:00
Vincent Lee
e8ea52558b Player Interact Event 2016-04-04 19:58:46 -05:00
RainWarrior
77772ac3f5 Changed generic signature of GameRegistry.register methods to work around the type inference bug; updated all example mods to the new block/item registration method. 2016-04-03 10:14:16 +03:00
RainWarrior
c891d9fe16 Disabled erroring block, fixed DynBucketTest.TestItem model. 2016-03-25 00:49:34 +03:00
RainWarrior
756c58d5cb Removed RenderWorldEvent, encapsulated all public event fields. 2016-03-24 22:22:21 +03:00
RainWarrior
a9d23f5e78 Cleanup: removed IEEP, removed redundant casts, fixed imports, fixed typos. 2016-03-24 22:22:20 +03:00
RainWarrior
08663587d4 Added Capability.cast, to allow avoiding unchecked casts in ICapabilityProvider.getCapability 2016-03-22 09:01:00 +03:00
RainWarrior
4b53f0716b instance -> INSTANCE 2016-03-21 10:48:52 +03:00
RainWarrior
286c8c05b7 Separated model classes to client and common packages. 2016-03-21 10:48:52 +03:00
RainWarrior
5f62404f8a Switched animation system to capabilities, added animated item example, fixed state passing in MultiModel. 2016-03-21 10:48:52 +03:00
cpw
76e93e854a Fix bucket test 2016-03-19 21:36:21 -04:00
cpw
ce8a758667 Merge branch 'master' into 1.9 2016-03-19 21:19:19 -04:00
RainWarrior
a81dfbc4ef Fixed quads that don't need diffuse lighting getting it anyway. 2016-03-17 14:11:24 +03:00
RainWarrior
b81a13d010 Fixed model error reporting, fixed model errors in test mods that shouldn't happen, fixed custom texture loading, made more things private/final. 2016-03-16 01:42:23 +03:00
RainWarrior
5d352bda6c Big model loader refactoring: simplified a lot of things, broke some error reporting. Still generally works. 2016-03-13 16:16:25 +03:00
RainWarrior
a799bbad2d First version of updated of ModelLoader, mostly works. 2016-03-13 12:10:50 +03:00
RainWarrior
4650ee2789 Updated to latest mappings. Exc is broken, some anonymous classes didn't map to srg names. 2016-03-13 04:40:03 +03:00
Bernhard Bonigl
bcab92daf6 Fix CombinedInvWrapper accessing incorrect slots
Closes #2533
2016-03-12 22:17:57 +01:00
RainWarrior
173cec4149 Fix perspective transformations for left-handed items, disable ModelAnimationDebug until model loading is fixed. 2016-03-10 03:38:58 +03:00
LexManos
90b2c86a9f Added bypass functions to Defaulted registry, DO NOT USE THIS MODDERS FORGE INTERNAL ONLY.
And some other fixups for running.
2016-03-09 14:41:13 -08:00
LexManos
7b7156e87f Interaction hooks need to be re-added but compiles {Doesn't run} 2016-03-09 14:11:56 -08:00
RainWarrior
3e22a2b90d Model UV lock handling from the state to the model, fixed most compile errors in ModelLoader, disabled it (and ModelBakeEvent) until it's functional, fixed some errors in ForgeHooksClient. 2016-03-06 02:51:39 +03:00
RainWarrior
70670d70ea Removed generics from IModel subinterfaces, add ed ModelProcessingHelper instead. 2016-03-06 01:34:04 +03:00
RainWarrior
ed8a8b415b Fix various errors in text mods. 2016-03-05 04:43:41 +03:00
LexManos
ac7c4d2f6c Some import renames and compile error fixes, killed ~800. 2016-03-01 04:58:03 -08:00
LexManos
250a77b359 Merge pull request #2476 from Abastro/fovfixes
Added Event: EntityViewRenderEvent#FOVModifier
2016-02-29 13:20:46 -08:00
Matthew Miller (Me4502)
f1ad05dd8e Added local click position to PlayerInteractEvent. 2016-02-27 11:27:21 +10:00
Abastro
c4ca8270b9 Added EntityViewRenderEvent#FOVModifier
Enables mods to modify raw FOV directly.
Avoids modifier limit from FOVUpdateEvent.
Aware of blocks which are needed for fov change related with materials.
2016-02-27 09:25:19 +09:00
LexManos
6b51665c42 Merge pull request #2333 from bonii-xx/universal_bucket
Add an universal bucket.
2016-02-15 17:56:05 -06:00
Bernhard Bonigl
1055206ba8 Add universal bucket 2016-02-16 00:49:01 +01:00
LexManos
74fe690227 Fix chat formatting not surviving line wraps in chat messages. 2016-02-15 14:30:24 -08:00
pau101
cb70f1378c Fix #2321 2016-02-04 22:58:21 -08:00
LexManos
7a0a801740 Merge pull request #2336 from VikeStep/master
[1.8.9] Add EntityTravelToDimensionEvent
2016-01-25 11:07:19 -08:00
RainWarrior
960717eb0c Fixed minor race condition between mouse clicks and TESR in the animation example. 2016-01-25 17:39:43 +03:00
VikeStep
026d179c0d Add EntityTravelToDimensionEvent
Resolve Merge Conflict

Move event call inside conditional
2016-01-25 17:57:52 +10:00
RainWarrior
0710bdf3f5 Model animation system.
Main things of interest:
  * IAnimationStateMachine - state machine for animations; can load
    from json.
  * AnimationTESR - automatic TESR for animated models.
  * AnimationModelBase - same for entities.
  * ITimeValue - time-varying value, used to control animation
    parameters from code.

  * TESRs can now be batched - look at TESR.renderTileEntityFast +
    TE.hasFastRenderer.
  * RegionRenderCache is not accessible to TESRs and other client-side
    logic - MinecraftForgeClient.getRegionRenderCache.
2016-01-24 09:59:38 +03:00
Bartek Bok
fae5ff67ed Allow sleeping without bed 2016-01-17 00:43:29 +01:00
LexManos
17db34ae31 New Capability system allowing for more manageable world object features.
When combined with @Optional this should address all issues of soft dependancy on mods/apis.
This also addresses the issue of dynamic functionality in TileEntities/Entities.

Current capability providers: TileEntity, Entity, ItemStack

Also added INBTSerializeable, a generic interface for game objects that can be written to/from NBT tags.

Vanilla capabilities will be coming soon, mostly on request and review.
So start requesting capabiliteis on vanilla/Forge features.
2016-01-11 16:04:22 -08:00
LexManos
1a31ff9f06 Added new get/setRegistryName functions to Item and Block.
And helper functions in GameRegistry to allow for registering using those names automatically.
This is to simplify registration and get rid of the horrible hacks users are doing now with 'unlocalised names'.
2016-01-02 12:58:57 -08:00
RainWarrior
d105c444ee SidedProxy now has sensible default values - nested ClientProxy and ServerProxy classes. 2016-01-02 09:59:14 +03:00
RainWarrior
db3e039b31 TESRs registering in preinit don't break pistons anymore. Fixes #2298. 2015-12-30 11:37:32 +03:00
RainWarrior
56eba05237 1.8.9 update 2015-12-30 07:15:03 +03:00
Bernhard Bonigl
509cc79112 Fix bucket replacement not loading the bucket model by itself if replacing buckets.
This happens when no other mod that uses the bucket model is present.
Also added a simple method for registering the bucket model, should give
modders an idea on how to use the general model.
2015-12-29 13:31:35 +01:00
RainWarrior
097c0c6130 Added an ability to register custom item variants, not ending with "#inventory". Should allow grouping multiple item models into 1 blockstate json. 2015-12-24 06:06:38 +03:00
Fry
c7790f7b35 Merge pull request #2282 from bonii-xx/dynbucket
Add a dynamic bucket model that displays the animated liquid contained
2015-12-22 00:26:25 +03:00
Bernhard Bonigl
4f6784b733 Add a dynamic bucket model that displays the animated liquid contained
Has a config option (default off) that replaces the vanilla buckets with the forge bucket model

New original bucket textures from mr_hazard
2015-12-21 22:22:40 +01:00
Lunatrius
b665026378 Fix client side commands adding parts of the color codes on autocomplete (prefix "7" and suffix "r"). 2015-12-19 12:55:26 +01:00
RainWarrior
f0ae51bb34 Forge pipeline will now take original model lightmap into account, if present. 2015-12-15 22:27:01 +03:00
RainWarrior
86c09722a0 IModel can now depend on a variant definition (ModelResourceLocation); added MultiLayerModel - simple model that'll render correctly in multiple layers + example of using it. 2015-12-15 21:49:19 +03:00
RainWarrior
d6ee373e87 Preparations for the Animation system.
Changes to the Model API - IModelState now works with Optional. Handling of parts of the model is not optional, and coordinate space/result interpretation is up to the caller. IModel doesn't extend IModelPart by default anymore; MapModelState uses composition to achieve previous functionality, IModelPart implementations are disjoint now. Updated perspective handing to the new API, removed IPerspectiveState (MapModelState is now the same thing). Perspective transforms for the default fluid model.
2015-12-14 23:27:27 +03:00
Bernhard Bonigl
2324c2fd20 Add shouldRender() to Potions that allows to hide them completely in the inventory 2015-12-05 10:09:02 +01:00
cpw
ff42107b92 A few fixes 2015-11-30 14:14:56 -05:00
Bernhard Bonigl
57d1a657a0 Add a PotionRegistry to handle dynamic distribution and remapping of Potion IDs 2015-11-29 22:02:55 +01:00
LexManos
5549b06f96 Compiler warnings pass, undeprecated SplashProgress related stuff. 2015-11-26 19:38:21 -08:00
cpw
68dfcccd57 Update mappings to 20151122. 2015-11-23 23:18:52 -05:00
RainWarrior
9815d729b5 Fixed NPE is B3D loader caused by the missing vertex normal; updated the example chest model - it's now has 2 meshes; Updated ModelAnimationDebug - it now uses the new chest model, renders the base with the static world renderer, and only the lid with the TESR. 2015-11-23 10:12:01 +03:00
RainWarrior
13d7530e43 Implemented interpolation of TRSR transformations; B3D: added interpolation capabilities to B3DState, animated TESR example in ModelAnimationTest (pure TESR right now, no separation inside the example model between the static and dynamic parts right now). 2015-11-16 06:51:39 +03:00
RainWarrior
e833ee81fb Updated various rendering-related patches and classes to 1.8.8; forge still uses vecmath. 2015-11-10 00:03:39 +03:00
RainWarrior
6b10b41b02 Fixed piston rendering (WorldRenderer offset wasn't applied); fixed TESR being registered too early in one of the debug mods. 2015-10-27 19:02:22 +03:00
shadekiller666
d1b220f6a3 Added OBJ loader for the ModelLoaderRegistry system. 2015-10-26 19:38:49 +03:00
darkevilmac
b9f5e152de Add PlayerSetSpawnEvent 2015-10-10 15:39:27 -07:00
RainWarrior
b175d265b9 Much requested temporary hack for items and TESRs. Context: #1582, #1597, #1713, #2058 and others. 2015-09-02 07:35:24 +03:00
cpw
614bbcb0da FML is no more. FML has ceased to be. FML's expired and gone to meet its maker. FML's a stiff! Bereft of life, FML rests in peace. 2015-08-01 23:51:40 -04:00
LexManos
5623634f56 Merge pull request #2048 from shadekiller666/UnlistedPropertyValue
Fix for ExtendedBlockStates containing at least one IProperty and one IUnlistedProperty preventing block placement.
2015-07-25 15:12:57 -07:00
shadekiller666
87bbbfafcc Fixed a bug with ExtendedBlockStates containing at least one IProperty and one IUnlistedProperty not allowing blocks to be placed. 2015-07-25 14:55:42 -07:00
liach
e2ee54a27d Add an EnumHelper hook and fixed an issue 2015-07-14 08:55:51 +08:00
Bernhard Bonigl
e55ee43fd5 Fix StateMap always mapping properties to the "minecraft" domain instead of the mods, causing it to not find BlockState definitions. 2015-06-26 10:29:10 +02:00
RainWarrior
1582e401ed Added ItemLayerModel - less awkward, simpler and faster version of ItemModelGenerator. 2015-06-23 04:43:48 +03:00
RainWarrior
07038f8342 Added fluid renderer. 2015-06-18 14:26:53 +03:00
Lex Manos
d0902c096e Cleanup code format in LayerBreakingTest. 2015-06-16 16:01:09 -07:00
LexManos
f62ee5c4f5 Merge pull request #1881 from ganymedes01/master
Added a brewing recipe registry system
2015-06-09 12:05:40 -07:00
ganymedes01
0373920f99 Added a brewing registry system 2015-06-09 14:01:45 -03:00
Fry
e007f7cf39 Merge pull request #1868 from fuami/ISmartBlockModel_Damage
Add Block Breaking Animation for ISmartBlockModels
2015-06-06 03:39:11 +03:00
Fuami
5cd4564a32 Added Breaking Animation for Smart Models, Checking each layer.
Added Layered Smart Render Test.
2015-06-05 19:23:17 -05:00
RainWarrior
d6bc936ffa B3D Improvements
- fixed keyframe transformation application
 - textures are now resolved the same way as in vanilla models
 - added the ability to use forge blockstate texture information
 - removed unused code from the B3D example
2015-06-04 18:58:42 +03:00
Lex Manos
267e1ee62f Hook BlockState's Json loading to add support for simplified Forge format.
See https://github.com/MinecraftForge/MinecraftForge/pull/1885 for more details.
2015-06-02 16:49:56 -07:00
Me4502
c21e38cd3b Add NeighborNotiftyEvent. 2015-03-01 16:53:32 +10:00
Lex Manos
7ed7da159e Fixed debugging Dedicated server in Forge Dev workspace. 2015-02-06 21:35:11 -08:00
RainWarrior
b8add23d9b ModelBakeEvent now has ModelLoader as an argument instead of ModelBakery; Added various static hooks to ModelLoader to allow registering model-related information before it's needed (prevents file-not-found errors on first baking pass); ModelLoader waits until ModelBakeEvent is done before showing any missing model exceptions; It's now possible to define models completely in-code (as illustrated by ModelBakeEventDebug). 2015-02-04 09:45:23 +03:00
RainWarrior
6eba0ebb93 Added model loader registry
Entry point: ModelLoaderRegistry
loader interface: ICustomModelLoader
custom model: IModel

ModelLoader is responsible for splicing into vanilla model system.
(you probably don't need to use it directly)

Interop with vanilla models isn't great yet
(vanilla models can't refer to custom ones as parents), will improve in
the future.

Includes loader for B3D models, with animation support
(net.minecraftforge.client.model.b3d).
Blender export plugin with compatible coordinate system:
https://github.com/RainWarrior/B3DExport

OBJ loader is being written, will be included at some point in the
future. For now you can convert OBJ to B3D via blender, or wait.
2015-01-29 11:33:52 +03:00
RainWarrior
134fbaa1ff Added model bake event (allows mods to insert custom baked models, much like TextureStitchEvent allows to load custom textures), ISmartBlock/ItemModel (ability form models to react to block/item states), Block.getExtendedState, support for unlisted properties in block states. Includes example implementation of http://imgur.com/a/FyyJX 2014-12-04 14:16:30 +03:00
Lex Manos
53659fca06 Initial update to 1.8, Super beta. Most rendering related hooks are out due to major changes in 1.8.
Some notes:
Almost all int x, int y, int z parameters have been changed to BlockPos class
ForgeDirection has been removed, replaced by net.minecraft.util.EnumFacing.
All FML classes have moved from packet cpw.mods.fml to net.minecraftforge.fml
Fluid Rendering has been disabled for the time being, to be re-evaulated and a test mod created for it.
Minecraft now uses a Model based system for rendering blocks and Items. The intention is to expand the model format to better suit modder's needed once it is evaulated.
As such, The model loaders from Forge have been removed, to be replaced by expanding vanilla's model format.
Metadata has been extracted out in Minecraft to IBlockState, which holds a list of properties instead of magic number metadata. DO NOT listen to the fearmongering, you can do EVERYTHING with block states you could previously with metadata.
Stencil Bits are disabled entirely by for the main Display, Modders must enable and recreate the FrameBuffer if they wish to use Stencil Bits.
2014-11-26 00:00:54 -08:00
Lex Manos
af9229d3bc Add ability for modders to designate custom biome types. And remove note about automatically registering. Closes #1167 2014-07-07 21:29:37 -07:00
Lex Manos
0737601dbf Fix enum helpers for EnumRarity {moved to Commn and changed paramter} and EnumCreatureType {new parameter} and added junit test for them. Closes #1009 2014-05-28 15:28:40 -07:00