Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JsonThings compatibility for creating materials #1743

Open
wants to merge 11 commits into
base: 1.20.1
Choose a base branch
from
10 changes: 5 additions & 5 deletions dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,6 @@ dependencies {
modImplementation(forge.ae2) { transitive = false }
modCompileOnly("curse.maven:ae2wtlib-459929:5217955")

//AlmostUnified
modCompileOnly(forge.almostUnified.forge)

// KJS
modImplementation(forge.kubejs) { transitive = false }
modImplementation(forge.architectury)
Expand All @@ -65,12 +62,15 @@ dependencies {
modImplementation(forge.javd) { transitive = false }
modRuntimeOnly("curse.maven:trenzalore-870210:4848244")

// FTB teams
modCompileOnly(forge.ftbteams)
modCompileOnly(forge.ftblibrary)

// Argonauts
modCompileOnly(forge.argonauts)
modCompileOnly(forge.resourceful)

// Runtime only testing mods
//modRuntimeOnly(forge.worldStripper)
// Json Things
modImplementation(forge.jsonThings)
}

14 changes: 7 additions & 7 deletions gradle/scripts/repositories.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -15,34 +15,34 @@ repositories {
url = "https://maven.blamejared.com/"
} // JEI
maven {
// location of a maven mirror for JEI files, as a fallback
name = "ModMaven"
url = "https://modmaven.dev"
} // JEI mirror, AE2
maven { url = "https://maven.parchmentmc.org" } // Parchment mappings
maven { url = "https://maven.quiltmc.org/repository/release" } // Quilt Mappings
maven { url = "https://maven.firstdarkdev.xyz/snapshots" } // LDLib
maven { // Flywheel
maven {
url = "https://maven.tterrag.com/"
content {
// need to be specific here due to version overlaps
includeGroup("com.jozufozu.flywheel")
includeGroup("com.tterrag.registrate")
includeGroup("com.simibubi.create")
}
}
} // Flywheel
maven { url = "https://maven.theillusivec4.top/" } // Curios
maven { // TOP
maven {
url "https://maven.k-4u.nl"
}
} // TOP
maven {
// saps.dev Maven (KubeJS and Rhino)
url = "https://maven.saps.dev/minecraft"
content {
includeGroup "dev.latvian.mods"
}
}
maven { url "https://maven.architectury.dev/" }
maven { url = "https://maven.jamieswhiteshirt.com/libs-release" } // Reach Entity Attributes
maven { url 'https://jitpack.io' } // Mixin Extras, Fabric ASM
maven { url = 'https://jitpack.io' } // Mixin Extras, Fabric ASM
maven { url = 'https://www.dogforce-games.com/maven/' }
}

