Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SpongeForge #3415

Merged
merged 27 commits into from Aug 7, 2021
Merged

SpongeForge #3415

merged 27 commits into from Aug 7, 2021

Conversation

zml2008
Copy link
Member

@zml2008 zml2008 commented May 24, 2021

very broken, this build setup is temporary but should be enough to get us started

there's some basic project structure in place, mixins are applying, but we're currently stuck in classloader hell.

there's a good bit of work needed to get plugins loading, some super initial structure is there

we need to find an appropriate point to initialize Launch

ide setup

  1. enable the project in the appropriate settings folder
  2. re-import
  3. run genSources to have some form of sources -- this doesn't include everything, best to have a forgedev workspace around anyways
  4. Only the gradle run tasks in the loom category work -- runClient and runServer

good luck!

Zidane and others added 21 commits August 7, 2021 16:55
Nothing much, going to require plugin-spi changes to remove notion of plugins always being flat file...

Signed-off-by: Chris Sanders <zidane@spongepowered.org>
Signed-off-by: Chris Sanders <zidane@spongepowered.org>
Running into ClassLoader hell with Adventure, still WIP. At least the
TCL knows of it :(?

Signed-off-by: Chris Sanders <zidane@spongepowered.org>
Does not apply post construction and not for mods who utilize the
mechanism to configure this from ItemStack.

Signed-off-by: Chris Sanders <zidane@spongepowered.org>
Dev workspace needs a lot more work...

Signed-off-by: Chris Sanders <zidane@spongepowered.org>
This compensates for Forge's signature change in Level.

Also headers :(?

Signed-off-by: Chris Sanders <zidane@spongepowered.org>
Signed-off-by: Chris Sanders <zidane@spongepowered.org>
Signed-off-by: Chris Sanders <zidane@spongepowered.org>
Signed-off-by: Chris Sanders <zidane@spongepowered.org>
Signed-off-by: Chris Sanders <zidane@spongepowered.org>
- Add accessors sourceset for Forge-specific visibility changes
- Implement PluginManager
- Implement initial portions of Lifecycle (before plugin loading)
- Update for Sponge changes

Signed-off-by: Chris Sanders <zidane@spongepowered.org>
Also stub out the world persistence hook we will need to load our Level
data in a manner that Forge asks of mods.

Signed-off-by: Chris Sanders <zidane@spongepowered.org>
This isn't the cleanest approach but it prevents having to re-engineer
so many of Forge's classes for what should be a simple concept...

As a further note, we need to also do templated variables in the
platform TOML files

Lastly, actually turn on accessors.

Signed-off-by: Chris Sanders <zidane@spongepowered.org>
For some reason, Forge does not provide all of their metadata options as
 part of IModInfo's contract (for reasons I cannot begin to unravel...)
 therefore I have to make some nasty assumptions.

In the interest of having our platform plugins have the metadata we know
they should have, I will ship a typical "plugins.json" in SF that covers
what is already covered in SV. This can be done at anytime, as it stands
this commit works and has us take another step towards "it works"

Signed-off-by: Chris Sanders <zidane@spongepowered.org>
- Actually incorporate deps for the platforms. Minecraft cannot be a dep
for Sponge as this causes classloading issues for all of common on the
ACL
- Minor packaging to consolidate where things are at
- Call out to have services load (does nothing currently, we are not
firing events)
- Minor cleanup

Signed-off-by: Chris Sanders <zidane@spongepowered.org>
Some thoughts:

* Sponge -> Forge may produce multiple Forge events.
* Some bridges are in Forge Launch - the event manager needs to see those bridges
* Register mod/plugin instances with the Sponge event manager
* Use BlockEvent.BreakEvent as an example

There will be some architectual things to clean up here, but this is to get us going at the very least.
- Stub out the ForgeWorldManager. Should be able to share a lot of the
code from VanillaWorldManager...just needs investigation into what (if
any) multi-world capabilities Forge has in 1.16.5
- Establish naming standards for MinecraftForge mixin/bridge packages
- Various minor changes

Signed-off-by: Chris Sanders <zidane@spongepowered.org>
Broken (Does nothing or crash):

- Commands (console or not)
- Throwing potions

A milestone but a number of things to go...

Signed-off-by: Chris Sanders <zidane@spongepowered.org>
Signed-off-by: Chris Sanders <zidane@spongepowered.org>
In Vanilla, the dimension templates for the Vanilla levels are stored in
 the level.dat file. In Vanilla and Forge, there is only 1 level.dat for
 all the levels. In Sponge, we give each level their own level.dat to
 reinforce the concept of per-world metadata.

Signed-off-by: Chris Sanders <zidane@spongepowered.org>
Daniel Naylor and others added 2 commits August 7, 2021 17:03
forge: Allow input from the console
Signed-off-by: Chris Sanders <zidane@spongepowered.org>
@Zidane Zidane marked this pull request as ready for review August 7, 2021 22:04
@Zidane Zidane merged commit 636e82e into api-8 Aug 7, 2021
@dualspiral dualspiral deleted the feature/forge branch August 7, 2021 22:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants