Commit graph

1706 commits

Author SHA1 Message Date
Brennan Ward
a15c4dc9b0 Add recipe types for faster runtime iteration. (#5312) 2019-01-25 10:22:41 -08:00
tterrag
7c11fe1022 Fix capability attach event not firing with base type 2019-01-24 21:04:50 -05:00
liach
c01b336095 Improves topological sort
This can be used for mod sorting, dependencies between registries, etc.
e.g. https://github.com/MinecraftForge/MinecraftForge/pull/4694#issuecomment-412520302

New features:
Now accepts guava graph
Performance improvement: no longer reverse the graph; changed dfs to bfs
Accepets a comparator for secondary order, e.g. natural order, index by map
Now properly reports all cycles in a graph with Tarjan's strongly connected component algorithm
Adds a test to prove the validity of the sort and cycle detection
Modified build.gradle for test source directory and dependencies

Mod loading changes:
Sort mod file info instead of suppliers (we don't have suppliers instances)
Moves cycle error reporting out of topological sort and into mod sorter
Prevent mod file dependencies between mods that share the same file

Signed-off-by: liach <liach@users.noreply.github.com>
2019-01-21 03:06:27 +00:00
cpw
040cc4bf16
Expose a couple of mods.toml properties properly. Half-implemented
override namespace - still needs to be reviewed and determined how this
might work in detail.

Signed-off-by: cpw <cpw+github@weeksfamily.ca>
2019-01-20 21:26:31 -05:00
SquidDev
eefc4d3e84
Use the reply logical side when enqueing work
When receiving a packet, NetworkDirection.getLogicalSide details where
the packet was the packet was sent from. Therefore, on a client it'll
be SERVER (and vice virsa), and so the work is queued on the sever
thread, instead of using Minecraft.
2019-01-20 12:31:12 -05:00
ichttt
c3c979f11a
Use minecraft's util class to open files 2019-01-20 12:23:44 -05:00
ichttt
276d0c49c1
Validate mod ids 2019-01-20 12:23:44 -05:00
cpw
7c840dce35
Fix classcast in autoeventsubscriber, also actually make progression
work properly. This whole thing is a bit of a gross hack.

Signed-off-by: cpw <cpw+github@weeksfamily.ca>
2019-01-20 12:20:27 -05:00
alexbegt
2bee5f7ac6 Fix recipe constants being overridden by a blank map. Closes #5380 2019-01-20 16:03:09 +00:00
cpw
60524f0f3e
Fix case error in AutomaticEventSubscriber
Signed-off-by: cpw <cpw+github@weeksfamily.ca>
2019-01-20 00:32:11 -05:00
cpw
f4d2d1a24b
Move Registry Events to the mod event bus.
Add infrastructure to allow parallel or synchronous dispatch of
mod events, and pass-through of events to the dispatch system.

Signed-off-by: cpw <cpw+github@weeksfamily.ca>
2019-01-19 23:27:27 -05:00
tterrag
ff2e35c243
Greatly improve DeferredWorkQueue API (#5357) 2019-01-18 21:10:22 -05:00
tterrag
0d1a2f2af3 Add utilities that RuntimeEnumExtender expects to exist 2019-01-17 13:11:54 -05:00
LexManos
3b029ba031 Re-introduce patch for injecting registry mappings during world loading.
And re-introduce registry freezing to ONLY the Register events.
Filter ObjectHolders by registry type and fire between every Register event.
2019-01-16 12:28:13 -08:00
tterrag
cd21f7b927
Implement ConfigValue as a wrapper around ForgeConfigSpec results (#5361) 2019-01-15 23:28:40 -05:00
cpw
56a3926b86 Fix up event naming, move them to sensible packages and document everything a bit. 2019-01-14 22:43:17 -05:00
Vincent Lee
220bf8730a [1.13] Expand tag deserializer to add optional values and remove values without overwriting everything. (#5350) 2019-01-14 19:23:36 -08:00
mezz
118eac8f39 Fix mod lifecycle event names 2019-01-14 14:00:15 -08:00
cpw
99452a8b45 Update a bunch of libs, rename some of the mod events to more
meaningful names.
2019-01-14 00:39:00 -05:00
LexManos
eb42614288 Add list support to ForgeConfigSpec.
Fix incorrect Supplier used in ForgeConfigSpec.
Port ForgeChunkManager config to new system.
Delete old Configuration classes. It's finally gone!
2019-01-11 23:01:08 -08:00
XCompWiz
f2b54acd67 Allow providing a BufferedImage for banner render generation (#5041)
Ported to 1.13 using NativeImage

Co-authored-by: tterrag <tterrag1098@gmail.com>
2019-01-11 18:32:17 -05:00
Tim
497bc10d0a Fix Mesa biome entry tags in the BiomeDictionary (#5177) 2019-01-11 18:32:17 -05:00
Ben Staddon
c1bb5cb250 Patch PotionHelper to use registry delegates (#5142) 2019-01-11 18:32:17 -05:00
tterrag
958bbf6c9a Fix MC-136995 - Chunk loading and unloading issue with entities placed in exact positions. (#5160)
This includes three commits from 1.12.x:
c20a5e8805
93b704b459
ee0d43bbde

Scatter gun patches to improve entity tracking and position tracking.
Provided by Aikar through the Paper project, this commit of patches combines the following patches:

fd1bd5223a/Spigot-Server-Patches/0306-Mark-chunk-dirty-anytime-entities-change-to-guarante.patch
fd1bd5223a/Spigot-Server-Patches/0315-Always-process-chunk-registration-after-moving.patch
fd1bd5223a/Spigot-Server-Patches/0335-Ensure-chunks-are-always-loaded-on-hard-position-set.patch
fd1bd5223a/Spigot-Server-Patches/0378-Sync-Player-Position-to-Vehicles.patch

Co-authored-by: Gabriel Harris-Rouquette <github@gabizou.com>
2019-01-11 18:32:16 -05:00
David Quintana
e98951ee65 Fix blockstate id map calculation. (#5279) 2019-01-11 14:52:30 -08:00
LexManos
3765d912a5 Move @EventBusSubscriber application to just after construction instead of pre-init. 2019-01-11 12:28:06 -08:00
Vincent Lee
849bc00b46 Make Block.Builder methods accessible. Closes #5310 (#5313) 2019-01-11 11:47:51 -08:00
Vincent Lee
985a48f02e Fix datapack walking not working for mod datapacks. Closes #5334 (#5335) 2019-01-09 20:59:40 -08:00
Vincent Lee
4e196a445a Add missing setSeed calls to ForgeBlockModelRenderer (#5338) 2019-01-09 20:57:55 -08:00
LexManos
36d2e67b07 Reimplement @ObjectHolder scanning, and expose system for others to add handlers.
Fix forgedev and userdev run configs.
Fix issue in log functions assuming String arguments.
2019-01-09 20:57:01 -08:00
LexManos
f7acc73282 Update userdev and runconfigs for ForgeGradle changes. 2019-01-08 00:29:36 -08:00
cpw
60926ad6ea Fix some translation strings. Will pull a big string update from crowdin too. 2019-01-06 21:02:08 -05:00
cpw
f734e614e4 Fire registry events before preinit and after construct. 2019-01-06 17:19:18 -05:00
cpw
1b40618f02 Fix classloading properly. ModLoadingClassLoader doesn't work
with the proper delegation model. Abandoned it, in favour of injecting
locators into the Transformer classloader directly.
2019-01-06 16:24:32 -05:00
cpw
58c78560fa Fix up some stuff with resource packs, so the guilist works properly. 2019-01-05 10:19:47 -05:00
cpw
fd9c83b65f Finish up classloading system. Use ModJARURL to locate resources
and enable ModLauncher to use those instead. This allows all mods to load
within the scope of the game classloader, removing weird conflicts and
class discovery problems.
2019-01-04 23:56:10 -05:00
cpw
6baddc7e26 client and server work standalone and in forge dev. Next up userdev.
Moved some launchplugin code to the launcher. Moved servermain to
the launcher.

server currently needs cmdline arguments  --fml.forgeVersion=24.0.51-1.13-pre --fml.mcVersion=1.13 --fml.mcpVersion=2018.09.12.04.11.00 --fml.forgeGroup=net.minecraftforge.test
2019-01-01 21:35:23 -05:00
cpw
e9580877b4 fix up some discovery code, and make regular runtime _mostly_ work.
Still WIP and doesn't quite get to main screen yet.
2019-01-01 16:50:04 -05:00
LexManos
440649bb95 Fix new launcher jar packaging.
Run license checker over new code.
2018-12-31 16:48:23 -08:00
cpw
48846bc0ba separated fmllauncher code from main forge mod code. This enables much
stronger classloader separation between the two sides. Forge now
loads as a regular mod.

Still needs a bunch of debugging, but structure looks good and game loads
in forge dev.
2018-12-31 16:34:33 -05:00
cpw
558e1d2fb0 ResourceLocation Utils for doing things.. 2018-12-31 16:34:33 -05:00
tterrag
0b26047ea8 Better documentation for IForgeWorldType, TERFast, TERAnimation
Also rename AnimationTESR to TileEntityRendererAnimation
2018-12-29 12:18:10 -05:00
tterrag
7f5a57f4af Fix patch mistake in IForgeWorldType: CUSTOMIZED -> BUFFET 2018-12-29 12:01:41 -05:00
mezz
dc12cda505
Clean progress bar code and fix TextureMap patch (#5304) 2018-12-28 18:05:05 -08:00
mezz
b4cf6f7f36
Implement GuiScreen events for mouse and keyboard (#5297) 2018-12-23 23:46:42 -08:00
mezz
f2f04407a4
Add the sender to NetworkEvent.Context for server-side event handlers (#5295) 2018-12-22 23:24:11 -08:00
tterrag
8a11e3bac4 Port most of the world patches (#5294) 2018-12-22 10:31:18 -08:00
LexManos
4879b0611a Change how Forge itself is located to be loaded similar to a real mod.
Fixes Minecraft/Forge annotation data missing.
Fix Capability injection.
2018-12-21 16:07:39 -08:00
tterrag
d11a67499d FastTESR -> TileEntityRendererFast 2018-12-21 17:53:01 -05:00
tterrag
b3b8c78527 Rendering patches (#5262) 2018-12-21 14:45:35 -08:00
LexManos
a992a4325b Change getWorld function name to prevent inheritance change in Chunk 2018-12-18 16:11:03 -08:00
David Quintana
c1225f3876 Fix the path handling for mod jar resource packs. (#5228) 2018-12-18 12:48:39 -08:00
David Quintana
152836c907 Add raytrace logic to the GuiOverlayDebugForge, so that the debug overlay can show the currently targetted block and liquid. (#5278) 2018-12-16 12:47:16 -08:00
David Quintana
52b6da1759 Fix classloading issues in userdev (and possibly also for things like tests within forgedev) (#5275) 2018-12-13 15:33:35 -08:00
LexManos
f13465012b World and TileEntity patch work.
TerrtainGen events are removed, 1.13's world gen re-write invalidates them all.
2018-12-13 01:15:53 -08:00
LexManos
7265900c62 More entity patch work. ISpecialArmor deleted. 2018-12-10 22:19:43 -08:00
Liqueur Librazy
719ea50d1a Use getRawSchemeSpecificPart to preserve escape characters in uri, fix #5236 (#5237) 2018-12-10 11:07:50 -08:00
LexManos
bbf1ea41b8 world.gen.feature patches, worldgen should be stable with vanilla. In all places I looked. 2018-12-06 18:09:47 -08:00
LexManos
eb22f42fea More patch work, our async chunk loading doesn't appear to be viable for 1.13. 2018-12-05 18:08:27 -08:00
LexManos
dd32e74e34 Entity patches progress. 2018-12-05 01:16:33 -08:00
malte0811
e1b4a150c3 Fix race condition causing the FML handshake to hang (#5222) 2018-12-04 12:22:01 -08:00
LexManos
76d912c0ba Include project group in ForgeVersion and determine path to patched jar.
While testing we install to net.minecraftforge.test. So don't hardcode it.
2018-12-04 11:55:50 -08:00
LexManos
a3c8e04ee6 Item and NBT patches, IShearable blocks are responsible for setting themselves to air, to allow for setting other states. 2018-12-03 18:04:37 -08:00
LexManos
bf9158172f Most client patches done except the render pipeline.
Someone who has more in depth knowledge of that rendering system will need to do it.
2018-11-28 22:15:05 -08:00
LexManos
47a11b9a7e GUI Patches 2018-11-21 21:23:24 -08:00
LexManos
b6ddb0a7cf More patchwork. 2018-11-19 19:55:46 -08:00
LexManos
7c0d94ce9c Patch work, most of block classes, and fix eclipse run configs. 2018-11-16 23:15:39 -08:00
malte0811
b5264cacf0 Fix crash when placing furnaces or brewing stands in 1.13 (#5225) 2018-11-15 13:55:18 -08:00
David Quintana
64c8f67939 Add missing license headers. (#5192) 2018-10-19 20:35:29 -07:00
tterrag
74703e2a60 Fix mod asset loading 2018-10-11 18:06:16 -04:00
cpw
43ed744d46 run textcomponenttranslations through the ForgeI18N message format translator as well. 2018-10-05 22:21:30 -04:00
cpw
e199e78a4f load languages on the server as well as the client, and fix up a bunch of data packs. 2018-10-05 21:42:15 -04:00
cpw
1c9b5fae5e Server run profile, also setup logging for client profile. 2018-10-05 01:25:27 -04:00
cpw
2b23eb96fb Tweak library locating code. Works well on vanilla and dev now. 2018-10-04 23:24:02 -04:00
cpw
ca765b857b Move the version packages somewhere that is now filtered so it doesn't
load twice.
2018-10-04 19:28:45 -04:00
cpw
978d0ff2e3 Fall colours
🎃🎃🎃🎃🎃🎃🎃🎃🎃🎃
2018-10-04 18:40:34 -04:00
cpw
129870dbe8 Missing language now presents to the UI. 2018-10-04 11:31:08 -04:00
cpw
d5e04dbcb5 Better error passing from early to game client launch. 2018-10-04 00:57:08 -04:00
cpw
c6e7bbe18b Use the maven artifact code rather than our very outdated copy 2018-10-03 22:47:07 -04:00
cpw
0b11b0e6bb Launch in the vanilla launcher now. 2018-10-02 00:32:41 -04:00
cpw
6485a48d79 Use latest paulscode (removes need for soundfix transformer) and fix gitignore. 2018-09-30 14:29:14 -04:00
cpw
fe12687ec1 Branding fixup. 2018-09-30 14:29:14 -04:00
cpw
0024d9d283 Config GUI tweaks, and MCP is now part of the "minecraft" entry. 2018-09-30 14:29:14 -04:00
cpw
015ac2547e Fixup the config GUI and get things working again. 2018-09-29 01:29:49 -04:00
cpw
bb9eca96a8 Basic error display GUI. 2018-09-28 21:07:46 -04:00
cpw
09e2aeaec4 Some tweaks to get the launcher working. 2018-09-24 00:07:33 -04:00
LexManos
94e1a8e0a4 Update mappings to 09/21 snapshots.
Conflict with getMatrix in ITransformation, so renamed to getMatrixVec.
2018-09-22 03:40:22 -07:00
LexManos
5ed03945a0 Disable eclipse compiler and switch to SRG patches. 2018-09-22 00:38:21 -07:00
tterrag
d08f8e1a78 Fix remaining issues preventing compilation, launching, and loading worlds (#5156)
Fix duplicate ID for ingredient serializers
Fix KeyBinding compile errors. No GuiKeyBindingList patches yet.
Implement controls GUI and WorldServer patches
2018-09-21 19:07:48 -07:00
LexManos
c191851ec0 Fixed all compile errors except the 4 in KeyBinding. 2018-09-21 15:50:37 -07:00
LexManos
a0e217b1dc More because git likes to split to many 2018-09-21 02:17:20 -07:00
LexManos
e2a17ac31b Ran License checker to fix the headers of files missing them. 2018-09-21 02:15:03 -07:00
LexManos
cdfa7caaeb More work on compile errors, New system for ToolClasses, using a ToolType class instead to de-stringify things. 2018-09-21 01:47:12 -07:00
Anthony Anderson
0cd21ebe7e Block patches and event work (#5138) 2018-09-20 13:11:02 -07:00
LexManos
b25f92b0c0 Add concept of pushing/poping levels to ForgeConfigSpec as well as comments on those levels. 2018-09-18 12:19:19 -07:00
tterrag
c4cf950863
Fix the rest of the "easy" compile errors (#5151)
* Add Entity.changeDimension patch and transitively required patches

* Fix throws declaration on CommandSetDimension#execute

* Fix rest of errors in fluid package

* Add PLAYER_REACH attribute

* Fix compile errors in fml.client.config and add GuiButton patch

* Delete unnecessary client.config classes, fix all config errors

* Comment some fluid errors in models

* Fix all errors in common package root, except ForgeHooks

* Mass comment network package

* Experimental conversion of extended states to generic base class

* Fix errors in common.util

* Remove config annotation stuff cuz lex said so

* Make extended state stuff compile fully
2018-09-18 00:04:02 -04:00
LexManos
6814cbf0df Beginning work on redesigning Config API. 2018-09-17 20:40:42 -07:00
LexManos
02c31cc867 More work on recipes, custom ingredients, recipes, and constants should work now. 2018-09-17 03:41:16 -07:00
cpw
03d19f2e70 Tweak to remove javac compile errors related to generics on registries.
Also remove the recipes registry call - they're gone from registries completely.
2018-09-16 22:27:08 -04:00
cpw
abacf8e141 Net handling pass 2. Tidied up login packet sourcing, generate registry packets. 2018-09-16 20:59:25 -04:00