Skip to content

Commit

Permalink
Add HudRendering
Browse files Browse the repository at this point in the history
Add ClientStellarStatusNetworkingEvents
Add TemplatedText And LocatedText
Add StellarStatusState
Add CustomBadge, BadgeRegistrable And ModMenuIntegration
Add CustomLilyPadBlock
Add Experimental BlockDisplayExtensions
  • Loading branch information
FirstMegaGame4 committed Oct 14, 2023
1 parent 89a6554 commit cbda407
Show file tree
Hide file tree
Showing 39 changed files with 564 additions and 225 deletions.
15 changes: 13 additions & 2 deletions src/main/java/com/mmodding/mmodding_lib/Events.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.mmodding.mmodding_lib;

import com.mmodding.mmodding_lib.ducks.GeneratorOptionsDuckInterface;
import com.mmodding.mmodding_lib.ducks.WorldDuckInterface;
import com.mmodding.mmodding_lib.library.caches.CacheAccess;
import com.mmodding.mmodding_lib.library.caches.Caches;
import com.mmodding.mmodding_lib.library.config.Config;
Expand All @@ -20,9 +21,19 @@ public class Events {

private static void serverLoad(MinecraftServer server, ServerWorld world) {
GeneratorOptions generatorOptions = server.getSaveProperties().getGeneratorOptions();
GeneratorOptionsDuckInterface ducked = (GeneratorOptionsDuckInterface) generatorOptions;
GeneratorOptionsDuckInterface duckedOptions = (GeneratorOptionsDuckInterface) generatorOptions;
PersistentStateManager stateManager = world.getPersistentStateManager();
stateManager.getOrCreate(ducked::mmodding_lib$stateFromNbt, ducked::mmodding_lib$createDifferedSeedsState, "differedSeedsState");
stateManager.getOrCreate(
duckedOptions::mmodding_lib$differedSeedsStateFromNbt,
duckedOptions::mmodding_lib$createDifferedSeedsState,
"differed_seeds_state"
);
WorldDuckInterface duckedWorld = (WorldDuckInterface) world;
stateManager.getOrCreate(
duckedWorld::mmodding_lib$stellarStatusStateFromNbt,
duckedWorld::mmodding_lib$createStellarStatusState,
"stellar_status_state"
);
}

private static void serverInit(ServerPlayNetworkHandler handler, MinecraftServer server) {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,5 @@ public interface GeneratorOptionsDuckInterface {

DifferedSeedsState mmodding_lib$createDifferedSeedsState();

DifferedSeedsState mmodding_lib$stateFromNbt(NbtCompound nbt);
DifferedSeedsState mmodding_lib$differedSeedsStateFromNbt(NbtCompound nbt);
}

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.mmodding.mmodding_lib.ducks;

import com.mmodding.mmodding_lib.library.stellar.StellarStatus;
import com.mmodding.mmodding_lib.persistentstates.StellarStatusState;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.util.Identifier;

import java.util.Map;

public interface WorldDuckInterface {

StellarStatus mmodding_lib$getStellarStatus(Identifier identifier);

Map<Identifier, StellarStatus> mmodding_lib$getAllStellarStatus();

void mmodding_lib$putStellarStatus(Identifier identifier, StellarStatus status);

StellarStatusState mmodding_lib$createStellarStatusState();

StellarStatusState mmodding_lib$stellarStatusStateFromNbt(NbtCompound nbt);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.mmodding.mmodding_lib.library.blockentities.display;

import com.mmodding.mmodding_lib.library.texts.LocatedText;
import org.jetbrains.annotations.ApiStatus;

import java.util.List;

@ApiStatus.Experimental
public interface BlockEntityDisplayExtensions {

List<LocatedText> getDisplayedTexts();
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.mmodding.mmodding_lib.library.utils.Registrable;
import com.mmodding.mmodding_lib.library.utils.RegistrationUtils;
import com.mmodding.mmodding_lib.library.client.render.RenderLayerOperations;
import com.mmodding.mmodding_lib.library.client.render.layer.RenderLayerOperations;
import net.minecraft.block.Block;
import net.minecraft.block.BlockWithEntity;
import net.minecraft.item.BlockItem;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.mmodding.mmodding_lib.library.utils.IdentifierUtils;
import com.mmodding.mmodding_lib.library.utils.RegistrationUtils;
import com.mmodding.mmodding_lib.library.client.render.RenderLayerOperations;
import com.mmodding.mmodding_lib.library.client.render.layer.RenderLayerOperations;
import net.minecraft.block.*;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package com.mmodding.mmodding_lib.library.blocks;

import net.minecraft.block.LilyPadBlock;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
import org.quiltmc.qsl.item.setting.api.QuiltItemSettings;

import java.util.concurrent.atomic.AtomicBoolean;

public class CustomLilyPadBlock extends LilyPadBlock implements BlockRegistrable, BlockWithItem {

private final AtomicBoolean registered = new AtomicBoolean(false);

private BlockItem item = null;

public CustomLilyPadBlock(Settings settings) {
this(settings, false);
}

public CustomLilyPadBlock(Settings settings, boolean hasItem) {
this(settings, hasItem, (ItemGroup) null);
}

public CustomLilyPadBlock(Settings settings, boolean hasItem, ItemGroup itemGroup) {
this(settings, hasItem, itemGroup != null ? new QuiltItemSettings().group(itemGroup) : new QuiltItemSettings());
}

public CustomLilyPadBlock(Settings settings, boolean hasItem, Item.Settings itemSettings) {
super(settings);
if (hasItem) this.item = new BlockItem(this, itemSettings);
}

@Override
public BlockItem getItem() {
return this.item;
}

@Override
public boolean isNotRegistered() {
return !this.registered.get();
}

@Override
public void setRegistered() {
this.registered.set(true);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.mmodding.mmodding_lib.library.client.render;

import com.mmodding.mmodding_lib.library.utils.Colors;
import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback;
import net.minecraft.client.MinecraftClient;
import net.minecraft.text.Text;

public class HudRendering {

public static void renderTextOnHud(Text text, int x, int y, Colors.RGB color) {
HudRenderCallback.EVENT.register((matrices, ticks) -> MinecraftClient.getInstance().textRenderer.draw(matrices, text, x, y, color.toDecimal()));
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mmodding.mmodding_lib.library.client.render;
package com.mmodding.mmodding_lib.library.client.render.layer;

import com.mmodding.mmodding_lib.mixin.accessors.client.RenderPhaseAccessor;
import net.minecraft.client.render.RenderPhase;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mmodding.mmodding_lib.library.client.render;
package com.mmodding.mmodding_lib.library.client.render.layer;

import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandlerRegistry;
import net.minecraft.block.Block;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.mmodding.mmodding_lib.library.enchantments.CustomEnchantment;
import com.mmodding.mmodding_lib.library.utils.FilterList;
import com.mmodding.mmodding_lib.library.utils.Prefix;
import com.mmodding.mmodding_lib.library.texts.Prefix;
import net.minecraft.item.EnchantedBookItem;
import net.minecraft.item.Items;
import net.minecraft.util.Formatting;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import com.mmodding.mmodding_lib.library.enchantments.CustomEnchantment;
import com.mmodding.mmodding_lib.library.items.settings.AdvancedItemSettings;
import com.mmodding.mmodding_lib.library.utils.FilterList;
import com.mmodding.mmodding_lib.library.utils.Prefix;
import com.mmodding.mmodding_lib.library.texts.Prefix;
import com.mmodding.mmodding_lib.library.utils.TweakFunction;
import net.minecraft.item.EnchantedBookItem;
import net.minecraft.util.Formatting;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.mmodding.mmodding_lib.library.events.networking.client;

import com.mmodding.mmodding_lib.library.stellar.client.ClientStellarStatus;
import com.mmodding.mmodding_lib.library.stellar.StellarStatus;
import net.minecraft.util.Identifier;
import org.quiltmc.loader.api.minecraft.ClientOnly;
import org.quiltmc.qsl.base.api.event.Event;
Expand All @@ -24,13 +24,13 @@ public class ClientStellarStatusNetworkingEvents {
@FunctionalInterface
public interface Before {

void beforeStellarStatusReceived(Identifier identifier, ClientStellarStatus status);
void beforeStellarStatusReceived(Identifier identifier, StellarStatus status);
}

@ClientOnly
@FunctionalInterface
public interface After {

void afterStellarStatusReceived(Identifier identifier, ClientStellarStatus status);
void afterStellarStatusReceived(Identifier identifier, StellarStatus status);
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.mmodding.mmodding_lib.library.fluids;

import com.mmodding.mmodding_lib.library.client.render.RenderLayerOperations;
import com.mmodding.mmodding_lib.library.client.render.layer.RenderLayerOperations;
import com.mmodding.mmodding_lib.library.utils.EnvironmentUtils;
import com.mmodding.mmodding_lib.library.utils.Registrable;
import com.mmodding.mmodding_lib.library.utils.RegistrationUtils;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.mmodding.mmodding_lib.library.glint.client;

import com.mmodding.mmodding_lib.library.client.render.RenderLayerElements;
import com.mmodding.mmodding_lib.library.client.render.layer.RenderLayerElements;
import com.mmodding.mmodding_lib.library.client.utils.RenderLayerUtils;
import com.mmodding.mmodding_lib.library.utils.TextureLocation;
import com.mojang.blaze3d.vertex.*;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.mmodding.mmodding_lib.library.integrations.modmenu;

import com.mmodding.mmodding_lib.library.utils.Registrable;
import net.minecraft.util.Identifier;

public interface BadgeRegistrable extends Registrable {

default void register(Identifier identifier) {
if (this instanceof CustomBadge item && this.isNotRegistered()) {
ModMenuIntegration.CUSTOM_BADGES_REGISTRY.put(identifier, item);
this.setRegistered();
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package com.mmodding.mmodding_lib.library.integrations.modmenu;

import com.mmodding.mmodding_lib.library.utils.BiList;
import com.mmodding.mmodding_lib.library.utils.Colors;
import org.quiltmc.loader.api.QuiltLoader;
import org.quiltmc.loader.api.entrypoint.EntrypointContainer;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Supplier;

public class CustomBadge implements BadgeRegistrable {

private final AtomicBoolean registered = new AtomicBoolean(false);

private final BiList<String, Class<?>> entrypointInfo;
private final Provider provider;
private final Supplier<Colors.RGB> outlineColor;
private final Supplier<Colors.RGB> fillColor;

public CustomBadge(BiList<String, Class<?>> entrypointInfo, Provider provider, Colors.RGB outlineColor, Colors.RGB fillColor) {
this(entrypointInfo, provider, () -> outlineColor, () -> fillColor);
}

public CustomBadge(BiList<String, Class<?>> entrypointInfo, Provider provider, Supplier<Colors.RGB> outlineColor, Supplier<Colors.RGB> fillColor) {
this.entrypointInfo = entrypointInfo;
this.provider = provider;
this.outlineColor = outlineColor;
this.fillColor = fillColor;
}

public List<String> getMods() {
List<String> mods = new ArrayList<>();
this.entrypointInfo.forEach(
(entrypointKey, entrypointClass) -> mods.addAll(this.provider.getMods(QuiltLoader.getEntrypointContainers(entrypointKey, entrypointClass)))
);
return mods;
}

public Colors.RGB getOutlineColor() {
return this.outlineColor.get();
}

public Colors.RGB getFillColor() {
return this.fillColor.get();
}

@Override
public boolean isNotRegistered() {
return !this.registered.get();
}

@Override
public void setRegistered() {
this.registered.set(true);
}

@FunctionalInterface
public interface Provider {

List<String> getMods(List<? extends EntrypointContainer<?>> entrypointContainers);
}
}
Loading

0 comments on commit cbda407

Please sign in to comment.