Skip to content

Commit

Permalink
Merge pull request #4410 from IThundxr/zeta
Browse files Browse the repository at this point in the history
feat: Zeta
quat1024 authored Nov 9, 2023
2 parents 7d655d5 + d8a8e0d commit 96ec900
Showing 25 changed files with 191 additions and 204 deletions.
Original file line number Diff line number Diff line change
@@ -38,7 +38,6 @@
import org.violetmoon.quark.base.handler.advancement.QuarkAdvancementHandler;
import org.violetmoon.quark.base.handler.advancement.QuarkGenericTrigger;
import org.violetmoon.zeta.client.event.load.ZClientSetup;
import org.violetmoon.zeta.event.*;
import org.violetmoon.zeta.event.bus.LoadEvent;
import org.violetmoon.zeta.event.bus.PlayEvent;
import org.violetmoon.zeta.event.load.ZConfigChanged;
Original file line number Diff line number Diff line change
@@ -7,21 +7,17 @@
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.*;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.AddReloadListenerEvent;
import net.minecraftforge.event.TagsUpdatedEvent;
import net.minecraftforge.event.TickEvent.ServerTickEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;

import javax.annotation.Nullable;

import org.violetmoon.quark.api.event.RecipeCrawlEvent;
import org.violetmoon.quark.api.event.RecipeCrawlEvent.Visit;
import org.violetmoon.quark.base.Quark;
import org.violetmoon.zeta.event.bus.LoadEvent;
import org.violetmoon.zeta.event.bus.PlayEvent;
import org.violetmoon.zeta.event.load.ZAddReloadListener;
import org.violetmoon.zeta.event.load.ZTagsUpdated;
import org.violetmoon.zeta.event.play.ZServerTick;
import org.violetmoon.zeta.util.RegistryUtil;

import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -102,8 +98,8 @@ else if (recipe instanceof AbstractCookingRecipe acr)
}
}

