Fix TextureStitchEvent

This commit is contained in:
shedaniel
2020-11-08 19:29:42 +08:00
parent 48d6e17342
commit ad33f84d72
3 changed files with 57 additions and 1 deletions

View File

@@ -20,6 +20,8 @@ import me.shedaniel.architectury.event.EventHandler;
import me.shedaniel.architectury.event.events.PlayerEvent;
import me.shedaniel.architectury.event.events.TextureStitchEvent;
import me.shedaniel.architectury.event.events.*;
import me.shedaniel.architectury.forge.ArchitecturyForge;
import me.shedaniel.architectury.platform.forge.EventBuses;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.IGuiEventListener;
import net.minecraft.client.world.ClientWorld;
@@ -61,16 +63,19 @@ public class EventHandlerImpl implements EventHandler.Impl {
@Override
public void registerClient() {
MinecraftForge.EVENT_BUS.register(Client.class);
EventBuses.getModEventBus(ArchitecturyForge.MOD_ID).orElseThrow(() -> new IllegalStateException("Where is architectury?")).register(ModBasedEventHandlerImpl.Client.class);
}
@Override
public void registerCommon() {
MinecraftForge.EVENT_BUS.register(Common.class);
EventBuses.getModEventBus(ArchitecturyForge.MOD_ID).orElseThrow(() -> new IllegalStateException("Where is architectury?")).register(ModBasedEventHandlerImpl.Common.class);
}
@Override
public void registerServer() {
MinecraftForge.EVENT_BUS.register(Server.class);
EventBuses.getModEventBus(ArchitecturyForge.MOD_ID).orElseThrow(() -> new IllegalStateException("Where is architectury?")).register(ModBasedEventHandlerImpl.Server.class);
}
@OnlyIn(Dist.CLIENT)

View File

@@ -0,0 +1,46 @@
/*
* Copyright 2020 shedaniel
*
* 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
*
* http://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.
*/
package me.shedaniel.architectury.event.forge;
import me.shedaniel.architectury.event.events.TextureStitchEvent;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.eventbus.api.SubscribeEvent;
public class ModBasedEventHandlerImpl {
@OnlyIn(Dist.CLIENT)
public static class Client {
@SubscribeEvent
public static void event(net.minecraftforge.client.event.TextureStitchEvent.Pre event) {
TextureStitchEvent.PRE.invoker().stitch(event.getMap(), event::addSprite);
}
@SubscribeEvent
public static void event(net.minecraftforge.client.event.TextureStitchEvent.Post event) {
TextureStitchEvent.POST.invoker().stitch(event.getMap());
}
}
public static class Common {
}
@OnlyIn(Dist.DEDICATED_SERVER)
public static class Server {
}
}

View File

@@ -17,11 +17,16 @@
package me.shedaniel.architectury.forge;
import me.shedaniel.architectury.event.EventHandler;
import me.shedaniel.architectury.platform.forge.EventBuses;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
@Mod("architectury")
@Mod(ArchitecturyForge.MOD_ID)
public class ArchitecturyForge {
public static final String MOD_ID = "architectury";
public ArchitecturyForge() {
EventBuses.registerModEventBus(ArchitecturyForge.MOD_ID, FMLJavaModLoadingContext.get().getModEventBus());
EventHandler.init();
}
}