mirror of
https://github.com/Ellpeck/ActuallyAdditions.git
synced 2024-11-22 23:28:35 +01:00
Compare commits
No commits in common. "43a23883e3f35e6dc60e3856c6effb4cd6d7763a" and "268cf651d0c6c56278e73b5f7af73096f2927b4b" have entirely different histories.
43a23883e3
...
268cf651d0
9 changed files with 208 additions and 105 deletions
|
@ -1 +0,0 @@
|
||||||
// 1.21.1 2024-10-22T19:46:05.5548254 Update structure files in /structure
|
|
|
@ -1,6 +1,5 @@
|
||||||
package de.ellpeck.actuallyadditions.data;
|
package de.ellpeck.actuallyadditions.data;
|
||||||
|
|
||||||
import de.ellpeck.actuallyadditions.api.ActuallyAdditionsAPI;
|
|
||||||
import de.ellpeck.actuallyadditions.data.patchouli.PatchouliGenerator;
|
import de.ellpeck.actuallyadditions.data.patchouli.PatchouliGenerator;
|
||||||
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
||||||
import de.ellpeck.actuallyadditions.mod.gen.ActuallyBiomeModifiers;
|
import de.ellpeck.actuallyadditions.mod.gen.ActuallyBiomeModifiers;
|
||||||
|
@ -73,7 +72,6 @@ public class ActuallyAdditionsData {
|
||||||
|
|
||||||
generator.addProvider(event.includeServer(), new DatapackBuiltinEntriesProvider(
|
generator.addProvider(event.includeServer(), new DatapackBuiltinEntriesProvider(
|
||||||
packOutput, patchedProvider, Set.of(ActuallyAdditions.MODID)));
|
packOutput, patchedProvider, Set.of(ActuallyAdditions.MODID)));
|
||||||
generator.addProvider(true, new StructureUpdater("structure", ActuallyAdditionsAPI.MOD_ID, helper, packOutput));
|
|
||||||
|
|
||||||
generator.addProvider(true, new Curios(packOutput, helper, lookupProvider));
|
generator.addProvider(true, new Curios(packOutput, helper, lookupProvider));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,102 +0,0 @@
|
||||||
package de.ellpeck.actuallyadditions.data;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* BluSunrize
|
|
||||||
* Copyright (c) 2021
|
|
||||||
*
|
|
||||||
* This code is licensed under "Blu's License of Common Sense".
|
|
||||||
* Class written by malte0811 and BluSunrize, and used with malte's permission.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import com.google.common.hash.Hashing;
|
|
||||||
import com.mojang.datafixers.DataFixer;
|
|
||||||
import com.mojang.datafixers.DataFixerUpper;
|
|
||||||
import net.minecraft.core.registries.BuiltInRegistries;
|
|
||||||
import net.minecraft.data.CachedOutput;
|
|
||||||
import net.minecraft.data.DataProvider;
|
|
||||||
import net.minecraft.data.PackOutput;
|
|
||||||
import net.minecraft.nbt.CompoundTag;
|
|
||||||
import net.minecraft.nbt.NbtAccounter;
|
|
||||||
import net.minecraft.nbt.NbtIo;
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
|
||||||
import net.minecraft.server.packs.resources.MultiPackResourceManager;
|
|
||||||
import net.minecraft.server.packs.resources.Resource;
|
|
||||||
import net.minecraft.util.datafix.DataFixTypes;
|
|
||||||
import net.minecraft.util.datafix.DataFixers;
|
|
||||||
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate;
|
|
||||||
import net.neoforged.neoforge.common.data.ExistingFileHelper;
|
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import java.io.ByteArrayOutputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.lang.reflect.Field;
|
|
||||||
import java.nio.file.Path;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
|
|
||||||
public class StructureUpdater implements DataProvider {
|
|
||||||
private final String basePath;
|
|
||||||
private final String modid;
|
|
||||||
private final PackOutput output;
|
|
||||||
private final MultiPackResourceManager resources;
|
|
||||||
|
|
||||||
public StructureUpdater(
|
|
||||||
String basePath, String modid, ExistingFileHelper helper, PackOutput output
|
|
||||||
) {
|
|
||||||
this.basePath = basePath;
|
|
||||||
this.modid = modid;
|
|
||||||
this.output = output;
|
|
||||||
try {
|
|
||||||
Field serverData = ExistingFileHelper.class.getDeclaredField("serverData");
|
|
||||||
serverData.setAccessible(true);
|
|
||||||
resources = (MultiPackResourceManager) serverData.get(helper);
|
|
||||||
} catch (NoSuchFieldException | IllegalAccessException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public CompletableFuture<?> run(@Nonnull CachedOutput cache) {
|
|
||||||
try {
|
|
||||||
for (var entry : resources.listResources(basePath, $ -> true).entrySet())
|
|
||||||
if (entry.getKey().getNamespace().equals(modid))
|
|
||||||
process(entry.getKey(), entry.getValue(), cache);
|
|
||||||
return CompletableFuture.completedFuture(null);
|
|
||||||
} catch (IOException x) {
|
|
||||||
return CompletableFuture.failedFuture(x);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void process(ResourceLocation loc, Resource resource, CachedOutput cache) throws IOException {
|
|
||||||
CompoundTag inputNBT = NbtIo.readCompressed(resource.open(), NbtAccounter.unlimitedHeap());
|
|
||||||
CompoundTag converted = updateNBT(inputNBT);
|
|
||||||
if (!converted.equals(inputNBT)) {
|
|
||||||
Class<? extends DataFixer> fixerClass = DataFixers.getDataFixer().getClass();
|
|
||||||
if (!fixerClass.equals(DataFixerUpper.class))
|
|
||||||
throw new RuntimeException("Structures are not up to date, but unknown data fixer is in use: " + fixerClass.getName());
|
|
||||||
writeNBTTo(loc, converted, cache);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void writeNBTTo(ResourceLocation loc, CompoundTag data, CachedOutput cache) throws IOException {
|
|
||||||
ByteArrayOutputStream bytearrayoutputstream = new ByteArrayOutputStream();
|
|
||||||
NbtIo.writeCompressed(data, bytearrayoutputstream);
|
|
||||||
byte[] bytes = bytearrayoutputstream.toByteArray();
|
|
||||||
Path outputPath = output.getOutputFolder().resolve("data/" + loc.getNamespace() + "/" + loc.getPath());
|
|
||||||
cache.writeIfNeeded(outputPath, bytes, Hashing.sha1().hashBytes(bytes));
|
|
||||||
}
|
|
||||||
|
|
||||||
private static CompoundTag updateNBT(CompoundTag nbt) {
|
|
||||||
final CompoundTag updatedNBT = DataFixTypes.STRUCTURE.updateToCurrentVersion(
|
|
||||||
DataFixers.getDataFixer(), nbt, nbt.getInt("DataVersion")
|
|
||||||
);
|
|
||||||
StructureTemplate template = new StructureTemplate();
|
|
||||||
template.load(BuiltInRegistries.BLOCK.asLookup(), updatedNBT);
|
|
||||||
return template.save(new CompoundTag());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
@Override
|
|
||||||
public String getName() {
|
|
||||||
return "Update structure files in /" + basePath + "/";
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -67,6 +67,8 @@ public class ActuallyAdditions {
|
||||||
public static final String NAME = "Actually Additions";
|
public static final String NAME = "Actually Additions";
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public static final String VERSION = "@VERSION@";
|
public static final String VERSION = "@VERSION@";
|
||||||
|
@Deprecated
|
||||||
|
public static final String GUIFACTORY = "de.ellpeck.actuallyadditions.mod.config.GuiFactory";
|
||||||
public static final String DEPS = "required:forge@[14.23.5.2836,);before:craftingtweaks;after:fastbench@[1.3.2,)";
|
public static final String DEPS = "required:forge@[14.23.5.2836,);before:craftingtweaks;after:fastbench@[1.3.2,)";
|
||||||
|
|
||||||
public static final Logger LOGGER = LoggerFactory.getLogger(MODID);
|
public static final Logger LOGGER = LoggerFactory.getLogger(MODID);
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
// TODO: [port][note] forge does not support this atm
|
||||||
|
///*
|
||||||
|
// * This file ("GuiFactory.java") is part of the Actually Additions mod for Minecraft.
|
||||||
|
// * It is created and owned by Ellpeck and distributed
|
||||||
|
// * under the Actually Additions License to be found at
|
||||||
|
// * http://ellpeck.de/actaddlicense
|
||||||
|
// * View the source code at https://github.com/Ellpeck/ActuallyAdditions
|
||||||
|
// *
|
||||||
|
// * © 2015-2017 Ellpeck
|
||||||
|
// */
|
||||||
|
//
|
||||||
|
//package de.ellpeck.actuallyadditions.mod.config;
|
||||||
|
//
|
||||||
|
//import java.util.Set;
|
||||||
|
//
|
||||||
|
//import net.minecraft.client.Minecraft;
|
||||||
|
//import net.minecraft.client.gui.GuiScreen;
|
||||||
|
//import net.minecraftforge.fml.client.IModGuiFactory;
|
||||||
|
//
|
||||||
|
//public class GuiFactory implements IModGuiFactory {
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public void initialize(Minecraft minecraftInstance) {
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public boolean hasConfigGui() {
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public GuiScreen createConfigGui(GuiScreen parentScreen) {
|
||||||
|
// return new GuiConfiguration(parentScreen);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public Set<RuntimeOptionCategoryElement> runtimeGuiCategories() {
|
||||||
|
// return null;
|
||||||
|
// }
|
||||||
|
//}
|
|
@ -0,0 +1,84 @@
|
||||||
|
package de.ellpeck.actuallyadditions.mod.inventory.gui;
|
||||||
|
|
||||||
|
import com.mojang.blaze3d.platform.GlStateManager;
|
||||||
|
import com.mojang.blaze3d.systems.RenderSystem;
|
||||||
|
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.GuiGraphics;
|
||||||
|
import net.minecraft.client.gui.components.Button;
|
||||||
|
import net.minecraft.network.chat.Component;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
@Deprecated(forRemoval = true) //Unused because vanilla's Button class can render small just fine and even allows text scrolling
|
||||||
|
public class Buttons {
|
||||||
|
|
||||||
|
@Deprecated(forRemoval = true) //Vanilla's Button class can render small just fine and even allows text scrolling
|
||||||
|
public static class SmallerButton extends Button {
|
||||||
|
|
||||||
|
public final ResourceLocation resLoc = AssetUtil.getGuiLocation("gui_inputter");
|
||||||
|
private final boolean smaller;
|
||||||
|
|
||||||
|
public SmallerButton(int x, int y, Component display, OnPress pressable) {
|
||||||
|
this(x, y, display, false, pressable);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SmallerButton(int x, int y, Component display, boolean smaller, OnPress pressable) {
|
||||||
|
super(x, y, 16, smaller
|
||||||
|
? 12
|
||||||
|
: 16, display, pressable, DEFAULT_NARRATION);
|
||||||
|
this.smaller = smaller;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void renderWidget(@Nonnull GuiGraphics guiGraphics, int mouseX, int mouseY, float f) {
|
||||||
|
if (this.visible) {
|
||||||
|
RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F);
|
||||||
|
int k = !this.active ? 0 : (this.isHoveredOrFocused() ? 2 : 1);
|
||||||
|
GlStateManager._enableBlend();
|
||||||
|
GlStateManager.glBlendFuncSeparate(770, 771, 1, 0);
|
||||||
|
GlStateManager._blendFunc(770, 771);
|
||||||
|
guiGraphics.blit(this.resLoc, this.getX(), this.getY(), this.smaller
|
||||||
|
? 200
|
||||||
|
: 176, k * this.height, this.width, this.height);
|
||||||
|
//this.mouseDragged(mc, x, y); // The heck was this doing here?
|
||||||
|
|
||||||
|
int color = 14737632;
|
||||||
|
if (this.packedFGColor != 0) {
|
||||||
|
color = this.packedFGColor;
|
||||||
|
} else if (!this.active) {
|
||||||
|
color = 10526880;
|
||||||
|
} else if (this.isHovered) {
|
||||||
|
color = 16777120;
|
||||||
|
}
|
||||||
|
|
||||||
|
guiGraphics.drawCenteredString(Minecraft.getInstance().font, this.getMessage(), this.getX() + this.width / 2, this.getY() + (this.height - 8) / 2, this.getMessage().getStyle().getColor().getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static class TinyButton extends Button {
|
||||||
|
|
||||||
|
public final ResourceLocation resLoc = AssetUtil.getGuiLocation("gui_inputter");
|
||||||
|
|
||||||
|
public TinyButton(int id, int x, int y) {
|
||||||
|
super(x, y, 8, 8, Component.literal(""), Button::onPress, DEFAULT_NARRATION);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, float f) {
|
||||||
|
if (this.visible) {
|
||||||
|
RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F);
|
||||||
|
int k = !this.active ? 0 : (this.isHoveredOrFocused() ? 2 : 1);
|
||||||
|
GlStateManager._enableBlend();
|
||||||
|
GlStateManager.glBlendFuncSeparate(770, 771, 1, 0);
|
||||||
|
GlStateManager._blendFunc(770, 771);
|
||||||
|
guiGraphics.blit(this.resLoc, this.getX(), this.getY(), 192, k * 8, 8, 8);
|
||||||
|
//this.mouseDragged(mc, x, y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,75 @@
|
||||||
|
/*
|
||||||
|
* This file ("InitOreDict.java") is part of the Actually Additions mod for Minecraft.
|
||||||
|
* It is created and owned by Ellpeck and distributed
|
||||||
|
* under the Actually Additions License to be found at
|
||||||
|
* http://ellpeck.de/actaddlicense
|
||||||
|
* View the source code at https://github.com/Ellpeck/ActuallyAdditions
|
||||||
|
*
|
||||||
|
* © 2015-2017 Ellpeck
|
||||||
|
*/
|
||||||
|
|
||||||
|
package de.ellpeck.actuallyadditions.mod.ore;
|
||||||
|
|
||||||
|
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
||||||
|
import net.minecraft.world.item.Item;
|
||||||
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.item.Items;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
// TODO: [port][change] migrate to TAGS
|
||||||
|
@Deprecated
|
||||||
|
public final class InitOreDict {
|
||||||
|
|
||||||
|
public static void init() {
|
||||||
|
ActuallyAdditions.LOGGER.info("Initializing OreDictionary Entries...");
|
||||||
|
|
||||||
|
//Vanilla Ores
|
||||||
|
addOre(Items.COAL, "coal");
|
||||||
|
|
||||||
|
//Ores for Pulverizers etc.
|
||||||
|
// addOre(InitItems.itemDust.get(), TheDusts.IRON.ordinal(), "dustIron");
|
||||||
|
// addOre(InitItems.itemDust.get(), TheDusts.GOLD.ordinal(), "dustGold");
|
||||||
|
// addOre(InitItems.itemDust.get(), TheDusts.DIAMOND.ordinal(), "dustDiamond");
|
||||||
|
// addOre(InitItems.itemDust.get(), TheDusts.EMERALD.ordinal(), "dustEmerald");
|
||||||
|
// addOre(InitItems.itemDust.get(), TheDusts.LAPIS.ordinal(), "dustLapis");
|
||||||
|
// addOre(InitItems.itemDust.get(), TheDusts.QUARTZ.ordinal(), "dustQuartz");
|
||||||
|
// addOre(InitItems.itemDust.get(), TheDusts.QUARTZ.ordinal(), "dustNetherQuartz");
|
||||||
|
// addOre(InitItems.itemDust.get(), TheDusts.COAL.ordinal(), "dustCoal");
|
||||||
|
// addOre(InitItems.itemDust.get(), TheDusts.QUARTZ_BLACK.ordinal(), "dustQuartzBlack");
|
||||||
|
// addOre(ActuallyBlocks.blockMisc.get(), TheMiscBlocks.ORE_QUARTZ.ordinal(), "oreQuartzBlack");
|
||||||
|
// addOre(InitItems.itemMisc.get(), TheMiscItems.QUARTZ.ordinal(), "gemQuartzBlack");
|
||||||
|
//
|
||||||
|
// //For Thermal Expansion Machine that "grows crops"
|
||||||
|
// addOre(InitItems.itemCanolaSeed.get(), "seedCanola");
|
||||||
|
// addOre(InitItems.itemMisc.get(), TheMiscItems.CANOLA.ordinal(), "cropCanola");
|
||||||
|
// addOre(InitItems.itemRiceSeed.get(), "seedRice");
|
||||||
|
// addOre(InitItems.itemFoods.get(), TheFoods.RICE.ordinal(), "cropRice");
|
||||||
|
// addOre(InitItems.itemFlaxSeed.get(), "seedFlax");
|
||||||
|
// addOre(Items.STRING, "cropFlax");
|
||||||
|
// addOre(InitItems.itemCoffeeSeed.get(), "seedCoffee");
|
||||||
|
// addOre(InitItems.itemCoffeeBean.get(), "cropCoffee");
|
||||||
|
//
|
||||||
|
// //For Crafting
|
||||||
|
// addOre(InitItems.itemMisc.get(), TheMiscItems.RICE_SLIME.ordinal(), "slimeball");
|
||||||
|
// addOre(ActuallyBlocks.blockMisc.get(), TheMiscBlocks.CHARCOAL_BLOCK.ordinal(), "blockCharcoal");
|
||||||
|
// addOre(ActuallyBlocks.blockMisc.get(), TheMiscBlocks.QUARTZ.ordinal(), "blockQuartzBlack");
|
||||||
|
// addOre(InitItems.itemMisc.get(), TheMiscItems.BLACK_DYE.ordinal(), "dyeBlack");
|
||||||
|
// addOre(InitItems.itemMisc.get(), TheMiscItems.BLACK_DYE.ordinal(), "dye");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void addOre(Item item, int meta, String name) {
|
||||||
|
// addOre(new ItemStack(item, 1, meta), name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void addOre(Item item, String name) {
|
||||||
|
// addOre(item, 0, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void addOre(Block block, int meta, String name) {
|
||||||
|
// addOre(new ItemStack(block, 1, meta), name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void addOre(ItemStack stack, String name) {
|
||||||
|
// OreDictionary.registerOre(name, stack);
|
||||||
|
}
|
||||||
|
}
|
|
@ -18,6 +18,12 @@ import net.neoforged.fml.loading.FMLLoader;
|
||||||
|
|
||||||
public final class Util {
|
public final class Util {
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
|
public static final int WILDCARD = Short.MAX_VALUE;//OreDictionary.WILDCARD_VALUE;
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
|
public static final int BUCKET = 1000;
|
||||||
|
|
||||||
public static boolean isDevVersion() {
|
public static boolean isDevVersion() {
|
||||||
return ActuallyAdditions.VERSION.equals("@VERSION@");
|
return ActuallyAdditions.VERSION.equals("@VERSION@");
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
Loading…
Reference in a new issue