@SubscribeEvent
public static void onTick(ServerTickEvent tick) {
@PlayEvent
public static void onTick(ZServerTick tick) {
synchronized(mutex) {
if(mayCrawl && needsCrawl) {
RecipeManager manager = tick.getServer().getRecipeManager();
Original file line number Diff line number Diff line change
@@ -1,24 +1,8 @@
package org.violetmoon.quark.base.handler;

import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

import org.apache.commons.lang3.tuple.Pair;
import org.violetmoon.quark.base.handler.advancement.QuarkAdvancementHandler;
import org.violetmoon.quark.base.handler.advancement.mod.WaxModifier;
import org.violetmoon.zeta.event.bus.LoadEvent;
import org.violetmoon.zeta.event.bus.PlayEvent;
import org.violetmoon.zeta.event.load.ZCommonSetup;
import org.violetmoon.zeta.event.play.entity.player.ZRightClickBlock;
import org.violetmoon.zeta.module.ZetaModule;

import com.google.common.collect.HashBiMap;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;

import net.minecraft.advancements.CriteriaTriggers;
import net.minecraft.core.BlockPos;
import net.minecraft.server.level.ServerPlayer;
@@ -32,8 +16,17 @@
import net.minecraft.world.level.block.state.properties.Property;
import net.minecraftforge.common.ToolAction;
import net.minecraftforge.common.ToolActions;
import net.minecraftforge.event.level.BlockEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import org.apache.commons.lang3.tuple.Pair;
import org.violetmoon.quark.base.handler.advancement.QuarkAdvancementHandler;
import org.violetmoon.quark.base.handler.advancement.mod.WaxModifier;
import org.violetmoon.zeta.event.bus.LoadEvent;
import org.violetmoon.zeta.event.bus.PlayEvent;
import org.violetmoon.zeta.event.load.ZCommonSetup;
import org.violetmoon.zeta.event.play.ZBlock;
import org.violetmoon.zeta.event.play.entity.player.ZRightClickBlock;
import org.violetmoon.zeta.module.ZetaModule;

import java.util.*;

public final class ToolInteractionHandler {

@@ -73,8 +66,8 @@ public static void addModifiers(ZCommonSetup event) {
}
}

@SubscribeEvent
public static void toolActionEvent(BlockEvent.BlockToolModificationEvent event) {
@PlayEvent
public static void toolActionEvent(ZBlock.BlockToolModification event) {
ToolAction action = event.getToolAction();

if(interactionMaps.containsKey(action)) {
Original file line number Diff line number Diff line change
@@ -25,9 +25,6 @@
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.structure.Structure;
import net.minecraftforge.common.Tags;

import javax.annotation.Nullable;

import org.violetmoon.quark.base.Quark;
import org.violetmoon.quark.base.config.Config;
import org.violetmoon.quark.base.handler.StructureBlockReplacementHandler;
@@ -44,7 +41,6 @@
import org.violetmoon.quark.mixin.accessor.AccessorAbstractChestedHorse;
import org.violetmoon.zeta.client.event.load.ZClientSetup;
import org.violetmoon.zeta.client.event.load.ZPreTextureStitch;
import org.violetmoon.zeta.event.*;
import org.violetmoon.zeta.event.bus.LoadEvent;
import org.violetmoon.zeta.event.bus.PlayEvent;
import org.violetmoon.zeta.event.load.ZConfigChanged;
@@ -57,6 +53,7 @@
import org.violetmoon.zeta.module.ZetaLoadModule;
import org.violetmoon.zeta.module.ZetaModule;

import javax.annotation.Nullable;
import java.util.*;
import java.util.function.BooleanSupplier;
import java.util.function.Consumer;
Original file line number Diff line number Diff line change
@@ -39,7 +39,6 @@
import org.violetmoon.quark.base.handler.MiscUtil;
import org.violetmoon.quark.base.handler.SimilarBlockTypeHandler;
import org.violetmoon.quark.content.management.client.screen.widgets.MiniInventoryButton;
import org.violetmoon.zeta.client.event.*;
import org.violetmoon.zeta.client.event.load.ZClientSetup;
import org.violetmoon.zeta.client.event.play.ZRenderContainerScreen;
import org.violetmoon.zeta.client.event.play.ZScreen;
Original file line number Diff line number Diff line change
@@ -28,7 +28,6 @@

import org.violetmoon.quark.base.Quark;
import org.violetmoon.quark.base.config.Config;
import org.violetmoon.zeta.event.*;
import org.violetmoon.zeta.event.bus.LoadEvent;
import org.violetmoon.zeta.event.bus.PlayEvent;
import org.violetmoon.zeta.event.bus.ZResult;
Original file line number Diff line number Diff line change
@@ -42,7 +42,6 @@
import org.violetmoon.quark.content.experimental.client.tooltip.VariantsComponent;
import org.violetmoon.quark.content.experimental.config.BlockSuffixConfig;
import org.violetmoon.quark.content.experimental.item.HammerItem;
import org.violetmoon.zeta.client.event.*;
import org.violetmoon.zeta.client.event.load.ZKeyMapping;
import org.violetmoon.zeta.client.event.load.ZTooltipComponents;
import org.violetmoon.zeta.client.event.play.ZEndClientTick;
Original file line number Diff line number Diff line change
@@ -58,7 +58,6 @@ public void onKeyInput(ZInput.Key event) {
acceptInput(event.getKey());
}

//fixme Needs splitting up
@PlayEvent
public void hudHeathPre(ZRenderGuiOverlay.PlayerHealth.Pre event) {
float shift = -getRealHeight(event.getPartialTick()) + 22;
Original file line number Diff line number Diff line change
@@ -50,7 +50,6 @@
import org.violetmoon.quark.content.tools.item.AncientTomeItem;
import org.violetmoon.quark.content.tools.loot.EnchantTome;
import org.violetmoon.quark.content.world.module.MonsterBoxModule;
import org.violetmoon.zeta.event.*;
import org.violetmoon.zeta.event.bus.LoadEvent;
import org.violetmoon.zeta.event.bus.PlayEvent;
import org.violetmoon.zeta.event.load.ZCommonSetup;
Original file line number Diff line number Diff line change
@@ -27,7 +27,6 @@
import org.violetmoon.quark.base.network.message.UpdateTridentMessage;
import org.violetmoon.quark.content.tools.client.render.GlintRenderTypes;
import org.violetmoon.quark.content.tools.item.RuneItem;
import org.violetmoon.zeta.event.*;
import org.violetmoon.zeta.event.bus.LoadEvent;
import org.violetmoon.zeta.event.bus.PlayEvent;
import org.violetmoon.zeta.event.load.ZCommonSetup;
Original file line number Diff line number Diff line change
@@ -37,7 +37,6 @@
import org.violetmoon.quark.content.tools.entity.ParrotEgg;
import org.violetmoon.quark.content.tools.item.ParrotEggItem;
import org.violetmoon.zeta.client.event.load.ZClientSetup;
import org.violetmoon.zeta.event.*;
import org.violetmoon.zeta.event.bus.LoadEvent;
import org.violetmoon.zeta.event.bus.PlayEvent;
import org.violetmoon.zeta.event.load.ZCommonSetup;
Original file line number Diff line number Diff line change
@@ -1,38 +1,7 @@
package org.violetmoon.quark.content.tools.module;

import java.util.LinkedList;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;

import javax.annotation.Nonnull;

import org.violetmoon.quark.base.Quark;
import org.violetmoon.quark.base.QuarkClient;
import org.violetmoon.quark.base.config.Config;
import org.violetmoon.quark.base.config.type.IConfigType;
import org.violetmoon.quark.base.handler.advancement.QuarkAdvancementHandler;
import org.violetmoon.quark.base.handler.advancement.QuarkGenericTrigger;
import org.violetmoon.quark.content.tools.item.PathfindersQuillItem;
import org.violetmoon.quark.content.tools.loot.InBiomeCondition;
import org.violetmoon.zeta.client.event.load.ZAddItemColorHandlers;
import org.violetmoon.zeta.client.event.load.ZClientSetup;
import org.violetmoon.zeta.client.event.play.ZRenderGuiOverlay;
import org.violetmoon.zeta.event.bus.LoadEvent;
import org.violetmoon.zeta.event.bus.PlayEvent;
import org.violetmoon.zeta.event.load.ZConfigChanged;
import org.violetmoon.zeta.event.load.ZRegister;
import org.violetmoon.zeta.event.play.entity.living.ZLivingTick;
import org.violetmoon.zeta.event.play.entity.player.ZPlayerTick;
import org.violetmoon.zeta.event.play.loading.ZVillagerTrades;
import org.violetmoon.zeta.module.ZetaLoadModule;
import org.violetmoon.zeta.module.ZetaModule;
import org.violetmoon.zeta.util.Hint;
import org.violetmoon.zeta.util.ItemNBTHelper;

import com.mojang.blaze3d.platform.Window;
import com.mojang.blaze3d.vertex.PoseStack;

import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import net.minecraft.client.Minecraft;
import net.minecraft.client.color.item.ItemColor;
@@ -62,10 +31,35 @@
import net.minecraft.world.level.storage.loot.functions.LootItemFunctionType;
import net.minecraft.world.level.storage.loot.predicates.LootItemConditionType;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.event.village.WandererTradesEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import org.violetmoon.quark.base.Quark;
import org.violetmoon.quark.base.QuarkClient;
import org.violetmoon.quark.base.config.Config;
import org.violetmoon.quark.base.config.type.IConfigType;
import org.violetmoon.quark.base.handler.advancement.QuarkAdvancementHandler;
import org.violetmoon.quark.base.handler.advancement.QuarkGenericTrigger;
import org.violetmoon.quark.content.tools.item.PathfindersQuillItem;
import org.violetmoon.quark.content.tools.loot.InBiomeCondition;
import org.violetmoon.zeta.client.event.load.ZAddItemColorHandlers;
import org.violetmoon.zeta.client.event.load.ZClientSetup;
import org.violetmoon.zeta.client.event.play.ZRenderGuiOverlay;
import org.violetmoon.zeta.event.bus.LoadEvent;
import org.violetmoon.zeta.event.bus.PlayEvent;
import org.violetmoon.zeta.event.load.ZConfigChanged;
import org.violetmoon.zeta.event.load.ZRegister;
import org.violetmoon.zeta.event.play.entity.living.ZLivingTick;
import org.violetmoon.zeta.event.play.entity.player.ZPlayerTick;
import org.violetmoon.zeta.event.play.loading.ZVillagerTrades;
import org.violetmoon.zeta.event.play.loading.ZWandererTrades;
import org.violetmoon.zeta.module.ZetaLoadModule;
import org.violetmoon.zeta.module.ZetaModule;
import org.violetmoon.zeta.util.Hint;
import org.violetmoon.zeta.util.ItemNBTHelper;

import javax.annotation.Nonnull;
import java.util.LinkedList;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;

@ZetaLoadModule(category = "tools")
public class PathfinderMapsModule extends ZetaModule {
@@ -162,9 +156,8 @@ public void onTradesLoaded(ZVillagerTrades event) {
}
}

//fixme Port
@SubscribeEvent
public void onWandererTradesLoaded(WandererTradesEvent event) {
@PlayEvent
public void onWandererTradesLoaded(ZWandererTrades event) {
if(!addToWanderingTraderForced && (addToWanderingTraderGeneric || addToWanderingTraderRare))
synchronized (mutex) {
if(!tradeList.isEmpty()) {
Original file line number Diff line number Diff line change
@@ -31,7 +31,6 @@
import org.violetmoon.quark.content.tweaks.client.emote.*;
import org.violetmoon.quark.content.tweaks.client.screen.widgets.EmoteButton;
import org.violetmoon.quark.content.tweaks.client.screen.widgets.TranslucentButton;
import org.violetmoon.zeta.client.event.*;
import org.violetmoon.zeta.client.event.load.ZClientSetup;
import org.violetmoon.zeta.client.event.load.ZKeyMapping;
import org.violetmoon.zeta.client.event.play.ZInput;
Original file line number Diff line number Diff line change
@@ -2,7 +2,6 @@

import net.minecraft.world.entity.LivingEntity;

//fixme Move this into a lifelong home & make other interfaces use this more
public interface LivingGetter {
LivingEntity getEntity();
}
Original file line number Diff line number Diff line change
@@ -3,7 +3,6 @@
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.player.Player;

//fixme Move this into a lifelong home & make other interfaces use this more
public interface PlayerGetter extends LivingGetter {
default Player getPlayer() {
LivingEntity living = getEntity();
4 changes: 0 additions & 4 deletions src/main/java/org/violetmoon/zeta/event/bus/helpers/README.md

This file was deleted.

7 changes: 7 additions & 0 deletions src/main/java/org/violetmoon/zeta/event/play/ZBlock.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.violetmoon.zeta.event.play;

import net.minecraftforge.common.ToolAction;
import org.jetbrains.annotations.Nullable;
import org.violetmoon.zeta.event.bus.IZetaPlayEvent;

import net.minecraft.core.BlockPos;
@@ -19,4 +21,9 @@ interface Break extends ZBlock {
interface EntityPlace extends ZBlock {
BlockState getPlacedBlock();
}

interface BlockToolModification extends ZBlock {
ToolAction getToolAction();
void setFinalState(@Nullable BlockState finalState);
}
}
11 changes: 11 additions & 0 deletions src/main/java/org/violetmoon/zeta/event/play/ZServerTick.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package org.violetmoon.zeta.event.play;

import net.minecraft.server.MinecraftServer;
import org.violetmoon.zeta.event.bus.IZetaPlayEvent;

public interface ZServerTick extends IZetaPlayEvent {
MinecraftServer getServer();

interface Start extends ZServerTick { }
interface End extends ZServerTick { }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package org.violetmoon.zeta.event.play.loading;

import net.minecraft.world.entity.npc.VillagerTrades;
import org.violetmoon.zeta.event.bus.IZetaPlayEvent;

import java.util.List;

public interface ZWandererTrades extends IZetaPlayEvent {
List<VillagerTrades.ItemListing> getGenericTrades();
List<VillagerTrades.ItemListing> getRareTrades();
}
93 changes: 29 additions & 64 deletions src/main/java/org/violetmoon/zetaimplforge/ForgeZeta.java
Original file line number Diff line number Diff line change
@@ -16,6 +16,7 @@
import net.minecraftforge.event.level.BlockEvent;
import net.minecraftforge.event.level.NoteBlockEvent;
import net.minecraftforge.event.village.VillagerTradesEvent;
import net.minecraftforge.event.village.WandererTradesEvent;
import net.minecraftforge.eventbus.api.Event;
import net.minecraftforge.eventbus.api.EventPriority;
import net.minecraftforge.eventbus.api.IEventBus;
@@ -32,45 +33,16 @@
import org.violetmoon.zeta.capability.ZetaCapabilityManager;
import org.violetmoon.zeta.config.IZetaConfigInternals;
import org.violetmoon.zeta.config.SectionDefinition;
import org.violetmoon.zeta.event.*;
import org.violetmoon.zeta.event.bus.ZResult;
import org.violetmoon.zeta.event.load.ZAddReloadListener;
import org.violetmoon.zeta.event.load.ZCommonSetup;
import org.violetmoon.zeta.event.load.ZEntityAttributeCreation;
import org.violetmoon.zeta.event.load.ZLoadComplete;
import org.violetmoon.zeta.event.load.ZRegister;
import org.violetmoon.zeta.event.load.ZTagsUpdated;
import org.violetmoon.zeta.event.play.ZAnvilRepair;
import org.violetmoon.zeta.event.play.ZAnvilUpdate;
import org.violetmoon.zeta.event.play.ZBlock;
import org.violetmoon.zeta.event.play.ZBonemeal;
import org.violetmoon.zeta.event.play.ZLevelTick;
import org.violetmoon.zeta.event.play.ZPlayNoteBlock;
import org.violetmoon.zeta.event.play.entity.ZEntityConstruct;
import org.violetmoon.zeta.event.play.entity.ZEntityInteract;
import org.violetmoon.zeta.event.play.entity.ZEntityItemPickup;
import org.violetmoon.zeta.event.play.entity.ZEntityJoinLevel;
import org.violetmoon.zeta.event.play.entity.ZEntityMobGriefing;
import org.violetmoon.zeta.event.play.entity.ZEntityTeleport;
import org.violetmoon.zeta.event.play.entity.living.ZAnimalTame;
import org.violetmoon.zeta.event.play.entity.living.ZBabyEntitySpawn;
import org.violetmoon.zeta.event.play.entity.living.ZLivingChangeTarget;
import org.violetmoon.zeta.event.play.entity.living.ZLivingConversion;
import org.violetmoon.zeta.event.play.entity.living.ZLivingDeath;
import org.violetmoon.zeta.event.play.entity.living.ZLivingDrops;
import org.violetmoon.zeta.event.play.entity.living.ZLivingFall;
import org.violetmoon.zeta.event.play.entity.living.ZLivingSpawn;
import org.violetmoon.zeta.event.play.entity.living.ZLivingTick;
import org.violetmoon.zeta.event.play.entity.living.ZSleepingLocationCheck;
import org.violetmoon.zeta.event.play.entity.player.ZPlayer;
import org.violetmoon.zeta.event.play.entity.player.ZPlayerDestroyItem;
import org.violetmoon.zeta.event.play.entity.player.ZPlayerInteract;
import org.violetmoon.zeta.event.play.entity.player.ZPlayerTick;
import org.violetmoon.zeta.event.play.entity.player.ZRightClickBlock;
import org.violetmoon.zeta.event.play.entity.player.ZRightClickItem;
import org.violetmoon.zeta.event.load.*;
import org.violetmoon.zeta.event.play.*;
import org.violetmoon.zeta.event.play.entity.*;
import org.violetmoon.zeta.event.play.entity.living.*;
import org.violetmoon.zeta.event.play.entity.player.*;
import org.violetmoon.zeta.event.play.loading.ZAttachCapabilities;
import org.violetmoon.zeta.event.play.loading.ZLootTableLoad;
import org.violetmoon.zeta.event.play.loading.ZVillagerTrades;
import org.violetmoon.zeta.event.play.loading.ZWandererTrades;
import org.violetmoon.zeta.item.ext.ItemExtensionFactory;
import org.violetmoon.zeta.network.ZetaNetworkHandler;
import org.violetmoon.zeta.registry.BrewingRegistry;
@@ -81,42 +53,18 @@
import org.violetmoon.zetaimplforge.capability.ForgeCapabilityManager;
import org.violetmoon.zetaimplforge.config.ForgeBackedConfig;
import org.violetmoon.zetaimplforge.config.TerribleForgeConfigHackery;
import org.violetmoon.zetaimplforge.event.*;
import org.violetmoon.zetaimplforge.event.load.ForgeZAddReloadListener;
import org.violetmoon.zetaimplforge.event.load.ForgeZCommonSetup;
import org.violetmoon.zetaimplforge.event.load.ForgeZEntityAttributeCreation;
import org.violetmoon.zetaimplforge.event.load.ForgeZLoadComplete;
import org.violetmoon.zetaimplforge.event.play.ForgeZAnvilRepair;
import org.violetmoon.zetaimplforge.event.play.ForgeZAnvilUpdate;
import org.violetmoon.zetaimplforge.event.play.ForgeZBlock;
import org.violetmoon.zetaimplforge.event.play.ForgeZBonemeal;
import org.violetmoon.zetaimplforge.event.play.ForgeZLevelTick;
import org.violetmoon.zetaimplforge.event.play.ForgeZPlayNoteBlock;
import org.violetmoon.zetaimplforge.event.play.entity.ForgeZEntityConstruct;
import org.violetmoon.zetaimplforge.event.play.entity.ForgeZEntityInteract;
import org.violetmoon.zetaimplforge.event.play.entity.ForgeZEntityItemPickup;
import org.violetmoon.zetaimplforge.event.play.entity.ForgeZEntityJoinLevel;
import org.violetmoon.zetaimplforge.event.play.entity.ForgeZEntityMobGriefing;
import org.violetmoon.zetaimplforge.event.play.entity.ForgeZEntityTeleport;
import org.violetmoon.zetaimplforge.event.play.entity.living.ForgeZAnimalTame;
import org.violetmoon.zetaimplforge.event.play.entity.living.ForgeZBabyEntitySpawn;
import org.violetmoon.zetaimplforge.event.play.entity.living.ForgeZLivingChangeTarget;
import org.violetmoon.zetaimplforge.event.play.entity.living.ForgeZLivingConversion;
import org.violetmoon.zetaimplforge.event.play.entity.living.ForgeZLivingDeath;
import org.violetmoon.zetaimplforge.event.play.entity.living.ForgeZLivingDrops;
import org.violetmoon.zetaimplforge.event.play.entity.living.ForgeZLivingFall;
import org.violetmoon.zetaimplforge.event.play.entity.living.ForgeZLivingSpawn;
import org.violetmoon.zetaimplforge.event.play.entity.living.ForgeZLivingTick;
import org.violetmoon.zetaimplforge.event.play.entity.living.ForgeZSleepingLocationCheck;
import org.violetmoon.zetaimplforge.event.play.entity.player.ForgeZPlayer;
import org.violetmoon.zetaimplforge.event.play.entity.player.ForgeZPlayerDestroyItem;
import org.violetmoon.zetaimplforge.event.play.entity.player.ForgeZPlayerInteract;
import org.violetmoon.zetaimplforge.event.play.entity.player.ForgeZPlayerTick;
import org.violetmoon.zetaimplforge.event.play.entity.player.ForgeZRightClickBlock;
import org.violetmoon.zetaimplforge.event.play.entity.player.ForgeZRightClickItem;
import org.violetmoon.zetaimplforge.event.play.*;
import org.violetmoon.zetaimplforge.event.play.entity.*;
import org.violetmoon.zetaimplforge.event.play.entity.living.*;
import org.violetmoon.zetaimplforge.event.play.entity.player.*;
import org.violetmoon.zetaimplforge.event.play.loading.ForgeZAttachCapabilities;
import org.violetmoon.zetaimplforge.event.play.loading.ForgeZLootTableLoad;
import org.violetmoon.zetaimplforge.event.play.loading.ForgeZVillagerTrades;
import org.violetmoon.zetaimplforge.event.play.loading.ForgeZWandererTrades;
import org.violetmoon.zetaimplforge.item.IForgeItemItemExtensions;
import org.violetmoon.zetaimplforge.network.ForgeZetaNetworkHandler;
import org.violetmoon.zetaimplforge.registry.ForgeBrewingRegistry;
@@ -237,6 +185,8 @@ public void start() {
MinecraftForge.EVENT_BUS.addGenericListener(BlockEntity.class, this::blockEntityCaps);
MinecraftForge.EVENT_BUS.addGenericListener(Level.class, this::levelCaps);

MinecraftForge.EVENT_BUS.addListener(this::serverTickStart);
MinecraftForge.EVENT_BUS.addListener(this::serverTickEnd);
MinecraftForge.EVENT_BUS.addListener(this::levelTickStart);
MinecraftForge.EVENT_BUS.addListener(this::levelTickEnd);
MinecraftForge.EVENT_BUS.addListener(this::playerInteract);
@@ -265,6 +215,7 @@ public void start() {
MinecraftForge.EVENT_BUS.addListener(this::bonemeal);
MinecraftForge.EVENT_BUS.addListener(this::entityTeleport);
MinecraftForge.EVENT_BUS.addListener(this::livingFall);
MinecraftForge.EVENT_BUS.addListener(this::wandererTrades);
}

boolean registerDone = false;
@@ -404,6 +355,16 @@ public void levelCaps(AttachCapabilitiesEvent<Level> e) {
playBus.fire(new ForgeZAttachCapabilities.LevelCaps(capabilityManager, e), ZAttachCapabilities.LevelCaps.class);
}

public void serverTickStart(TickEvent.ServerTickEvent e) {
if (e.phase == TickEvent.Phase.START)
playBus.fire(new ForgeZServerTick.Start(e), ZServerTick.Start.class);
}

public void serverTickEnd(TickEvent.ServerTickEvent e) {
if (e.phase == TickEvent.Phase.END)
playBus.fire(new ForgeZServerTick.End(e), ZServerTick.End.class);
}

public void levelTickStart(TickEvent.LevelTickEvent e) {
if (e.phase == TickEvent.Phase.START)
playBus.fire(new ForgeZLevelTick.Start(e), ZLevelTick.Start.class);
@@ -519,6 +480,10 @@ public void livingFall(LivingFallEvent e) {
playBus.fire(new ForgeZLivingFall(e), ZLivingFall.class);
}

public void wandererTrades(WandererTradesEvent e) {
playBus.fire(new ForgeZWandererTrades(e), ZWandererTrades.class);
}

public static ZResult from(Event.Result r) {
return switch(r) {
case DENY -> ZResult.DENY;
Original file line number Diff line number Diff line change
@@ -6,6 +6,7 @@
import net.minecraft.client.color.item.ItemColors;
import net.minecraft.world.level.ItemLike;
import net.minecraft.world.level.block.Block;
import net.minecraftforge.client.event.*;
import net.minecraftforge.client.gui.overlay.VanillaGuiOverlay;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.TickEvent;
@@ -18,62 +19,13 @@
import org.violetmoon.zeta.Zeta;
import org.violetmoon.zeta.client.ClientRegistryExtension;
import org.violetmoon.zeta.client.ZetaClient;
import org.violetmoon.zeta.client.event.*;
import org.violetmoon.zeta.client.event.load.ZAddBlockColorHandlers;
import org.violetmoon.zeta.client.event.load.ZAddItemColorHandlers;
import org.violetmoon.zeta.client.event.load.ZAddModelLayers;
import org.violetmoon.zeta.client.event.load.ZAddModels;
import org.violetmoon.zeta.client.event.load.ZClientSetup;
import org.violetmoon.zeta.client.event.load.ZKeyMapping;
import org.violetmoon.zeta.client.event.load.ZModelBakingCompleted;
import org.violetmoon.zeta.client.event.load.ZPreTextureStitch;
import org.violetmoon.zeta.client.event.load.ZRegisterLayerDefinitions;
import org.violetmoon.zeta.client.event.load.ZRegisterReloadListeners;
import org.violetmoon.zeta.client.event.load.ZTooltipComponents;
import org.violetmoon.zeta.client.event.play.ZCustomizeDebugText;
import org.violetmoon.zeta.client.event.play.ZEndClientTick;
import org.violetmoon.zeta.client.event.play.ZFirstClientTick;
import org.violetmoon.zeta.client.event.play.ZGatherTooltipComponents;
import org.violetmoon.zeta.client.event.play.ZHighlightBlock;
import org.violetmoon.zeta.client.event.play.ZInput;
import org.violetmoon.zeta.client.event.play.ZInputUpdate;
import org.violetmoon.zeta.client.event.play.ZRenderContainerScreen;
import org.violetmoon.zeta.client.event.play.ZRenderGuiOverlay;
import org.violetmoon.zeta.client.event.play.ZRenderLiving;
import org.violetmoon.zeta.client.event.play.ZRenderPlayer;
import org.violetmoon.zeta.client.event.play.ZRenderTick;
import org.violetmoon.zeta.client.event.play.ZRenderTooltip;
import org.violetmoon.zeta.client.event.play.ZScreen;
import org.violetmoon.zeta.client.event.play.ZScreenshot;
import org.violetmoon.zeta.client.event.play.ZStartClientTick;
import org.violetmoon.zetaimplforge.client.event.*;
import org.violetmoon.zetaimplforge.client.event.load.ForgeZAddBlockColorHandlers;
import org.violetmoon.zetaimplforge.client.event.load.ForgeZAddItemColorHandlers;
import org.violetmoon.zetaimplforge.client.event.load.ForgeZAddModelLayers;
import org.violetmoon.zetaimplforge.client.event.load.ForgeZAddModels;
import org.violetmoon.zetaimplforge.client.event.load.ForgeZClientSetup;
import org.violetmoon.zetaimplforge.client.event.load.ForgeZKeyMapping;
import org.violetmoon.zetaimplforge.client.event.load.ForgeZModelBakingCompleted;
import org.violetmoon.zetaimplforge.client.event.load.ForgeZPreTextureStitch;
import org.violetmoon.zetaimplforge.client.event.load.ForgeZRegisterLayerDefinitions;
import org.violetmoon.zetaimplforge.client.event.load.ForgeZTooltipComponents;
import org.violetmoon.zetaimplforge.client.event.player.ForgeZCustomizeDebugText;
import org.violetmoon.zetaimplforge.client.event.player.ForgeZGatherTooltipComponents;
import org.violetmoon.zetaimplforge.client.event.player.ForgeZHighlightBlock;
import org.violetmoon.zetaimplforge.client.event.player.ForgeZInput;
import org.violetmoon.zetaimplforge.client.event.player.ForgeZInputUpdate;
import org.violetmoon.zetaimplforge.client.event.player.ForgeZRenderContainerScreen;
import org.violetmoon.zetaimplforge.client.event.player.ForgeZRenderGuiOverlay;
import org.violetmoon.zetaimplforge.client.event.player.ForgeZRenderLiving;
import org.violetmoon.zetaimplforge.client.event.player.ForgeZRenderPlayer;
import org.violetmoon.zetaimplforge.client.event.player.ForgeZRenderTick;
import org.violetmoon.zetaimplforge.client.event.player.ForgeZRenderTooltip;
import org.violetmoon.zetaimplforge.client.event.player.ForgeZScreen;
import org.violetmoon.zeta.client.event.load.*;
import org.violetmoon.zeta.client.event.play.*;
import org.violetmoon.zetaimplforge.client.event.load.*;
import org.violetmoon.zetaimplforge.client.event.player.*;
import org.violetmoon.zetaimplforge.mixin.client.AccessorBlockColors;
import org.violetmoon.zetaimplforge.mixin.client.AccessorItemColors;

import net.minecraftforge.client.event.*;

public class ForgeZetaClient extends ZetaClient {
public ForgeZetaClient(Zeta z) {
super(z);
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.violetmoon.zetaimplforge.event.play;

import net.minecraftforge.common.ToolAction;
import org.jetbrains.annotations.Nullable;
import org.violetmoon.zeta.event.play.ZBlock;

import net.minecraft.core.BlockPos;
@@ -57,4 +59,23 @@ public BlockState getPlacedBlock() {
return e.getPlacedBlock();
}
}

public static class BlockToolModification extends ForgeZBlock implements ZBlock.BlockToolModification {
private final BlockEvent.BlockToolModificationEvent e;

public BlockToolModification(BlockEvent.BlockToolModificationEvent e) {
super(e);
this.e = e;
}

@Override
public ToolAction getToolAction() {
return e.getToolAction();
}

@Override
public void setFinalState(@Nullable BlockState finalState) {
e.setFinalState(finalState);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package org.violetmoon.zetaimplforge.event.play;

import net.minecraft.server.MinecraftServer;
import net.minecraftforge.event.TickEvent;
import org.violetmoon.zeta.event.play.ZServerTick;

public class ForgeZServerTick implements ZServerTick {
private final TickEvent.ServerTickEvent e;

public ForgeZServerTick(TickEvent.ServerTickEvent e) {
this.e = e;
}

@Override
public MinecraftServer getServer() {
return e.getServer();
}

public static class Start extends ForgeZServerTick implements ZServerTick.Start {
public Start(TickEvent.ServerTickEvent e) {
super(e);
}
}

public static class End extends ForgeZServerTick implements ZServerTick.End {
public End(TickEvent.ServerTickEvent e) {
super(e);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package org.violetmoon.zetaimplforge.event.play.loading;

import net.minecraft.world.entity.npc.VillagerTrades;
import net.minecraftforge.event.village.WandererTradesEvent;
import org.violetmoon.zeta.event.play.loading.ZWandererTrades;

import java.util.List;

public class ForgeZWandererTrades implements ZWandererTrades {
private final WandererTradesEvent e;

public ForgeZWandererTrades(WandererTradesEvent e) {
this.e = e;
}


@Override
public List<VillagerTrades.ItemListing> getGenericTrades() {
return e.getGenericTrades();
}

@Override
public List<VillagerTrades.ItemListing> getRareTrades() {
return e.getRareTrades();
}
}
2 changes: 1 addition & 1 deletion zeta-todo/README.md
Original file line number Diff line number Diff line change
@@ -25,7 +25,7 @@ So tl;dr for zeta-fying a module:
* create cross-platform versions of any missing `@SubscribeEvent`s in Zeta and subscribe to them with `@PlayEvent`,
* remove all other mentions of Forge and add an appropriate indirection layer in Zeta.

Repeat ~~164x~~ ~~136x~~ 47x.
Repeat ~~164x~~ ~~136x~~ ~~47x~~ 0x.

# The initial Zeta pitch

0 comments on commit 96ec900

Please sign in to comment.