1 change: 1 addition & 0 deletions gradle/scripts/resources.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ var generateModMetadata = tasks.register("generateModMetadata", ProcessResources
emi_version : forge.versions.emi.get(),
top_version : forge.versions.theoneprobe.get(),
jade_version : forge.versions.jade.get(),
jsonthings_version : forge.versions.jsonThings.get(),
mod_license : mod_license,
mod_name : mod_name,
mod_description : mod_description,
Expand Down
12 changes: 4 additions & 8 deletions settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ dependencyResolutionManagement {
def kjsVersion = "2001.6.4-build.120"
def architecturyVersion = "9.2.14"
def rhinoVersion = "2001.2.3-build.6"
def auVersion = "1.20.1-0.6.0"

// Forge
def forgeVersion = "47.1.47"
Expand All @@ -42,7 +41,7 @@ dependencyResolutionManagement {
def topForgeVersion = "1.20.1-10.0.1-3"
def jadeForgeVersion = "11.6.3"
def curiosForgeVersion = "5.9.1"
def worldStripperForgeFile = "4578579"
def jsonThingsVersion = "0.9.1"
def javdVersion = "4803995"
def ftbteamsForgeFile = "5267190"
def ftblibraryForgeFile = "5567591"
Expand Down Expand Up @@ -116,16 +115,13 @@ dependencyResolutionManagement {
library("mixinextras-forge", "io.github.llamalad7", "mixinextras-forge").versionRef(mixinextras)

def configuration = version("configuration", configurationVersion)
library("configuration", "dev.toma.configuration", "configuration-forge-1.20.1").versionRef(configuration)

def worldStripper = version("worldStripper", worldStripperForgeFile)
library("worldStripper", "curse.maven", "worldStripper-250603").versionRef(worldStripper)
library("configuration", "dev.toma.configuration", "configuration-forge-${minecraftVersion}").versionRef(configuration)

def ae2 = version("ae2", ae2Version)
library("ae2", "appeng", "appliedenergistics2-forge").versionRef(ae2)

def au = version("au", auVersion)
library("almostUnified-forge", "com.almostreliable.mods", "almostunified-forge").versionRef(au)
def jsonThings = version("jsonThings", jsonThingsVersion)
library("jsonThings", "dev.gigaherz.jsonthings", "JsonThings-${minecraftVersion}").versionRef(jsonThings)

def javd = version("javd", javdVersion)
library("javd", "curse.maven", "javd-370890").versionRef(javd)
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/gregtechceu/gtceu/api/GTValues.java
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ public static int[] tiersBetween(int minInclusive, int maxInclusive) {
MODID_RUBIDIUM = "rubidium",
MODID_EMBEDDIUM = "embeddium",
MODID_CREATE = "create",
MODID_REBORN_ENERGY = "team_reborn_energy",
MODID_JSONTHINGS = "jsonthings",
MODID_ALMOSTUNIFIED = "almostunified",
MODID_CURIOS = "curios",
MODID_AE2WTLIB = "ae2wtlib",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.gregtechceu.gtceu.api.block;

import net.minecraft.core.Direction;
import net.minecraft.world.level.block.state.properties.BooleanProperty;
import net.minecraft.world.level.block.state.properties.DirectionProperty;

/**
* @author KilaBash
Expand All @@ -10,4 +12,6 @@
public final class BlockProperties {

public static final BooleanProperty SERVER_TICK = BooleanProperty.create("server_tick");
public static final DirectionProperty UPWARDS_FACING_PROPERTY = DirectionProperty.create("upwards_facing",
Direction.Plane.HORIZONTAL);
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import com.lowdragmc.lowdraglib.client.renderer.IBlockRendererProvider;

import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.level.BlockAndTintGetter;
import net.minecraft.world.level.Level;
Expand All @@ -22,7 +21,6 @@
import net.minecraft.world.level.block.entity.BlockEntityTicker;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.DirectionProperty;

import dev.ftb.mods.ftbteams.FTBTeamsAPIImpl;
import dev.ftb.mods.ftbteams.api.Team;
Expand All @@ -39,8 +37,6 @@
*/
public interface IMachineBlock extends IBlockRendererProvider, EntityBlock {

DirectionProperty UPWARDS_FACING_PROPERTY = DirectionProperty.create("upwards_facing", Direction.Plane.HORIZONTAL);

default Block self() {
return (Block) this;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public MetaMachineBlock(Properties properties, MachineDefinition definition) {
BlockState defaultState = this.defaultBlockState().setValue(rotationState.property,
rotationState.defaultDirection);
if (definition instanceof MultiblockMachineDefinition multi && multi.isAllowExtendedFacing()) {
defaultState = defaultState.setValue(IMachineBlock.UPWARDS_FACING_PROPERTY, Direction.NORTH);
defaultState = defaultState.setValue(BlockProperties.UPWARDS_FACING_PROPERTY, Direction.NORTH);
}
registerDefaultState(defaultState);
}
Expand All @@ -92,7 +92,7 @@ protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockSt
pBuilder.add(rotationState.property);
if (MachineDefinition.getBuilt() instanceof MultiblockMachineDefinition multi &&
multi.isAllowExtendedFacing()) {
pBuilder.add(IMachineBlock.UPWARDS_FACING_PROPERTY);
pBuilder.add(BlockProperties.UPWARDS_FACING_PROPERTY);
}
}
}
Expand Down Expand Up @@ -180,9 +180,10 @@ public BlockState getStateForPlacement(BlockPlaceContext context) {
if (getDefinition() instanceof MultiblockMachineDefinition multi && multi.isAllowExtendedFacing()) {
Direction frontFacing = state.getValue(rotationState.property);
if (frontFacing == Direction.UP) {
state = state.setValue(IMachineBlock.UPWARDS_FACING_PROPERTY, player.getDirection());
state = state.setValue(BlockProperties.UPWARDS_FACING_PROPERTY, player.getDirection());
} else if (frontFacing == Direction.DOWN) {
state = state.setValue(IMachineBlock.UPWARDS_FACING_PROPERTY, player.getDirection().getOpposite());
state = state.setValue(BlockProperties.UPWARDS_FACING_PROPERTY,
player.getDirection().getOpposite());
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@

import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.mojang.serialization.Codec;
import dev.latvian.mods.rhino.util.HideFromJS;
import dev.latvian.mods.rhino.util.RemapPrefixForJS;
import it.unimi.dsi.fastutil.ints.IntArrayList;
Expand All @@ -48,6 +49,10 @@

public class Material implements Comparable<Material> {

public static final Codec<Material> CODEC = ResourceLocation.CODEC.xmap(
rl -> GTCEuAPI.materialManager.getRegistry(rl.getNamespace()).get(rl.getPath()),
Material::getResourceLocation);

/**
* Basic Info of this Material.
*
Expand Down Expand Up @@ -527,8 +532,11 @@ public void verifyMaterial() {
@RemapPrefixForJS("kjs$")
public static class Builder extends BuilderBase<Material> {

@Getter
private final MaterialInfo materialInfo;
@Getter
private final MaterialProperties properties;
@Getter
private final MaterialFlags flags;

/*
Expand Down Expand Up @@ -1245,7 +1253,7 @@ public Material register() {
* Holds the basic info for a Material, like the name, color, id, etc..
*/
@Accessors(chain = true)
private static class MaterialInfo {
public static class MaterialInfo {

/**
* The modid and unlocalized name of this Material.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,35 @@

import com.gregtechceu.gtceu.data.recipe.misc.alloyblast.AlloyBlastRecipeProducer;

import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.util.ExtraCodecs;
import net.minecraft.world.level.material.Fluid;

import com.google.common.base.Preconditions;
import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.jetbrains.annotations.NotNull;

import java.util.function.Supplier;

@NoArgsConstructor
public class AlloyBlastProperty implements IMaterialProperty<AlloyBlastProperty> {

public static final Codec<AlloyBlastProperty> CODEC = RecordCodecBuilder.create(instance -> instance.group(
BuiltInRegistries.FLUID.byNameCodec().optionalFieldOf("fluid", null)
.xmap(fluid1 -> (Supplier<Fluid>) () -> fluid1, Supplier::get)
.forGetter(val -> (Supplier<Fluid>) val.fluidSupplier),
ExtraCodecs.POSITIVE_INT.optionalFieldOf("temperature", -1).forGetter(val -> val.temperature))
.apply(instance, AlloyBlastProperty::new));

/**
* Internal material fluid field
*/
private Supplier<? extends Fluid> fluidSupplier;
@Getter
private int temperature;

@Getter
Expand All @@ -28,6 +42,11 @@ public AlloyBlastProperty(int temperature) {
this.temperature = temperature;
}

public AlloyBlastProperty(Supplier<? extends Fluid> fluidSupplier, int temperature) {
this.fluidSupplier = fluidSupplier;
this.temperature = temperature;
}

@Override
public void verifyProperty(MaterialProperties materialProperties) {
materialProperties.ensureSet(PropertyKey.BLAST);
Expand All @@ -51,8 +70,4 @@ public void setTemperature(int fluidTemperature) {
Preconditions.checkArgument(fluidTemperature > 0, "Invalid temperature");
this.temperature = fluidTemperature;
}

public int getTemperature() {
return temperature;
}
}
Loading