mirror of
https://github.com/TicTicBoooom-Mods/MasterfulMachinery.git
synced 2026-01-18 16:37:23 +01:00
- You can now insert/extract fluid from fluid port with items in hand (such as a bucket)
- Fixed some rendering issues where certain blocks would not render correctly (such as mana spreader from botania or assembly controller from PNCR) - Updated some lang translations - Added test project to the dev space
This commit is contained in:
@@ -73,6 +73,9 @@ minecraft {
|
||||
masterfulmachinery {
|
||||
source sourceSets.main
|
||||
}
|
||||
mmtest {
|
||||
source sourceSets.test
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,6 +99,9 @@ minecraft {
|
||||
masterfulmachinery {
|
||||
source sourceSets.main
|
||||
}
|
||||
mmtest {
|
||||
source sourceSets.test
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -119,7 +125,7 @@ minecraft {
|
||||
args '--mod', 'masterfulmachinery', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
|
||||
|
||||
mods {
|
||||
examplemod {
|
||||
masterfulmachinery {
|
||||
source sourceSets.main
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,90 +1,96 @@
|
||||
{
|
||||
"controllerId": "basic",
|
||||
"name": "Basic",
|
||||
"ports": [
|
||||
{
|
||||
"type": "masterfulmachinery:items",
|
||||
"textureOverride": "minecraft:textures/block/white_terracotta",
|
||||
"name": "Simple",
|
||||
"id": "simple",
|
||||
"data": {
|
||||
"rows": 3,
|
||||
"columns": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "masterfulmachinery:energy",
|
||||
"name": "Simple",
|
||||
"id": "simple",
|
||||
"data": {
|
||||
"capacity": 1000000000
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "masterfulmachinery:fluids",
|
||||
"name": "Simple",
|
||||
"id": "simple",
|
||||
"data": {
|
||||
"capacity": 10000
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "masterfulmachinery:pncr_pressure",
|
||||
"name": "Simple",
|
||||
"id": "simple",
|
||||
"data": {
|
||||
"criticalPressure": 7,
|
||||
"dangerPressure": 5,
|
||||
"volume": 10000
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "masterfulmachinery:botania_mana",
|
||||
"name": "Simple",
|
||||
"id": "simple",
|
||||
"data": {
|
||||
"capacity": 100000
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "masterfulmachinery:astral_starlight",
|
||||
"name": "Simple",
|
||||
"id": "simple",
|
||||
"data": {
|
||||
"capacity": 1000
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "masterfulmachinery:create_rotation",
|
||||
"name": "Simple",
|
||||
"id": "simple",
|
||||
"data": {
|
||||
"stress": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "masterfulmachinery:mekanism_gas",
|
||||
"name": "Simple",
|
||||
"id": "simple",
|
||||
"data": {
|
||||
"capacity": 100000000
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "masterfulmachinery:mekanism_slurry",
|
||||
"name": "Simple",
|
||||
"id": "simple",
|
||||
"data": {
|
||||
"capacity": 100000000
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "masterfulmachinery:mekanism_infuse",
|
||||
"name": "Simple",
|
||||
"id": "simple",
|
||||
"data": {
|
||||
"capacity": 100000000
|
||||
}
|
||||
}
|
||||
]
|
||||
"controllerId": "basic",
|
||||
"name": "Basic",
|
||||
"ports": [
|
||||
{
|
||||
"type": "masterfulmachinery:items",
|
||||
"textureOverride": "minecraft:block/white_terracotta",
|
||||
"name": "Item",
|
||||
"id": "simple",
|
||||
"data": {
|
||||
"rows": 3,
|
||||
"columns": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "masterfulmachinery:energy",
|
||||
"name": "Energy",
|
||||
"id": "simple",
|
||||
"data": {
|
||||
"capacity": 1000000000
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "masterfulmachinery:fluids",
|
||||
"name": "Fluid",
|
||||
"id": "simple",
|
||||
"data": {
|
||||
"capacity": 10000
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "masterfulmachinery:pncr_pressure",
|
||||
"name": "Pressure",
|
||||
"id": "simple",
|
||||
"data": {
|
||||
"criticalPressure": 7,
|
||||
"dangerPressure": 5,
|
||||
"volume": 10000
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "masterfulmachinery:botania_mana",
|
||||
"name": "Mana",
|
||||
"id": "simple",
|
||||
"data": {
|
||||
"capacity": 100000
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "masterfulmachinery:astral_starlight",
|
||||
"name": "Starlight",
|
||||
"id": "simple",
|
||||
"data": {
|
||||
"capacity": 1000
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "masterfulmachinery:create_rotation",
|
||||
"name": "Rotation",
|
||||
"id": "simple",
|
||||
"data": {
|
||||
"stress": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "masterfulmachinery:mekanism_gas",
|
||||
"name": "Gas",
|
||||
"id": "simple",
|
||||
"data": {
|
||||
"capacity": 100000000
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "masterfulmachinery:mekanism_slurry",
|
||||
"name": "Slurry",
|
||||
"id": "simple",
|
||||
"data": {
|
||||
"capacity": 100000000
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "masterfulmachinery:mekanism_infuse",
|
||||
"name": "Infuse",
|
||||
"id": "simple",
|
||||
"data": {
|
||||
"capacity": 100000000
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "masterfulmachinery:weather",
|
||||
"name": "Weather",
|
||||
"id": "simple",
|
||||
"data": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -70,7 +70,10 @@ public class MachinePortBlock extends Block {
|
||||
if (!level.isRemote()) {
|
||||
TileEntity blockEntity = level.getTileEntity(pos);
|
||||
if (blockEntity instanceof IMachinePortTile) {
|
||||
NetworkHooks.openGui(((ServerPlayerEntity) player), (IMachinePortTile)blockEntity, pos);
|
||||
IMachinePortTile port = (IMachinePortTile) blockEntity;
|
||||
if (!port.getStorage().onPortActivated(state, level, pos, player, hand ,traceResult)) {
|
||||
NetworkHooks.openGui(((ServerPlayerEntity) player), port, pos);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -13,14 +13,11 @@ import mezz.jei.api.gui.drawable.IDrawable;
|
||||
import mezz.jei.api.helpers.IJeiHelpers;
|
||||
import mezz.jei.api.ingredients.IIngredients;
|
||||
import mezz.jei.api.recipe.category.IRecipeCategory;
|
||||
import net.java.games.input.Mouse;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.DirectionalBlock;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.MouseHelper;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.Items;
|
||||
import net.minecraft.item.crafting.Ingredient;
|
||||
import net.minecraft.state.Property;
|
||||
import net.minecraft.tags.BlockTags;
|
||||
@@ -33,7 +30,6 @@ import net.minecraft.util.math.vector.Vector3f;
|
||||
import net.minecraftforge.fml.RegistryObject;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -168,6 +164,10 @@ public class MachineStructureRecipeCategory implements IRecipeCategory<MachineSt
|
||||
parts = parts.stream().filter(x -> x.getPos().getY() == sliceY).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
//float sizeX = 162, sizeY = 121;
|
||||
//float scaledSizeX = sizeX / scaleFactor, scaledSizeY = sizeY / scaleFactor;
|
||||
float tx = 6.5f, ty = -5, tz = 10;
|
||||
|
||||
int i = 0;
|
||||
for (MachineStructureRecipeKeyModel part : parts) {
|
||||
tagIndexes.putIfAbsent(i, 0);
|
||||
@@ -185,11 +185,12 @@ public class MachineStructureRecipeCategory implements IRecipeCategory<MachineSt
|
||||
BlockState defaultState = block.getDefaultState();
|
||||
defaultState = with(defaultState, part.getProperties());
|
||||
new GuiBlockRenderBuilder(defaultState).at(bp)
|
||||
.withPrePosition(new Vector3f(6.5f, -5, 10))
|
||||
.withRotation(new Quaternion(new Vector3f(1, 0, 0), 15 + yRotation, true))
|
||||
.withRotation(new Quaternion(new Vector3f(0, -1, 0), 225 - xRotation, true))
|
||||
.withScale(new Vector3f(scaleFactor, -scaleFactor, scaleFactor))
|
||||
.finalize(matrixStack);
|
||||
.withPrePosition(new Vector3f(tx, ty, tz))
|
||||
.withRotation(new Quaternion(new Vector3f(1, 0, 0), 15 + yRotation, true))
|
||||
.withRotation(new Quaternion(new Vector3f(0, -1, 0), 225 - xRotation, true))
|
||||
.withScale(new Vector3f(scaleFactor, -scaleFactor, scaleFactor))
|
||||
.withOffset(new Vector3f(-0.5f, -0.5f, -0.5f))
|
||||
.finalize(matrixStack);
|
||||
}
|
||||
} else if (!part.getTag().equals("")) {
|
||||
ResourceLocation resourceLocation = new ResourceLocation(part.getTag());
|
||||
@@ -208,11 +209,12 @@ public class MachineStructureRecipeCategory implements IRecipeCategory<MachineSt
|
||||
BlockState defaultState = block.getDefaultState();
|
||||
defaultState = with(defaultState, part.getProperties());
|
||||
new GuiBlockRenderBuilder(defaultState).at(bp)
|
||||
.withPrePosition(new Vector3f(6.5f, -5, 10))
|
||||
.withRotation(new Quaternion(new Vector3f(1, 0, 0), 15 + yRotation, true))
|
||||
.withRotation(new Quaternion(new Vector3f(0, -1, 0), 225 - xRotation, true))
|
||||
.withScale(new Vector3f(scaleFactor, -scaleFactor, scaleFactor))
|
||||
.finalize(matrixStack);
|
||||
.withPrePosition(new Vector3f(tx, ty, tz))
|
||||
.withRotation(new Quaternion(new Vector3f(1, 0, 0), 15 + yRotation, true))
|
||||
.withRotation(new Quaternion(new Vector3f(0, -1, 0), 225 - xRotation, true))
|
||||
.withScale(new Vector3f(scaleFactor, -scaleFactor, scaleFactor))
|
||||
.withOffset(new Vector3f(-0.5f, -0.5f, -0.5f))
|
||||
.finalize(matrixStack);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -227,11 +229,12 @@ public class MachineStructureRecipeCategory implements IRecipeCategory<MachineSt
|
||||
if (block != null) {
|
||||
BlockState defaultState = block.getDefaultState().with(DirectionalBlock.FACING, Direction.NORTH);
|
||||
new GuiBlockRenderBuilder(defaultState).at(new BlockPos(0, 0, 0))
|
||||
.withPrePosition(new Vector3f(6.5f, -5, 10))
|
||||
.withRotation(new Quaternion(new Vector3f(1, 0, 0), 15 + yRotation, true))
|
||||
.withRotation(new Quaternion(new Vector3f(0, -1, 0), 225 - xRotation, true))
|
||||
.withScale(new Vector3f(scaleFactor, -scaleFactor, scaleFactor))
|
||||
.finalize(matrixStack);
|
||||
.withPrePosition(new Vector3f(tx, ty, tz))
|
||||
.withRotation(new Quaternion(new Vector3f(1, 0, 0), 15 + yRotation, true))
|
||||
.withRotation(new Quaternion(new Vector3f(0, -1, 0), 225 - xRotation, true))
|
||||
.withScale(new Vector3f(scaleFactor, -scaleFactor, scaleFactor))
|
||||
.withOffset(new Vector3f(-0.5f, -0.5f, -0.5f))
|
||||
.finalize(matrixStack);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -270,7 +273,6 @@ public class MachineStructureRecipeCategory implements IRecipeCategory<MachineSt
|
||||
sliceY++;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private BlockState with(BlockState defaultState, Map<String, String> props) {
|
||||
|
||||
@@ -4,21 +4,20 @@ import com.mojang.blaze3d.matrix.MatrixStack;
|
||||
import com.mojang.blaze3d.platform.GlStateManager;
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import com.ticticboooom.mods.mm.client.jei.category.render.AirBlockReader;
|
||||
import mekanism.client.model.BaseModelCache;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.BlockRendererDispatcher;
|
||||
import net.minecraft.client.renderer.IRenderTypeBuffer;
|
||||
import net.minecraft.client.renderer.RenderHelper;
|
||||
import net.minecraft.client.renderer.RenderTypeLookup;
|
||||
import net.minecraft.client.renderer.model.IBakedModel;
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntityRenderer;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.vector.Matrix4f;
|
||||
import net.minecraft.util.math.vector.Quaternion;
|
||||
import net.minecraft.util.math.vector.Vector3f;
|
||||
import net.minecraft.world.IBlockReader;
|
||||
import net.minecraftforge.client.model.data.EmptyModelData;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -31,6 +30,7 @@ public class GuiBlockRenderBuilder {
|
||||
private Minecraft mc = Minecraft.getInstance();
|
||||
private Vector3f scale;
|
||||
private Vector3f prePosition = new Vector3f();
|
||||
private Vector3f positionOffset = new Vector3f();
|
||||
private TileEntityRenderer<TileEntity> ter = null;
|
||||
private TileEntity tile;
|
||||
|
||||
@@ -51,7 +51,7 @@ public class GuiBlockRenderBuilder {
|
||||
|
||||
public GuiBlockRenderBuilder at(BlockPos position) {
|
||||
if (tile != null) {
|
||||
tile.setWorldAndPos(Minecraft.getInstance().world, BlockPos.ZERO);
|
||||
tile.setWorldAndPos(Minecraft.getInstance().world, Minecraft.getInstance().player.getPosition());
|
||||
}
|
||||
this.position = position;
|
||||
return this;
|
||||
@@ -72,6 +72,11 @@ public class GuiBlockRenderBuilder {
|
||||
return this;
|
||||
}
|
||||
|
||||
public GuiBlockRenderBuilder withOffset(Vector3f offset) {
|
||||
this.positionOffset = offset;
|
||||
return this;
|
||||
}
|
||||
|
||||
private void prepareRender() {
|
||||
RenderSystem.enableBlend();
|
||||
RenderSystem.enableRescaleNormal();
|
||||
@@ -94,7 +99,20 @@ public class GuiBlockRenderBuilder {
|
||||
ms.push();
|
||||
transformMatrix(ms);
|
||||
|
||||
brd.renderBlock(blockState, ms, buf, 0xF000F0, OverlayTexture.NO_OVERLAY, EmptyModelData.INSTANCE);
|
||||
//brd.renderBlock(blockState, ms, buf, 0xF000F0, OverlayTexture.NO_OVERLAY, EmptyModelData.INSTANCE);
|
||||
|
||||
// Copied the code to render block using a model from BlockRenderDispatcher#renderBlock for the case of model.
|
||||
// Some blocks use ENTITYBLOCK_ANIMATED which is weird and I dont know how it works coz it only ever works on vanilla items,
|
||||
// and I just dont know what to think about this honestly but this seems to work so I'm not touching it anymore unless something
|
||||
// else decides to break in which case I will indeed come back to this and figure out a work around then.
|
||||
IBakedModel model = brd.getModelForState(blockState);
|
||||
int color = Minecraft.getInstance().getBlockColors().getColor(blockState, null, null, 0);
|
||||
float r = (float) (color >> 16 & 255) / 255.0F;
|
||||
float g = (float) (color >> 8 & 255) / 255.0F;
|
||||
float b = (float) (color & 255) / 255.0F;
|
||||
brd.getBlockModelRenderer().renderModel(ms.getLast(), buf.getBuffer(RenderTypeLookup.func_239220_a_(blockState, false)), blockState, model, r, g, b, 0xF000F0, OverlayTexture.NO_OVERLAY, EmptyModelData.INSTANCE);
|
||||
|
||||
|
||||
ms.push();
|
||||
try {
|
||||
if (ter != null) {
|
||||
@@ -115,9 +133,9 @@ public class GuiBlockRenderBuilder {
|
||||
ms.rotate(quaternion);
|
||||
}
|
||||
ms.scale(scale.getX(), -scale.getY(), scale.getZ());
|
||||
ms.translate(position.getX(), position.getY(), position.getZ());
|
||||
ms.translate(position.getX() + positionOffset.getX(), position.getY() + positionOffset.getY(), position.getZ() + positionOffset.getZ());
|
||||
if (tile != null) {
|
||||
tile.setPos(new BlockPos(0, 0, 0));
|
||||
//tile.setPos(new BlockPos(0, 0, 0));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -244,6 +244,7 @@ public class MachineProcessRecipe implements IRecipe<IInventory> {
|
||||
List<PortState> inputStates = getStates(inputs);
|
||||
List<PortState> outputStates = getStates(outputs);
|
||||
validateProcess(inputStates, outputStates, ticks, structureId, rl);
|
||||
MM.LOG.debug("Added process '{}' for structure '{}'", rl, structureId);
|
||||
return new MachineProcessRecipe(inputStates, outputStates, ticks, structureId, rl);
|
||||
} catch (InvalidProcessDefinitionException e) {
|
||||
MM.LOG.error("InvalidProcessDefinition: " + e.getMessage());
|
||||
|
||||
@@ -207,7 +207,6 @@ public class MachineStructureRecipe implements IRecipe<IInventory> {
|
||||
@Override
|
||||
public MachineStructureRecipe read(ResourceLocation rl, JsonObject obj) {
|
||||
try {
|
||||
|
||||
JsonElement controllerIdJson = obj.get("controllerId");
|
||||
List<String> ids = new ArrayList<>();
|
||||
if (controllerIdJson.isJsonPrimitive()) {
|
||||
@@ -231,6 +230,7 @@ public class MachineStructureRecipe implements IRecipe<IInventory> {
|
||||
|
||||
|
||||
validateStructure(result, ids, id, rl);
|
||||
MM.LOG.debug("Added structure '{}' with id '{}'", rl, id);
|
||||
return new MachineStructureRecipe(result, ids, id, rl, name);
|
||||
} catch (InvalidStructureDefinitionException e) {
|
||||
MM.LOG.error("InvalidStructureDefinition: " + e.getMessage());
|
||||
|
||||
@@ -39,9 +39,10 @@ public class MMLangProvider extends LanguageProvider {
|
||||
return;
|
||||
}
|
||||
this.add(MMSetup.BLUEPRINT.get(), "Blueprint");
|
||||
this.add(MMSetup.STRUCTURE_DEVICE.get(), "Structure Scanner");
|
||||
this.add(MMSetup.STRUCTURE_DEVICE.get(), "Structure Selector");
|
||||
this.add(MMSetup.PROJECTOR_BLOCK.get(), "Structure Projector");
|
||||
this.add(MMSetup.STRUCTURE_BLOCK.get(), "Structure Scanner");
|
||||
this.add(MMSetup.STRUCTURE_BLOCK.get(), "Structure Generator");
|
||||
this.add("container.masterfulmachinery.create_rotation", "Rotation Port");
|
||||
this.add("itemGroup.masterfulmachinery", "Masterful Machinery");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,8 +106,8 @@ public class StructureHelper {
|
||||
private static JsonObject toJson(Map<Character, ResourceLocation> legend, List<List<String>> layout) {
|
||||
JsonObject result = new JsonObject();
|
||||
result.addProperty("type", "masterfulmachinery:machine_structure");
|
||||
result.addProperty("id", "chance_this");
|
||||
result.addProperty("controllerId", "chance_this");
|
||||
result.addProperty("id", "change_this");
|
||||
result.addProperty("controllerId", "change_this");
|
||||
result.addProperty("name", "Change This");
|
||||
|
||||
DataResult<JsonElement> apply = JsonOps.INSTANCE.withEncoder(Codec.list(Codec.list(Codec.STRING))).apply(layout);
|
||||
|
||||
@@ -82,14 +82,14 @@ public class PortFluidInventory implements IFluidHandler {
|
||||
|
||||
private FluidStack innerDrain(int amount, boolean simulate) {
|
||||
if (simulate) {
|
||||
if (stack.getAmount() - amount < 0) {
|
||||
if (stack.getAmount() - amount <= 0) {
|
||||
return stack.copy();
|
||||
} else {
|
||||
return new FluidStack(stack.getFluid(), amount);
|
||||
}
|
||||
}
|
||||
|
||||
if (stack.getAmount() - amount < 0) {
|
||||
if (stack.getAmount() - amount <= 0) {
|
||||
FluidStack preStack = stack.copy();
|
||||
stack.setAmount(0);
|
||||
return preStack;
|
||||
|
||||
@@ -9,16 +9,23 @@ import com.ticticboooom.mods.mm.block.tile.MachinePortBlockEntity;
|
||||
import com.ticticboooom.mods.mm.client.util.FluidRenderer;
|
||||
import com.ticticboooom.mods.mm.inventory.PortFluidInventory;
|
||||
import lombok.Getter;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.AbstractGui;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.entity.player.PlayerInventory;
|
||||
import net.minecraft.inventory.container.Slot;
|
||||
import net.minecraft.nbt.CompoundNBT;
|
||||
import net.minecraft.util.Hand;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.BlockRayTraceResult;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.common.util.LazyOptional;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.FluidUtil;
|
||||
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
|
||||
|
||||
public class FluidPortStorage extends PortStorage {
|
||||
@@ -64,8 +71,16 @@ public class FluidPortStorage extends PortStorage {
|
||||
int x = 78;
|
||||
int y = 40;
|
||||
screen.blit(stack, left + x, top + y, 175, 0, 18, 18);
|
||||
FluidRenderer.INSTANCE.render(stack, left + x + 1, top + y + 1, inv.getFluidInTank(0), 16);
|
||||
FluidStack fluid = inv.getFluidInTank(0);
|
||||
if (!fluid.isEmpty()){
|
||||
FluidRenderer.INSTANCE.render(stack, left + x + 1, top + y + 1, inv.getFluidInTank(0), 16);
|
||||
|
||||
AbstractGui.drawCenteredString(stack, Minecraft.getInstance().fontRenderer, inv.getFluidInTank(0).getAmount() + " " + inv.getFluidInTank(0).getDisplayName().getString(), left + x + 9 + 1, top + y + 30, 0xfefefe);
|
||||
AbstractGui.drawCenteredString(stack, Minecraft.getInstance().fontRenderer, inv.getFluidInTank(0).getAmount() + " " + inv.getFluidInTank(0).getDisplayName().getString(), left + x + 9 + 1, top + y + 30, 0xfefefe);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPortActivated(BlockState state, World level, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult traceResult) {
|
||||
return FluidUtil.interactWithFluidHandler(player, hand, level, pos, traceResult.getFace());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,12 +4,18 @@ import com.mojang.blaze3d.matrix.MatrixStack;
|
||||
import com.ticticboooom.mods.mm.block.container.PortBlockContainer;
|
||||
import com.ticticboooom.mods.mm.block.tile.IMachinePortTile;
|
||||
import com.ticticboooom.mods.mm.block.tile.MachinePortBlockEntity;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.gui.screen.inventory.ContainerScreen;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.entity.player.PlayerInventory;
|
||||
import net.minecraft.inventory.container.Container;
|
||||
import net.minecraft.inventory.container.Slot;
|
||||
import net.minecraft.nbt.CompoundNBT;
|
||||
import net.minecraft.util.Hand;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.BlockRayTraceResult;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.common.util.LazyOptional;
|
||||
|
||||
@@ -19,7 +25,7 @@ public abstract class PortStorage {
|
||||
public abstract CompoundNBT save(CompoundNBT nbt);
|
||||
public abstract void load(CompoundNBT nbt);
|
||||
public abstract void render(MatrixStack stack, int mouseX, int mouseY, int left, int top, Screen screen);
|
||||
public void setupContainer(PortBlockContainer container, PlayerInventory inv, IMachinePortTile tile){
|
||||
public void setupContainer(PortBlockContainer container, PlayerInventory inv, IMachinePortTile tile) {
|
||||
int playerOffsetX = 8;
|
||||
int playerOffsetY = 141;
|
||||
for (int j = 0; j < 3; j++) {
|
||||
@@ -40,4 +46,8 @@ public abstract class PortStorage {
|
||||
public void neighborChanged() {
|
||||
|
||||
}
|
||||
|
||||
public boolean onPortActivated(BlockState state, World level, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult traceResult) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -123,6 +123,8 @@ public class MMLoader {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
MM.LOG.debug("Registered controller with id '{}'", controllerId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
11
src/test/java/com/ticticboooom/mods/mmtest/MMTest.java
Normal file
11
src/test/java/com/ticticboooom/mods/mmtest/MMTest.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package com.ticticboooom.mods.mmtest;
|
||||
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
|
||||
@Mod("mmtest")
|
||||
public class MMTest {
|
||||
|
||||
public MMTest() {
|
||||
|
||||
}
|
||||
}
|
||||
11
src/test/resources/META-INF/mods.toml
Normal file
11
src/test/resources/META-INF/mods.toml
Normal file
@@ -0,0 +1,11 @@
|
||||
modLoader="javafml"
|
||||
loaderVersion="[36,)"
|
||||
license="All rights reserved"
|
||||
|
||||
[[mods]]
|
||||
modId="mmtest"
|
||||
version="${file.jarVersion}"
|
||||
displayName="Masterful Machinery Test Mod" #mandatory
|
||||
description='''
|
||||
MM Test Mod
|
||||
'''
|
||||
22
src/test/resources/data/mm/recipes/genny.json
Normal file
22
src/test/resources/data/mm/recipes/genny.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_process",
|
||||
"structureId": "test_starlight",
|
||||
"controllerId": "basic",
|
||||
"ticks": 200,
|
||||
"inputs": [
|
||||
{
|
||||
"type": "masterfulmachinery:astral_starlight",
|
||||
"data": {
|
||||
"amount": 50
|
||||
}
|
||||
}
|
||||
],
|
||||
"outputs":[
|
||||
{
|
||||
"type": "masterfulmachinery:astral_starlight",
|
||||
"data": {
|
||||
"amount": 500
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_structure",
|
||||
"id": "render_test",
|
||||
"controllerId": "basic",
|
||||
"name": "Render Test",
|
||||
"layout": [
|
||||
[
|
||||
"C"
|
||||
],
|
||||
[
|
||||
")"
|
||||
]
|
||||
],
|
||||
"legend": {
|
||||
")": {
|
||||
"block": "botania:mana_spreader"
|
||||
}
|
||||
}
|
||||
}
|
||||
19
src/test/resources/data/mm/recipes/structures/test_fe.json
Normal file
19
src/test/resources/data/mm/recipes/structures/test_fe.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_structure",
|
||||
"id": "test_energy",
|
||||
"controllerId": "basic",
|
||||
"name": "Test Energy",
|
||||
"layout": [
|
||||
[
|
||||
"1C2"
|
||||
]
|
||||
],
|
||||
"legend": {
|
||||
"1": {
|
||||
"block": "masterfulmachinery:basic_simple_port_energy_input"
|
||||
},
|
||||
"2": {
|
||||
"block": "masterfulmachinery:basic_simple_port_energy_output"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_structure",
|
||||
"id": "test_fluids",
|
||||
"controllerId": "basic",
|
||||
"name": "Test Fluids",
|
||||
"layout": [
|
||||
[
|
||||
"1C2"
|
||||
]
|
||||
],
|
||||
"legend": {
|
||||
"1": {
|
||||
"block": "masterfulmachinery:basic_simple_port_fluids_input"
|
||||
},
|
||||
"2": {
|
||||
"block": "masterfulmachinery:basic_simple_port_fluids_output"
|
||||
}
|
||||
}
|
||||
}
|
||||
19
src/test/resources/data/mm/recipes/structures/test_gas.json
Normal file
19
src/test/resources/data/mm/recipes/structures/test_gas.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_structure",
|
||||
"id": "test_gas",
|
||||
"controllerId": "basic",
|
||||
"name": "Test Gas",
|
||||
"layout": [
|
||||
[
|
||||
"1C2"
|
||||
]
|
||||
],
|
||||
"legend": {
|
||||
"1": {
|
||||
"block": "masterfulmachinery:basic_simple_port_mekanism_gas_input"
|
||||
},
|
||||
"2": {
|
||||
"block": "masterfulmachinery:basic_simple_port_mekanism_gas_output"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_structure",
|
||||
"id": "test_infuse",
|
||||
"controllerId": "basic",
|
||||
"name": "Test Infuse",
|
||||
"layout": [
|
||||
[
|
||||
"1C2"
|
||||
]
|
||||
],
|
||||
"legend": {
|
||||
"1": {
|
||||
"block": "masterfulmachinery:basic_simple_port_mekanism_infuse_input"
|
||||
},
|
||||
"2": {
|
||||
"block": "masterfulmachinery:basic_simple_port_mekanism_infuse_output"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_structure",
|
||||
"id": "test_items",
|
||||
"controllerId": "basic",
|
||||
"name": "Test Items",
|
||||
"layout": [
|
||||
[
|
||||
"1C2"
|
||||
]
|
||||
],
|
||||
"legend": {
|
||||
"1": {
|
||||
"block": "masterfulmachinery:basic_simple_port_items_input"
|
||||
},
|
||||
"2": {
|
||||
"block": "masterfulmachinery:basic_simple_port_items_output"
|
||||
}
|
||||
}
|
||||
}
|
||||
19
src/test/resources/data/mm/recipes/structures/test_mana.json
Normal file
19
src/test/resources/data/mm/recipes/structures/test_mana.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_structure",
|
||||
"id": "test_mana",
|
||||
"controllerId": "basic",
|
||||
"name": "Test Mana",
|
||||
"layout": [
|
||||
[
|
||||
"1C2"
|
||||
]
|
||||
],
|
||||
"legend": {
|
||||
"1": {
|
||||
"block": "masterfulmachinery:basic_simple_port_botania_mana_input"
|
||||
},
|
||||
"2": {
|
||||
"block": "masterfulmachinery:basic_simple_port_botania_mana_output"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_structure",
|
||||
"id": "test_model",
|
||||
"controllerId": "basic",
|
||||
"name": "Test Model",
|
||||
"layout": [
|
||||
[
|
||||
"C"
|
||||
],
|
||||
[
|
||||
")"
|
||||
]
|
||||
],
|
||||
"legend": {
|
||||
")": {
|
||||
"block": "pneumaticcraft:assembly_controller"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_structure",
|
||||
"id": "test_pressure",
|
||||
"controllerId": "basic",
|
||||
"name": "Test Pressure",
|
||||
"layout": [
|
||||
[
|
||||
"1C2"
|
||||
]
|
||||
],
|
||||
"legend": {
|
||||
"1": {
|
||||
"block": "masterfulmachinery:basic_simple_port_pncr_pressure_input"
|
||||
},
|
||||
"2": {
|
||||
"block": "masterfulmachinery:basic_simple_port_pncr_pressure_output"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_structure",
|
||||
"id": "test_rotation",
|
||||
"controllerId": "basic",
|
||||
"name": "Test Rotation",
|
||||
"layout": [
|
||||
[
|
||||
"1C2"
|
||||
]
|
||||
],
|
||||
"legend": {
|
||||
"1": {
|
||||
"block": "masterfulmachinery:basic_simple_port_create_rotation_input"
|
||||
},
|
||||
"2": {
|
||||
"block": "masterfulmachinery:basic_simple_port_create_rotation_output"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_structure",
|
||||
"id": "test_slurry",
|
||||
"controllerId": "basic",
|
||||
"name": "Test Slurry",
|
||||
"layout": [
|
||||
[
|
||||
"1C2"
|
||||
]
|
||||
],
|
||||
"legend": {
|
||||
"1": {
|
||||
"block": "masterfulmachinery:basic_simple_port_mekanism_slurry_input"
|
||||
},
|
||||
"2": {
|
||||
"block": "masterfulmachinery:basic_simple_port_mekanism_slurry_output"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_structure",
|
||||
"id": "test_starlight",
|
||||
"controllerId": "basic",
|
||||
"name": "Test Starlight",
|
||||
"layout": [
|
||||
[
|
||||
"1C2"
|
||||
]
|
||||
],
|
||||
"legend": {
|
||||
"1": {
|
||||
"block": "masterfulmachinery:basic_simple_port_astral_starlight_input"
|
||||
},
|
||||
"2": {
|
||||
"block": "masterfulmachinery:basic_simple_port_astral_starlight_output"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_structure",
|
||||
"id": "test_energy_st",
|
||||
"controllerId": "basic",
|
||||
"name": "Test Energy",
|
||||
"layout": [
|
||||
[
|
||||
"1BCB2"
|
||||
]
|
||||
],
|
||||
"legend": {
|
||||
"1": {
|
||||
"block": "masterfulmachinery:basic_simple_port_energy_input"
|
||||
},
|
||||
"B": {
|
||||
"tag": "minecraft:logs"
|
||||
},
|
||||
"2": {
|
||||
"block": "masterfulmachinery:basic_simple_port_energy_output"
|
||||
}
|
||||
}
|
||||
}
|
||||
22
src/test/resources/data/mm/recipes/test_fe.json
Normal file
22
src/test/resources/data/mm/recipes/test_fe.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_process",
|
||||
"structureId": "test_energy",
|
||||
"controllerId": "basic",
|
||||
"ticks": 200,
|
||||
"inputs": [
|
||||
{
|
||||
"type": "masterfulmachinery:energy",
|
||||
"data": {
|
||||
"amount": 50
|
||||
}
|
||||
}
|
||||
],
|
||||
"outputs":[
|
||||
{
|
||||
"type": "masterfulmachinery:energy",
|
||||
"data": {
|
||||
"amount": 500
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
24
src/test/resources/data/mm/recipes/test_fluid.json
Normal file
24
src/test/resources/data/mm/recipes/test_fluid.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_process",
|
||||
"structureId": "test_fluids",
|
||||
"controllerId": "basic",
|
||||
"ticks": 200,
|
||||
"inputs": [
|
||||
{
|
||||
"type": "masterfulmachinery:fluids",
|
||||
"data": {
|
||||
"fluid":"minecraft:water",
|
||||
"amount": 50
|
||||
}
|
||||
}
|
||||
],
|
||||
"outputs":[
|
||||
{
|
||||
"type": "masterfulmachinery:fluids",
|
||||
"data": {
|
||||
"fluid": "minecraft:lava",
|
||||
"amount": 500
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
24
src/test/resources/data/mm/recipes/test_gas.json
Normal file
24
src/test/resources/data/mm/recipes/test_gas.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_process",
|
||||
"structureId": "test_gas",
|
||||
"controllerId": "basic",
|
||||
"ticks": 200,
|
||||
"inputs": [
|
||||
{
|
||||
"type": "masterfulmachinery:mekanism_gas",
|
||||
"data": {
|
||||
"gas": "mekanism:sodium",
|
||||
"amount": 50
|
||||
}
|
||||
}
|
||||
],
|
||||
"outputs":[
|
||||
{
|
||||
"type": "masterfulmachinery:mekanism_gas",
|
||||
"data": {
|
||||
"gas": "mekanism:sodium",
|
||||
"amount": 50
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
24
src/test/resources/data/mm/recipes/test_infuse.json
Normal file
24
src/test/resources/data/mm/recipes/test_infuse.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_process",
|
||||
"structureId": "test_infuse",
|
||||
"controllerId": "basic",
|
||||
"ticks": 200,
|
||||
"inputs": [
|
||||
{
|
||||
"type": "masterfulmachinery:mekanism_infuse",
|
||||
"data": {
|
||||
"infuse": "mekanism:redstone",
|
||||
"amount": 50
|
||||
}
|
||||
}
|
||||
],
|
||||
"outputs":[
|
||||
{
|
||||
"type": "masterfulmachinery:mekanism_infuse",
|
||||
"data": {
|
||||
"infuse": "mekanism:redstone",
|
||||
"amount": 50
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
24
src/test/resources/data/mm/recipes/test_items.json
Normal file
24
src/test/resources/data/mm/recipes/test_items.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_process",
|
||||
"structureId": "test_items",
|
||||
"controllerId": "basic",
|
||||
"ticks": 200,
|
||||
"inputs": [
|
||||
{
|
||||
"type": "masterfulmachinery:items",
|
||||
"data": {
|
||||
"item": "minecraft:oak_log",
|
||||
"count": 2
|
||||
}
|
||||
}
|
||||
],
|
||||
"outputs":[
|
||||
{
|
||||
"type": "masterfulmachinery:items",
|
||||
"data": {
|
||||
"item": "minecraft:nether_star",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
24
src/test/resources/data/mm/recipes/test_items_tag.json
Normal file
24
src/test/resources/data/mm/recipes/test_items_tag.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_process",
|
||||
"structureId": "test_items",
|
||||
"controllerId": "basic",
|
||||
"ticks": 200,
|
||||
"inputs": [
|
||||
{
|
||||
"type": "masterfulmachinery:items",
|
||||
"data": {
|
||||
"tag": "minecraft:planks",
|
||||
"count": 2
|
||||
}
|
||||
}
|
||||
],
|
||||
"outputs":[
|
||||
{
|
||||
"type": "masterfulmachinery:items",
|
||||
"data": {
|
||||
"item": "minecraft:birch_log",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
22
src/test/resources/data/mm/recipes/test_mana.json
Normal file
22
src/test/resources/data/mm/recipes/test_mana.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_process",
|
||||
"structureId": "test_mana",
|
||||
"controllerId": "basic",
|
||||
"ticks": 200,
|
||||
"inputs": [
|
||||
{
|
||||
"type": "masterfulmachinery:botania_mana",
|
||||
"data": {
|
||||
"amount": 50
|
||||
}
|
||||
}
|
||||
],
|
||||
"outputs":[
|
||||
{
|
||||
"type": "masterfulmachinery:botania_mana",
|
||||
"data": {
|
||||
"amount": 500
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
22
src/test/resources/data/mm/recipes/test_pressure.json
Normal file
22
src/test/resources/data/mm/recipes/test_pressure.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_process",
|
||||
"structureId": "test_pressure",
|
||||
"controllerId": "basic",
|
||||
"ticks": 200,
|
||||
"inputs": [
|
||||
{
|
||||
"type": "masterfulmachinery:pncr_pressure",
|
||||
"data": {
|
||||
"air": 50
|
||||
}
|
||||
}
|
||||
],
|
||||
"outputs":[
|
||||
{
|
||||
"type": "masterfulmachinery:pncr_pressure",
|
||||
"data": {
|
||||
"air": 500
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
22
src/test/resources/data/mm/recipes/test_rotation.json
Normal file
22
src/test/resources/data/mm/recipes/test_rotation.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_process",
|
||||
"structureId": "test_rotation",
|
||||
"controllerId": "basic",
|
||||
"ticks": 200,
|
||||
"inputs": [
|
||||
{
|
||||
"type": "masterfulmachinery:create_rotation",
|
||||
"data": {
|
||||
"speed": 2
|
||||
}
|
||||
}
|
||||
],
|
||||
"outputs":[
|
||||
{
|
||||
"type": "masterfulmachinery:create_rotation",
|
||||
"data": {
|
||||
"speed": 4
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
24
src/test/resources/data/mm/recipes/test_slurry.json
Normal file
24
src/test/resources/data/mm/recipes/test_slurry.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_process",
|
||||
"structureId": "test_slurry",
|
||||
"controllerId": "basic",
|
||||
"ticks": 200,
|
||||
"inputs": [
|
||||
{
|
||||
"type": "masterfulmachinery:mekanism_slurry",
|
||||
"data": {
|
||||
"slurry": "mekanism:clean_gold",
|
||||
"amount": 50
|
||||
}
|
||||
}
|
||||
],
|
||||
"outputs":[
|
||||
{
|
||||
"type": "masterfulmachinery:mekanism_slurry",
|
||||
"data": {
|
||||
"slurry": "mekanism:clean_gold",
|
||||
"amount": 50
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
22
src/test/resources/data/mm/recipes/test_starlight.json
Normal file
22
src/test/resources/data/mm/recipes/test_starlight.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"type": "masterfulmachinery:machine_process",
|
||||
"structureId": "test_starlight",
|
||||
"controllerId": "basic",
|
||||
"ticks": 200,
|
||||
"inputs": [
|
||||
{
|
||||
"type": "masterfulmachinery:astral_starlight",
|
||||
"data": {
|
||||
"amount": 50
|
||||
}
|
||||
}
|
||||
],
|
||||
"outputs":[
|
||||
{
|
||||
"type": "masterfulmachinery:astral_starlight",
|
||||
"data": {
|
||||
"amount": 500
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
7
src/test/resources/pack.mcmeta
Normal file
7
src/test/resources/pack.mcmeta
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"pack": {
|
||||
"description": "MM Test",
|
||||
"pack_format": 6,
|
||||
"_comment": "A pack_format of 6 requires json lang files and some texture changes from 1.16.2. Note: we require v6 pack meta for all mods."
|
||||
}
|
||||
}
|
||||
@@ -1,2 +1,2 @@
|
||||
#Sat Aug 21 15:55:22 BST 2021
|
||||
VERSION_CODE=730
|
||||
#Fri Sep 03 00:36:37 BST 2021
|
||||
VERSION_CODE=766
|
||||
|
||||
Reference in New Issue
Block a user