ONLY 963 ERRORS LEFT

This commit is contained in:
DaCodia
2024-08-06 18:44:54 -05:00
parent 756d8cd137
commit b508cfef9f
65 changed files with 481 additions and 701 deletions

View File

@@ -23,13 +23,15 @@ repositories {
maven { url = "https://maven.jamieswhiteshirt.com/libs-release" } // Reach Entity Attributes
maven { url = "https://jitpack.io/" } // Mixin Extras, Fabric ASM
maven { url = "https://maven.tterrag.com/" } // Flywheel
maven { url = 'https://ladysnake.jfrog.io/artifactory/mods' } // I FUCKING HATE CAPABILITERS
}
dependencies {
minecraft("com.mojang:minecraft:${minecraft_version}")
mappings(loom.layered {
it.mappings("org.quiltmc:quilt-mappings:${minecraft_version}+build.${quilt_version}:intermediary-v2")
it.mappings("org.quiltmc:quilt-mappings:$minecraft_version+build.$quilt_version:intermediary-v2")
it.parchment("org.parchmentmc.data:parchment-$minecraft_version:$parchment_version@zip")
it.officialMojangMappings { nameSyntheticMembers = false }
})
modImplementation("net.fabricmc:fabric-loader:${fabric_loader_version}")
@@ -39,6 +41,10 @@ dependencies {
// Create - dependencies are added transitively
modImplementation("com.simibubi.create:create-fabric-${minecraft_version}:${create_version}")
//JEI
compileOnly("mezz.jei:jei-${minecraft_version}-fabric-api:${jei_version}")
runtimeOnly(compileOnly("mezz.jei:jei-${minecraft_version}-fabric:${jei_version}"))
// Development QOL
modLocalRuntime("maven.modrinth:lazydfu:${lazydfu_version}")
modLocalRuntime("com.terraformersmc:modmenu:${modmenu_version}")

View File

@@ -1,49 +1,26 @@
package com.drmangotea.createindustry;
import com.drmangotea.createindustry.registry.TFMGContraptions;
import com.drmangotea.createindustry.base.TFMGLangPartials;
import com.drmangotea.createindustry.config.TFMGConfigs;
import com.drmangotea.createindustry.items.weapons.explosives.thermite_grenades.fire.TFMGColoredFires;
import com.drmangotea.createindustry.registry.*;
import com.drmangotea.createindustry.worldgen.TFMGConfiguredFeatures;
import com.drmangotea.createindustry.worldgen.TFMGFeatures;
import com.drmangotea.createindustry.worldgen.TFMGOreConfigEntries;
import com.mojang.logging.LogUtils;
import com.simibubi.create.AllParticleTypes;
import com.simibubi.create.content.processing.burner.BlazeBurnerBlock;
import com.simibubi.create.foundation.data.CreateRegistrate;
import com.simibubi.create.foundation.data.LangMerger;
import com.simibubi.create.foundation.item.ItemDescription;
import com.simibubi.create.foundation.item.KineticStats;
import com.simibubi.create.foundation.item.TooltipHelper;
import com.simibubi.create.foundation.item.TooltipModifier;
import net.minecraft.client.renderer.ItemBlockRenderTypes;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.core.Holder;
import net.minecraft.data.DataGenerator;
import net.fabricmc.api.ModInitializer;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.levelgen.placement.PlacedFeature;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.data.event.GatherDataEvent;
import net.minecraftforge.eventbus.api.EventPriority;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.DistExecutor;
import net.minecraftforge.fml.ModLoadingContext;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.server.ServerStartingEvent;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import org.slf4j.Logger;
import static com.simibubi.create.content.fluids.tank.BoilerHeaters.registerHeater;
@Mod(CreateTFMG.MOD_ID)
public class CreateTFMG
{
public class CreateTFMG implements ModInitializer {
public static final String MOD_ID = "createindustry";
public static final String NAME = "Create: The Factory Must Grow";
@@ -57,17 +34,10 @@ public class CreateTFMG
});
}
public CreateTFMG()
{
@Override
public void onInitialize() {
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
REGISTRATE.registerEventListeners(FMLJavaModLoadingContext.get().getModEventBus());
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::commonSetup);
//
REGISTRATE.register();
TFMGBlocks.register();
TFMGItems.register();
@@ -80,32 +50,28 @@ public class CreateTFMG
TFMGSoundEvents.prepare();
TFMGContraptions.prepare();
TFMGOreConfigEntries.init();
TFMGParticleTypes.register(modEventBus);
TFMGMobEffects.register(modEventBus);
TFMGPotions.register(modEventBus);
TFMGParticleTypes.register();
TFMGMobEffects.register();
TFMGPotions.register();
TFMGPackets.registerPackets();
TFMGColoredFires.register(modEventBus);
TFMGFeatures.register(modEventBus);
TFMGRecipeTypes.register(modEventBus);
TFMGColoredFires.register();
TFMGFeatures.register();
TFMGRecipeTypes.register();
TFMGConfigs.register(ModLoadingContext.get());
TFMGConfigs.register();
//
modEventBus.addListener(CreateTFMG::init);
MinecraftForge.EVENT_BUS.register(this);
modEventBus.addListener(EventPriority.LOWEST, CreateTFMG::gatherData);
modEventBus.addListener(TFMGSoundEvents::register);
DistExecutor.safeRunWhenOn(Dist.CLIENT, () -> CreateTFMGClient::new);
modEventBus.addListener(this::clientSetup);
CreateTFMG.init();
//modEventBus.addListener(EventPriority.LOWEST, CreateTFMG::gatherData); CreateTFMGData gaming
TFMGSoundEvents.register();
}
public static void init(final FMLCommonSetupEvent event) {
public static void init() {
TFMGFluids.registerFluidInteractions();
event.enqueueWork(() -> {
//event.enqueueWork(() -> {
registerHeater(TFMGBlocks.FIREBOX.get(), (level, pos, state) -> {
BlazeBurnerBlock.HeatLevel value = state.getValue(BlazeBurnerBlock.HEAT_LEVEL);
@@ -121,30 +87,12 @@ public class CreateTFMG
return -1;
});
});
//});
}
@SuppressWarnings("removal")
public static void gatherData(GatherDataEvent event) {
DataGenerator gen = event.getGenerator();
gen.addProvider(true, new LangMerger(gen, MOD_ID, NAME, TFMGLangPartials.values()));
}
@SuppressWarnings("removal")
private void clientSetup(final FMLClientSetupEvent event) {
ItemBlockRenderTypes.setRenderLayer(TFMGColoredFires.GREEN_FIRE.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(TFMGColoredFires.BLUE_FIRE.get(), RenderType.cutout());
}
private void commonSetup(final FMLCommonSetupEvent event) {
event.enqueueWork(() -> {
final Holder<PlacedFeature> initializeOil = TFMGConfiguredFeatures.OIL_PLACED;
final Holder<PlacedFeature> initializeSimulatedOil = TFMGConfiguredFeatures.OIL_DEPOSIT_PLACED;
});
}
@SubscribeEvent
public void onServerStarting(ServerStartingEvent event)
{
LOGGER.info("YEEEHAAW");
}
public static ResourceLocation asResource(String path) {
return new ResourceLocation(MOD_ID, path);

View File

@@ -7,42 +7,40 @@ import com.drmangotea.createindustry.items.weapons.quad_potato_cannon.QuadPotato
import com.drmangotea.createindustry.ponder.TFMGPonderIndex;
import com.drmangotea.createindustry.registry.TFMGPartialModels;
import com.drmangotea.createindustry.registry.TFMGParticleTypes;
import com.simibubi.create.AllParticleTypes;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import io.github.fabricators_of_create.porting_lib.event.client.ParticleManagerRegistrationCallback;
import net.fabricmc.api.ClientModInitializer;
public class CreateTFMGClient {
public class CreateTFMGClient implements ClientModInitializer {
public static final QuadPotatoCannonRenderHandler QUAD_POTATO_CANNON_RENDER_HANDLER = new QuadPotatoCannonRenderHandler();
public static final AdvancedPotatoCannonRenderHandler ADVANCED_POTATO_CANNON_RENDER_HANDLER = new AdvancedPotatoCannonRenderHandler();
public static final FlamethrowerRenderHandler FLAMETHROWER_RENDER_HANDLER = new FlamethrowerRenderHandler();
public CreateTFMGClient() {
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
IEventBus forgeEventBus = MinecraftForge.EVENT_BUS;
@Override
public void onInitializeClient() {
TFMGPartialModels.init();
modEventBus.addListener(TFMGParticleTypes::registerFactories);
modEventBus.register(this);
ADVANCED_POTATO_CANNON_RENDER_HANDLER.registerListeners();
QUAD_POTATO_CANNON_RENDER_HANDLER.registerListeners();
FLAMETHROWER_RENDER_HANDLER.registerListeners();
// ItemBlockRenderTypes.setRenderLayer(TFMGColoredFires.GREEN_FIRE.get(), RenderType.cutout());
// ItemBlockRenderTypes.setRenderLayer(TFMGColoredFires.BLUE_FIRE.get(), RenderType.cutout());
ADVANCED_POTATO_CANNON_RENDER_HANDLER.registerListeners(forgeEventBus);
QUAD_POTATO_CANNON_RENDER_HANDLER.registerListeners(forgeEventBus);
FLAMETHROWER_RENDER_HANDLER.registerListeners(forgeEventBus);
}
@SubscribeEvent
public void setup(final FMLClientSetupEvent event) {
TFMGPonderIndex.register();
TFMGPonderIndex.registerTags();
ParticleManagerRegistrationCallback.EVENT.register(TFMGParticleTypes::registerFactories);
initCompat();
}
@SuppressWarnings("Convert2MethodRef") // may cause class loading issues if changed
private static void initCompat() {
//used for client related compat
//example: Mods.<YOUR MOD>.executeIfInstalled(() -> () -> <Compat Class>.<clientInit or init>());
}
}

View File

@@ -1,18 +1,17 @@
package com.drmangotea.createindustry.blocks.concrete;
import com.drmangotea.createindustry.registry.TFMGBlocks;
import com.tterrag.registrate.fabric.SimpleFlowableFluid;
import net.minecraft.core.BlockPos;
import net.minecraft.util.RandomSource;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.level.material.Fluid;
import net.minecraft.world.level.material.FluidState;
import net.minecraftforge.fluids.ForgeFlowingFluid;
public class ConcreteFluid extends ForgeFlowingFluid {
public class ConcreteFluid extends SimpleFlowableFluid {
protected ConcreteFluid(Properties properties) {
public ConcreteFluid(Properties properties) {
super(properties);
}

View File

@@ -6,6 +6,8 @@ import com.mojang.math.Vector3f;
import com.simibubi.create.AllFluids;
import com.simibubi.create.foundation.utility.Color;
import com.tterrag.registrate.builders.FluidBuilder;
import io.github.fabricators_of_create.porting_lib.util.FluidStack;
import io.github.fabricators_of_create.porting_lib.util.SimpleFlowableFluid;
import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.Entity;
@@ -13,17 +15,18 @@ import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.level.BlockAndTintGetter;
import net.minecraft.world.level.material.FluidState;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.fluids.FluidStack;
import java.util.function.Supplier;
public class ConcreteFluidType extends AllFluids.TintedFluidType {
import static net.minecraft.client.renderer.block.model.BlockElementFace.NO_TINT;
public class ConcreteFluidType extends SimpleFlowableFluid {
private Vector3f fogColor;
private Supplier<Float> fogDistance;
public static FluidBuilder.FluidTypeFactory create(int fogColor, Supplier<Float> fogDistance) {
public static FluidBuilder create(int fogColor, Supplier<Float> fogDistance) {
return (p, s, f) -> {
ConcreteFluidType fluidType = new ConcreteFluidType(p, s, f);
fluidType.fogColor = new Color(fogColor, false).asVectorF();
@@ -32,7 +35,7 @@ public class ConcreteFluidType extends AllFluids.TintedFluidType {
};
}
private ConcreteFluidType(Properties properties, ResourceLocation stillTexture,
private ConcreteFluidType(SimpleFlowableFluid.Properties properties, ResourceLocation stillTexture,
ResourceLocation flowingTexture) {
super(properties, stillTexture, flowingTexture);
}

View File

@@ -1,15 +1,17 @@
package com.drmangotea.createindustry.blocks.concrete.asphalt;
import com.drmangotea.createindustry.registry.TFMGBlocks;
import com.tterrag.registrate.fabric.SimpleFlowableFluid;
import net.minecraft.core.BlockPos;
import net.minecraft.util.RandomSource;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.level.material.Fluid;
import net.minecraft.world.level.material.FluidState;
import net.minecraftforge.fluids.ForgeFlowingFluid;
public class AsphaltFluid extends ForgeFlowingFluid {
import java.util.Properties;
public class AsphaltFluid extends SimpleFlowableFluid {
protected AsphaltFluid(Properties properties) {

View File

@@ -5,15 +5,16 @@ import com.drmangotea.createindustry.registry.TFMGBlocks;
import com.drmangotea.createindustry.registry.TFMGFluids;
import com.simibubi.create.foundation.fluid.SmartFluidTank;
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank;
import io.github.fabricators_of_create.porting_lib.util.FluidStack;
import io.github.fabricators_of_create.porting_lib.util.LazyOptional;
import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant;
import net.fabricmc.fabric.api.transfer.v1.transaction.TransactionContext;
import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.fluids.capability.templates.FluidTank;
public class FormWorkBlockEntity extends TFMGMachineBlockEntity {
@@ -42,9 +43,10 @@ public class FormWorkBlockEntity extends TFMGMachineBlockEntity {
public boolean isFluidValid(FluidStack stack) {
return stack.getFluid().isSame(TFMGFluids.LIQUID_CONCRETE.getSource());
}
@Override
public FluidStack drain(FluidStack resource, FluidAction action) {
return FluidStack.EMPTY;
public long extract(FluidVariant extractedVariant, long maxAmount, TransactionContext transaction) {
return 0;
}
};
}
@@ -115,16 +117,16 @@ public class FormWorkBlockEntity extends TFMGMachineBlockEntity {
FluidTank checkedTank = ((FormWorkBlockEntity) CheckedBE).tankInventory;
if (checkedTank.getFluidAmount() < 1000) {
if(checkedTank.getFluidAmount()>=995&&tankInventory.getFluidAmount()>0){
checkedTank.setFluid(new FluidStack(TFMGFluids.LIQUID_CONCRETE.getSource(), checkedTank.getFluidAmount()+1));
checkedTank.setFluid(new FluidStack(FluidVariant.of(TFMGFluids.LIQUID_CONCRETE.getSource()), checkedTank.getFluidAmount()+1));
//tankInventory.drain(1, IFluidHandler.FluidAction.EXECUTE);
// continue;
}
int reducedAmount = tankInventory.getFluidAmount() / 8;
int reducedAmount = (int) (tankInventory.getFluidAmount() / 8);
if (tankInventory.getFluidAmount() != 0)
reducedAmount = 1;
int newFluidAmount = checkedTank.getFluidAmount() + reducedAmount;
int newFluidAmount = (int) (checkedTank.getFluidAmount() + reducedAmount);
int toRemove = reducedAmount;
//if full
@@ -136,7 +138,7 @@ public class FormWorkBlockEntity extends TFMGMachineBlockEntity {
}
//
checkedTank.setFluid(new FluidStack(TFMGFluids.LIQUID_CONCRETE.getSource(), newFluidAmount));
tankInventory.drain(1, IFluidHandler.FluidAction.EXECUTE);
tankInventory.extract(1, FluidTank.FluidAction.EXECUTE);
}
}

View File

@@ -13,12 +13,12 @@ import com.simibubi.create.foundation.render.CachedBufferer;
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank;
import io.github.fabricators_of_create.porting_lib.util.FluidStack;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.templates.FluidTank;
public class FormWorkRenderer extends SafeBlockEntityRenderer<FormWorkBlockEntity> {

View File

@@ -7,16 +7,14 @@ import com.drmangotea.createindustry.registry.TFMGFluids;
import com.jozufozu.flywheel.core.GameStateRegistry;
import com.simibubi.create.foundation.fluid.SmartFluidTank;
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank;
import io.github.fabricators_of_create.porting_lib.util.FluidStack;
import net.minecraft.commands.arguments.blocks.BlockStateArgument;
import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.fluids.capability.templates.FluidTank;
public class RebarFormWorkBlockEntity extends FormWorkBlockEntity {

View File

@@ -15,13 +15,13 @@ import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider.Context;
import net.minecraft.core.Direction;
import net.minecraft.core.Registry;
import net.minecraft.util.Mth;
import net.minecraft.world.level.block.DoorBlock;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.DoorHingeSide;
import net.minecraft.world.level.block.state.properties.DoubleBlockHalf;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.registries.ForgeRegistries;
public class TFMGSlidingDoorRenderer extends SafeBlockEntityRenderer<TFMGSlidingDoorBlockEntity> {
@@ -51,7 +51,7 @@ public class TFMGSlidingDoorRenderer extends SafeBlockEntityRenderer<TFMGSliding
if (((TFMGSlidingDoorBlock) blockState.getBlock()).isFoldingDoor()) {
Couple<PartialModel> partials =
TFMGPartialModels.FOLDING_DOORS.get(ForgeRegistries.BLOCKS.getKey(blockState.getBlock()));
TFMGPartialModels.FOLDING_DOORS.get(Registry.BLOCK.getKey(blockState.getBlock()));
if(partials==null)
return;
boolean flip = blockState.getValue(DoorBlock.HINGE) == DoorHingeSide.RIGHT;

View File

@@ -4,18 +4,13 @@ import com.drmangotea.createindustry.base.util.TFMGUtils;
import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation;
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
import com.simibubi.create.foundation.utility.Lang;
import net.minecraft.ChatFormatting;
import io.github.fabricators_of_create.porting_lib.util.LazyOptional;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.ForgeCapabilities;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.energy.IEnergyStorage;
import org.jetbrains.annotations.NotNull;
import javax.annotation.Nullable;

View File

@@ -5,17 +5,11 @@ import com.drmangotea.createindustry.blocks.electricity.capacitor.CapacitorBlock
import com.drmangotea.createindustry.blocks.electricity.resistors.ResistorBlockEntity;
import com.drmangotea.createindustry.registry.TFMGBlocks;
import com.simibubi.create.Create;
import com.simibubi.create.foundation.utility.Iterate;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.LeverBlock;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.common.capabilities.ForgeCapabilities;
import net.minecraftforge.energy.EnergyStorage;
public interface IElectricBlock {
@@ -144,7 +138,6 @@ public interface IElectricBlock {
}else
if(be1!=null) {
if (be1.getCapability(ForgeCapabilities.ENERGY, direction.getOpposite()).isPresent()) {
if (!(be1.getCapability(ForgeCapabilities.ENERGY, direction.getOpposite()).orElse(new EnergyStorage(0)) instanceof TFMGForgeEnergyStorage)) {

View File

@@ -33,9 +33,6 @@ import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.HitResult;
import net.minecraft.world.phys.shapes.Shapes;
import net.minecraft.world.phys.shapes.VoxelShape;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.client.model.data.ModelDataManager;
import javax.annotation.Nullable;

View File

@@ -13,6 +13,11 @@ import com.simibubi.create.foundation.fluid.CombinedTankWrapper;
import com.simibubi.create.foundation.fluid.SmartFluidTank;
import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.utility.LangBuilder;
import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank;
import io.github.fabricators_of_create.porting_lib.util.FluidStack;
import io.github.fabricators_of_create.porting_lib.util.LazyOptional;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.ChatFormatting;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
@@ -28,25 +33,15 @@ import net.minecraft.world.item.context.UseOnContext;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.Fluid;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.ForgeCapabilities;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.IFluidTank;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.fluids.capability.templates.FluidTank;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.List;
import java.util.Optional;
@SuppressWarnings("removal")
public class CompactEngineBlockEntity extends GeneratingKineticBlockEntity implements IHaveGoggleInformation, IWrenchable {
protected LazyOptional<IFluidHandler> fluidCapability;
protected LazyOptional<CombinedTankWrapper> fluidCapability;
protected FluidTank tankInventory;
protected FluidTank lubricationOilTank;
@@ -89,9 +84,7 @@ public class CompactEngineBlockEntity extends GeneratingKineticBlockEntity imple
//fluidCapability = LazyOptional.of(() -> tankInventory);
fluidCapability = LazyOptional.of(() -> {
return new CombinedTankWrapper(tankInventory,lubricationOilTank,coolantTank );
});
fluidCapability = LazyOptional.of(() -> new CombinedTankWrapper(tankInventory,lubricationOilTank,coolantTank ));
signal = 0;
setLazyTickRate(40);
@@ -362,7 +355,7 @@ public void write(CompoundTag compound, boolean clientPacket) {
int random2 = Create.RANDOM.nextInt(200);
if(random1 == 69)
coolantTank.drain(1, IFluidHandler.FluidAction.EXECUTE);
coolantTank.extract(1, IFluidHandler.FluidAction.EXECUTE);
if(random2 == 69)
lubricationOilTank.drain(1, IFluidHandler.FluidAction.EXECUTE);
@@ -449,7 +442,7 @@ public void write(CompoundTag compound, boolean clientPacket) {
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
private void makeSound(){
soundTimer=0;
@@ -458,6 +451,7 @@ public void write(CompoundTag compound, boolean clientPacket) {
}
public boolean playerInteract(Player pPlayer, InteractionHand pHand) {
ItemStack stack = pPlayer.getItemInHand(pHand);
@@ -535,7 +529,7 @@ public void write(CompoundTag compound, boolean clientPacket) {
public IFluidTank getTankInventory() {
public FluidTank getTankInventory() {
return tankInventory;
}

View File

@@ -6,7 +6,6 @@ import com.drmangotea.createindustry.registry.TFMGBlocks;
import com.drmangotea.createindustry.registry.TFMGFluids;
import com.drmangotea.createindustry.registry.TFMGSoundEvents;
import com.drmangotea.createindustry.registry.TFMGTags;
import com.simibubi.create.content.contraptions.bearing.WindmillBearingBlockEntity;
import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation;
import com.simibubi.create.content.kinetics.base.GeneratingKineticBlockEntity;
import com.simibubi.create.content.kinetics.base.IRotate;
@@ -14,14 +13,17 @@ import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.content.kinetics.belt.behaviour.DirectBeltInputBehaviour;
import com.simibubi.create.content.kinetics.steamEngine.PoweredShaftBlockEntity;
import com.simibubi.create.content.kinetics.steamEngine.SteamEngineBlock;
import com.simibubi.create.content.kinetics.steamEngine.SteamEngineValueBox;
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
import com.simibubi.create.foundation.blockEntity.behaviour.scrollValue.ScrollOptionBehaviour;
import com.simibubi.create.foundation.fluid.CombinedTankWrapper;
import com.simibubi.create.foundation.fluid.SmartFluidTank;
import com.simibubi.create.foundation.utility.*;
import mekanism.common.recipe.lookup.cache.type.FluidInputCache;
import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank;
import io.github.fabricators_of_create.porting_lib.util.FluidStack;
import io.github.fabricators_of_create.porting_lib.util.LazyOptional;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant;
import net.minecraft.ChatFormatting;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
@@ -36,21 +38,11 @@ import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.AttachFace;
import net.minecraft.world.level.material.Fluid;
import net.minecraft.world.phys.AABB;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.ForgeCapabilities;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.fluids.capability.templates.FluidTank;
import net.minecraftforge.fml.DistExecutor;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.lang.ref.WeakReference;
import java.util.List;
import java.util.Optional;
import static com.drmangotea.createindustry.blocks.engines.diesel.DieselEngineBlock.FACE;
import static net.minecraft.world.level.block.HorizontalDirectionalBlock.FACING;
@@ -341,15 +333,15 @@ public class DieselEngineBlockEntity extends SmartBlockEntity implements IHaveGo
fuelModifier = 1;
fuelTank.setFluid(new FluidStack(TFMGFluids.DIESEL.getSource(),fuelTank.getFluidAmount()-(2-fuelModifier)));
fuelTank.setFluid(new FluidStack(FluidVariant.of(TFMGFluids.DIESEL.getSource()),fuelTank.getFluidAmount()-(2-fuelModifier)));
}
//airTank.drain(1, IFluidHandler.FluidAction.EXECUTE);
if(!airTank.isEmpty()) {
airTank.setFluid(new FluidStack(TFMGFluids.AIR.getSource(), airTank.getFluidAmount() - 5));
airTank.setFluid(new FluidStack(FluidVariant.of(TFMGFluids.AIR.getSource()), airTank.getFluidAmount() - 5));
}else expansionBE.airTank.setFluid(new FluidStack(TFMGFluids.AIR.getSource(), expansionBE.airTank.getFluidAmount() - 5));
exhaustTank.fill(new FluidStack(TFMGFluids.CARBON_DIOXIDE.getSource(),3), IFluidHandler.FluidAction.EXECUTE);
exhaustTank.fill(new FluidStack(FluidVariant.of(TFMGFluids.CARBON_DIOXIDE.getSource()),3), IFluidHandler.FluidAction.EXECUTE);
//tanks.get(false).setFluid(new FluidStack(TFMGFluids.CARBON_DIOXIDE.getSource(), tanks.get(false).getFluidAmount()+1));
@@ -360,12 +352,12 @@ public class DieselEngineBlockEntity extends SmartBlockEntity implements IHaveGo
if (!expansionBE.coolantTank.isEmpty()){
strengthModifier +=3;
if(consumptionTimer>5)
expansionBE.coolantTank.setFluid(new FluidStack(TFMGFluids.COOLING_FLUID.getSource(), expansionBE.coolantTank.getFluidAmount() - 1));
expansionBE.coolantTank.setFluid(new FluidStack(FluidVariant.of(TFMGFluids.COOLING_FLUID.getSource()), expansionBE.coolantTank.getFluidAmount() - 1));
}
if (!expansionBE.lubricationOilTank.isEmpty()){
strengthModifier +=5;
if(consumptionTimer>5)
expansionBE.lubricationOilTank.setFluid(new FluidStack(TFMGFluids.LUBRICATION_OIL.getSource(), expansionBE.lubricationOilTank.getFluidAmount() - 1));
expansionBE.lubricationOilTank.setFluid(new FluidStack(FluidVariant.of(TFMGFluids.LUBRICATION_OIL.getSource()), expansionBE.lubricationOilTank.getFluidAmount() - 1));
}
}
@@ -398,7 +390,7 @@ public class DieselEngineBlockEntity extends SmartBlockEntity implements IHaveGo
}
@Override
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
protected AABB createRenderBoundingBox() {
return super.createRenderBoundingBox().inflate(2);
}

View File

@@ -8,6 +8,12 @@ import com.simibubi.create.foundation.fluid.CombinedTankWrapper;
import com.simibubi.create.foundation.fluid.SmartFluidTank;
import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.utility.LangBuilder;
import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank;
import io.github.fabricators_of_create.porting_lib.util.FluidStack;
import io.github.fabricators_of_create.porting_lib.util.LazyOptional;
import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant;
import net.fabricmc.fabric.api.transfer.v1.storage.Storage;
import net.fabricmc.fabric.api.transfer.v1.storage.StorageView;
import net.minecraft.ChatFormatting;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
@@ -16,12 +22,6 @@ import net.minecraft.network.chat.Component;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.Fluid;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.fluids.capability.templates.FluidTank;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
@@ -30,7 +30,7 @@ import java.util.Optional;
public class DieselEngineExpansionBlockEntity extends SmartBlockEntity implements IHaveGoggleInformation {
protected LazyOptional<IFluidHandler> fluidCapability;
protected LazyOptional<CombinedTankWrapper> fluidCapability;
public FluidTank coolantTank;
public FluidTank lubricationOilTank;
public FluidTank airTank;
@@ -50,16 +50,6 @@ public class DieselEngineExpansionBlockEntity extends SmartBlockEntity implement
}
@Nonnull
@Override
@SuppressWarnings("removal")
public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) {
if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY)
return fluidCapability.cast();
return super.getCapability(cap, side);
}
@Override
public void invalidate() {
super.invalidate();
@@ -108,17 +98,14 @@ public class DieselEngineExpansionBlockEntity extends SmartBlockEntity implement
@Override
@SuppressWarnings("removal")
public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
//--Fluid Info--//
LazyOptional<IFluidHandler> handler = this.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY);
Optional<IFluidHandler> resolve = handler.resolve();
LazyOptional<CombinedTankWrapper> handler = this.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY);
Optional<CombinedTankWrapper> resolve = handler.resolve();
if (!resolve.isPresent())
return false;
IFluidHandler tank = resolve.get();
if (tank.getTanks() == 0)
CombinedTankWrapper tanks = resolve.get();
if (tanks.parts.isEmpty())
return false;
LangBuilder mb = Lang.translate("generic.unit.millibuckets");
@@ -127,8 +114,9 @@ public class DieselEngineExpansionBlockEntity extends SmartBlockEntity implement
.forGoggles(tooltip);
boolean isEmpty = true;
for (int i = 0; i < tank.getTanks(); i++) {
FluidStack fluidStack = tank.getFluidInTank(i);
for (int i = 0; i < tanks.parts.size(); i++) {
Storage<FluidVariant> tank = tanks.parts.get(i);
FluidStack fluidStack = tank;
if (fluidStack.isEmpty())
continue;
@@ -141,7 +129,7 @@ public class DieselEngineExpansionBlockEntity extends SmartBlockEntity implement
.add(mb)
.style(ChatFormatting.DARK_GREEN))
.text(ChatFormatting.GRAY, " / ")
.add(Lang.number(tank.getTankCapacity(i))
.add(Lang.number(tanks.getTankCapacity(i))
.add(mb)
.style(ChatFormatting.DARK_GRAY))
.forGoggles(tooltip, 1);
@@ -149,7 +137,7 @@ public class DieselEngineExpansionBlockEntity extends SmartBlockEntity implement
isEmpty = false;
}
if (tank.getTanks() > 1) {
if (tanks.getTanks() > 1) {
if (isEmpty)
tooltip.remove(tooltip.size() - 1);
return true;
@@ -159,7 +147,7 @@ public class DieselEngineExpansionBlockEntity extends SmartBlockEntity implement
return true;
Lang.translate("gui.goggles.fluid_container.capacity")
.add(Lang.number(tank.getTankCapacity(0))
.add(Lang.number(tanks.getTankCapacity(0))
.add(mb)
.style(ChatFormatting.DARK_GREEN))
.style(ChatFormatting.DARK_GRAY)

View File

@@ -1,5 +1,6 @@
package com.drmangotea.createindustry.blocks.fluids;
import com.tterrag.registrate.fabric.SimpleFlowableFluid;
import net.minecraft.core.BlockPos;
import net.minecraft.util.RandomSource;
import net.minecraft.world.level.Level;
@@ -12,7 +13,7 @@ import net.minecraftforge.fluids.ForgeFlowingFluid;
* makes fluid burn when close to fire,
* not working for now
*/
public class FlammableFluid extends ForgeFlowingFluid {
public class FlammableFluid extends SimpleFlowableFluid {
protected FlammableFluid(Properties properties) {

View File

@@ -9,6 +9,9 @@ import com.simibubi.create.foundation.fluid.SmartFluidTank;
import com.simibubi.create.foundation.utility.Couple;
import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.utility.LangBuilder;
import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank;
import io.github.fabricators_of_create.porting_lib.util.FluidStack;
import io.github.fabricators_of_create.porting_lib.util.LazyOptional;
import net.minecraft.ChatFormatting;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
@@ -16,13 +19,9 @@ import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.fluids.capability.IFluidHandler;
import javax.annotation.Nonnull;
import java.security.DrbgParameters;
import java.util.List;
import java.util.Optional;
@@ -32,7 +31,7 @@ public class TFMGMachineBlockEntity extends SmartBlockEntity implements IHaveGo
private boolean contentsChanged;
protected LazyOptional<IFluidHandler> fluidCapability;
protected LazyOptional<FluidTank> fluidCapability;
public TFMGMachineBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
super(type, pos, state);
@@ -41,7 +40,17 @@ public class TFMGMachineBlockEntity extends SmartBlockEntity implements IHaveGo
contentsChanged = true;
}
// im like 90% sure we dont need this
// @Nonnull
// @Override
// public <T> LazyOptional<T> getCapability(@Nonnull DrbgParameters.Capability<T> cap, Direction side) {
//
//
//
// if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY)
// return fluidCapability.cast();
// return super.getCapability(cap, side);
// }
@Override
@@ -58,12 +67,9 @@ public class TFMGMachineBlockEntity extends SmartBlockEntity implements IHaveGo
behaviours.add(tank1);
behaviours.add(tank2);
fluidCapability = LazyOptional.of(() -> {
LazyOptional<? extends IFluidHandler> inputCap = tank1.getCapability();
LazyOptional<? extends IFluidHandler> outputCap = tank2.getCapability();
LazyOptional<? extends FluidTank> inputCap = tank1.getCapability();
LazyOptional<? extends FluidTank> outputCap = tank2.getCapability();
return new CombinedTankWrapper(outputCap.orElse(null), inputCap.orElse(null));
});
@@ -79,16 +85,8 @@ public class TFMGMachineBlockEntity extends SmartBlockEntity implements IHaveGo
fluidCapability.invalidate();
}
@Nonnull
@Override
public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, Direction side) {
if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY)
return fluidCapability.cast();
return super.getCapability(cap, side);
}
@Override
public void notifyUpdate() {
super.notifyUpdate();

View File

@@ -2,13 +2,15 @@ package com.drmangotea.createindustry.blocks.machines.exhaust;
import com.drmangotea.createindustry.registry.TFMGFluids;
import com.simibubi.create.Create;
import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation;
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
import com.simibubi.create.foundation.fluid.SmartFluidTank;
import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.utility.LangBuilder;
import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank;
import io.github.fabricators_of_create.porting_lib.util.FluidStack;
import io.github.fabricators_of_create.porting_lib.util.LazyOptional;
import net.minecraft.ChatFormatting;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
@@ -16,13 +18,6 @@ import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.IFluidTank;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.fluids.capability.templates.FluidTank;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
@@ -34,7 +29,7 @@ public class ExhaustBlockEntity extends SmartBlockEntity implements IHaveGoggleI
protected LazyOptional<IFluidHandler> fluidCapability;
protected LazyOptional<FluidTank> fluidCapability;
public FluidTank tankInventory;
public boolean spawnsSmoke=false;
@@ -61,12 +56,12 @@ public class ExhaustBlockEntity extends SmartBlockEntity implements IHaveGoggleI
LangBuilder mb = Lang.translate("generic.unit.millibuckets");
/////////
LazyOptional<IFluidHandler> handler = this.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY);
Optional<IFluidHandler> resolve = handler.resolve();
LazyOptional<FluidTank> handler = this.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY);
Optional<FluidTank> resolve = handler.resolve();
if (!resolve.isPresent())
return false;
IFluidHandler tank = resolve.get();
FluidTank tank = resolve.get();
if (tank.getTanks() == 0)
return false;
@@ -210,13 +205,12 @@ public class ExhaustBlockEntity extends SmartBlockEntity implements IHaveGoggleI
private void refreshCapability() {
LazyOptional<IFluidHandler> oldCap = fluidCapability;
LazyOptional<FluidTank> oldCap = fluidCapability;
fluidCapability = LazyOptional.of(() -> handlerForCapability());
oldCap.invalidate();
}
private IFluidHandler handlerForCapability() {
private FluidTank handlerForCapability() {
return tankInventory;
}
@@ -261,7 +255,7 @@ public class ExhaustBlockEntity extends SmartBlockEntity implements IHaveGoggleI
}
public IFluidTank getTankInventory() {
public FluidTank getTankInventory() {
return tankInventory;
}

View File

@@ -1,34 +1,20 @@
package com.drmangotea.createindustry.blocks.machines.firebox;
import com.drmangotea.createindustry.registry.TFMGBlockEntities;
import com.simibubi.create.AllBlockEntityTypes;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllItems;
import com.simibubi.create.AllShapes;
import com.simibubi.create.content.equipment.wrench.IWrenchable;
import com.simibubi.create.content.processing.basin.BasinBlockEntity;
import com.simibubi.create.content.processing.burner.BlazeBurnerBlock;
import com.simibubi.create.content.processing.burner.BlazeBurnerBlockItem;
import com.simibubi.create.foundation.block.IBE;
import com.simibubi.create.foundation.utility.Lang;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.advancements.critereon.StatePropertiesPredicate;
import net.minecraft.core.BlockPos;
import net.minecraft.core.NonNullList;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
import net.minecraft.util.StringRepresentable;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.InteractionResultHolder;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.FlintAndSteelItem;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.ItemLike;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
@@ -38,19 +24,6 @@ import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition.Builder;
import net.minecraft.world.level.block.state.properties.EnumProperty;
import net.minecraft.world.level.pathfinder.PathComputationType;
import net.minecraft.world.level.storage.loot.LootPool;
import net.minecraft.world.level.storage.loot.LootTable;
import net.minecraft.world.level.storage.loot.entries.LootItem;
import net.minecraft.world.level.storage.loot.predicates.ExplosionCondition;
import net.minecraft.world.level.storage.loot.predicates.LootItemBlockStatePropertyCondition;
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition;
import net.minecraft.world.level.storage.loot.providers.number.ConstantValue;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.VoxelShape;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.common.util.FakePlayer;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
@@ -136,7 +109,7 @@ public class FireboxBlock extends HorizontalDirectionalBlock implements IBE<Fire
return false;
}
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
public void animateTick(BlockState state, Level world, BlockPos pos, Random random) {
if (random.nextInt(10) != 0)
return;

View File

@@ -1,43 +1,26 @@
package com.drmangotea.createindustry.blocks.machines.firebox;
import com.drmangotea.createindustry.registry.TFMGFluids;
import com.drmangotea.createindustry.registry.TFMGTags;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllItems;
import com.simibubi.create.AllTags.AllItemTags;
import com.simibubi.create.content.fluids.tank.FluidTankBlock;
import com.simibubi.create.content.processing.burner.BlazeBurnerBlock.HeatLevel;
import com.simibubi.create.content.processing.burner.BlazeBurnerBlockEntity;
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
import com.simibubi.create.foundation.fluid.SmartFluidTank;
import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.VecHelper;
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser;
import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer;
import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank;
import io.github.fabricators_of_create.porting_lib.util.FluidStack;
import io.github.fabricators_of_create.porting_lib.util.LazyOptional;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
import net.minecraft.util.Mth;
import net.minecraft.util.RandomSource;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.common.ForgeHooks;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.ForgeCapabilities;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.fluids.capability.templates.FluidTank;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
@@ -51,7 +34,7 @@ public class FireboxBlockEntity extends SmartBlockEntity {
protected int remainingBurnTime;
protected LazyOptional<IFluidHandler> fluidCapability;
protected LazyOptional<FluidTank> fluidCapability;
public FluidTank tankInventory;
@@ -127,7 +110,7 @@ public class FireboxBlockEntity extends SmartBlockEntity {
super.read(compound, clientPacket);
}
private void refreshCapability() {
LazyOptional<IFluidHandler> oldCap = fluidCapability;
LazyOptional<FluidTank> oldCap = fluidCapability;
fluidCapability = LazyOptional.of(() -> handlerForCapability());
oldCap.invalidate();
}
@@ -140,7 +123,7 @@ public class FireboxBlockEntity extends SmartBlockEntity {
return fluidCapability.cast();
return super.getCapability(cap, side);
}
private IFluidHandler handlerForCapability() {
private FluidTank handlerForCapability() {
return tankInventory;
}

View File

@@ -1,7 +1,6 @@
package com.drmangotea.createindustry.blocks.machines.flarestack;
import com.drmangotea.createindustry.registry.TFMGFluids;
import com.drmangotea.createindustry.registry.TFMGTags;
import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation;
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
@@ -9,6 +8,8 @@ import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour
import com.simibubi.create.foundation.fluid.SmartFluidTank;
import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.utility.LangBuilder;
import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank;
import io.github.fabricators_of_create.porting_lib.util.LazyOptional;
import net.minecraft.ChatFormatting;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
@@ -16,13 +17,6 @@ import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.IFluidTank;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.fluids.capability.templates.FluidTank;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
@@ -33,7 +27,7 @@ public class FlarestackBlockEntity extends SmartBlockEntity implements IHaveGogg
protected LazyOptional<IFluidHandler> fluidCapability;
protected LazyOptional<FluidTank> fluidCapability;
public FluidTank tankInventory;
public boolean spawnsSmoke=false;
@@ -61,12 +55,12 @@ public class FlarestackBlockEntity extends SmartBlockEntity implements IHaveGogg
LangBuilder mb = Lang.translate("generic.unit.millibuckets");
/////////
LazyOptional<IFluidHandler> handler = this.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY);
Optional<IFluidHandler> resolve = handler.resolve();
LazyOptional<FluidTank> handler = this.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY);
Optional<FluidTank> resolve = handler.resolve();
if (!resolve.isPresent())
return false;
IFluidHandler tank = resolve.get();
FluidTank tank = resolve.get();
if (tank.getTanks() == 0)
return false;

View File

@@ -1,6 +1,5 @@
package com.drmangotea.createindustry.blocks.machines.metal_processing.blast_furnace;
import com.drmangotea.createindustry.CreateTFMG;
import com.drmangotea.createindustry.blocks.machines.TFMGMachineBlockEntity;
import com.drmangotea.createindustry.recipes.industrial_blasting.IndustrialBlastingRecipe;
import com.drmangotea.createindustry.registry.TFMGBlocks;
@@ -12,8 +11,9 @@ import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour
import com.simibubi.create.foundation.item.ItemHelper;
import com.simibubi.create.foundation.item.SmartInventory;
import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.utility.LangBuilder;
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
import io.github.fabricators_of_create.porting_lib.transfer.item.RecipeWrapper;
import io.github.fabricators_of_create.porting_lib.util.LazyOptional;
import net.minecraft.ChatFormatting;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
@@ -25,17 +25,8 @@ import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.AABB;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.ForgeCapabilities;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.items.IItemHandlerModifiable;
import net.minecraftforge.items.wrapper.CombinedInvWrapper;
import net.minecraftforge.items.wrapper.RecipeWrapper;
import javax.annotation.Nonnull;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
@@ -88,7 +79,7 @@ public class BlastFurnaceOutputBlockEntity extends TFMGMachineBlockEntity implem
fuelInventory = new SmartInventory(1, this).forbidInsertion().forbidExtraction()
.withMaxStackSize(64);
itemCapability = LazyOptional.of(() -> new CombinedInvWrapper(inputInventory,fuelInventory));
itemCapability = LazyOptional.of(() -> new Combined(inputInventory,fuelInventory));
tank1.getPrimaryHandler().setCapacity(8000);

View File

@@ -1,6 +1,5 @@
package com.drmangotea.createindustry.blocks.machines.metal_processing.casting_basin;
import com.drmangotea.createindustry.CreateTFMG;
import com.drmangotea.createindustry.blocks.machines.TFMGMachineBlockEntity;
import com.drmangotea.createindustry.recipes.casting.CastingRecipe;
import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation;
@@ -18,23 +17,13 @@ import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.util.StringRepresentable;
import net.minecraft.world.Container;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.Recipe;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.Fluids;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.IItemHandlerModifiable;
import net.minecraftforge.items.wrapper.CombinedInvWrapper;
import javax.annotation.Nonnull;
import java.util.List;
import java.util.Optional;
import static com.drmangotea.createindustry.blocks.machines.metal_processing.casting_basin.CastingBasinBlock.MOLD_TYPE;

View File

@@ -1,25 +1,19 @@
package com.drmangotea.createindustry.blocks.machines.metal_processing.casting_spout;
import com.drmangotea.createindustry.CreateTFMG;
import com.drmangotea.createindustry.blocks.machines.TFMGMachineBlockEntity;
import com.drmangotea.createindustry.blocks.machines.metal_processing.casting_basin.CastingBasinBlockEntity;
import com.simibubi.create.content.fluids.tank.FluidTankBlockEntity;
import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.utility.LangBuilder;
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
import io.github.fabricators_of_create.porting_lib.util.FluidStack;
import net.minecraft.ChatFormatting;
import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.Component;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.AABB;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.fluids.capability.IFluidHandler;
import java.util.List;
import java.util.Optional;
public class CastingSpoutBlockEntity extends TFMGMachineBlockEntity {

View File

@@ -5,20 +5,19 @@ import com.drmangotea.createindustry.registry.TFMGPartialModels;
import com.jozufozu.flywheel.core.PartialModel;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.foundation.blockEntity.behaviour.fluid.SmartFluidTankBehaviour;
import com.simibubi.create.foundation.blockEntity.behaviour.fluid.SmartFluidTankBehaviour.TankSegment;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.fluid.FluidRenderer;
import com.simibubi.create.foundation.render.CachedBufferer;
import io.github.fabricators_of_create.porting_lib.util.FluidStack;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.util.Mth;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.AABB;
import net.minecraftforge.fluids.FluidStack;
public class CastingSpoutRenderer extends SafeBlockEntityRenderer<CastingSpoutBlockEntity> {

View File

@@ -13,28 +13,19 @@ import com.simibubi.create.foundation.item.ItemHelper;
import com.simibubi.create.foundation.item.SmartInventory;
import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
import io.github.fabricators_of_create.porting_lib.transfer.item.RecipeWrapper;
import io.github.fabricators_of_create.porting_lib.util.FluidStack;
import io.github.fabricators_of_create.porting_lib.util.LazyOptional;
import net.minecraft.ChatFormatting;
import net.minecraft.client.Minecraft;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.core.RegistryAccess;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.world.entity.item.ItemEntity;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.AABB;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.ForgeCapabilities;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.items.IItemHandlerModifiable;
import net.minecraftforge.items.wrapper.CombinedInvWrapper;
import net.minecraftforge.items.wrapper.RecipeWrapper;
import javax.annotation.Nonnull;
import java.util.List;

View File

@@ -1,39 +1,28 @@
package com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.controller;
import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.output.DistillationOutputBlockEntity;
import com.drmangotea.createindustry.blocks.tanks.SteelTankBlock;
import com.drmangotea.createindustry.blocks.tanks.SteelTankBlockEntity;
import com.drmangotea.createindustry.recipes.distillation.DistillationRecipe;
import com.drmangotea.createindustry.registry.TFMGBlocks;
import com.simibubi.create.Create;
import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation;
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
import com.simibubi.create.foundation.blockEntity.behaviour.fluid.SmartFluidTankBehaviour;
import com.simibubi.create.foundation.fluid.CombinedTankWrapper;
import com.simibubi.create.foundation.fluid.SmartFluidTank;
import com.simibubi.create.foundation.item.SmartInventory;
import com.simibubi.create.foundation.recipe.RecipeFinder;
import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank;
import io.github.fabricators_of_create.porting_lib.util.FluidStack;
import io.github.fabricators_of_create.porting_lib.util.LazyOptional;
import net.minecraft.ChatFormatting;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.NbtUtils;
import net.minecraft.network.chat.Component;
import net.minecraft.world.Container;
import net.minecraft.world.item.crafting.Recipe;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.ForgeCapabilities;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.fluids.capability.templates.FluidTank;
import org.checkerframework.checker.units.qual.C;
import javax.annotation.Nonnull;
@@ -47,7 +36,7 @@ public class DistillationControllerBlockEntity extends SmartBlockEntity implemen
public DistillationRecipe recipe;
protected LazyOptional<IFluidHandler> fluidCapability;
protected LazyOptional<FluidTank> fluidCapability;
public final FluidTank tank= new SmartFluidTank(8000,this::onFluidStackChanged);
@@ -110,7 +99,7 @@ public class DistillationControllerBlockEntity extends SmartBlockEntity implemen
for(DistillationOutputBlockEntity be1 : outputs){
if(be1.tank.getSpace()==0)
if(be1.tank==0)
return;
}

View File

@@ -1,27 +1,18 @@
package com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.output;
import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.controller.DistillationControllerBlock;
import com.drmangotea.createindustry.blocks.tanks.SteelTankBlockEntity;
import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation;
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
import com.simibubi.create.foundation.fluid.CombinedTankWrapper;
import com.simibubi.create.foundation.fluid.SmartFluidTank;
import com.simibubi.create.foundation.utility.Lang;
import net.minecraft.ChatFormatting;
import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank;
import io.github.fabricators_of_create.porting_lib.util.FluidStack;
import io.github.fabricators_of_create.porting_lib.util.LazyOptional;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.ForgeCapabilities;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.fluids.capability.templates.FluidTank;
import javax.annotation.Nonnull;
import java.util.List;
@@ -29,7 +20,7 @@ import java.util.List;
public class DistillationOutputBlockEntity extends SmartBlockEntity implements IHaveGoggleInformation {
protected LazyOptional<IFluidHandler> fluidCapability;
protected LazyOptional<FluidTank> fluidCapability;
public final FluidTank tank = new SmartFluidTank(8000,this::onFluidStackChanged);
public DistillationOutputBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {

View File

@@ -10,6 +10,10 @@ import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour
import com.simibubi.create.foundation.fluid.SmartFluidTank;
import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.utility.LangBuilder;
import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank;
import io.github.fabricators_of_create.porting_lib.util.FluidStack;
import io.github.fabricators_of_create.porting_lib.util.LazyOptional;
import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant;
import net.minecraft.ChatFormatting;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
@@ -17,12 +21,6 @@ import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.ForgeCapabilities;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.fluids.capability.templates.FluidTank;
import javax.annotation.Nonnull;
import java.util.List;
@@ -38,7 +36,7 @@ public class PumpjackBaseBlockEntity extends SmartBlockEntity implements IHaveGo
public int miningRate = 0;
protected LazyOptional<IFluidHandler> fluidCapability;
protected LazyOptional<FluidTank> fluidCapability;
public FluidTank tankInventory;
public BlockPos deposit;
@@ -139,7 +137,7 @@ public class PumpjackBaseBlockEntity extends SmartBlockEntity implements IHaveGo
return;
tankInventory.setFluid(new FluidStack(TFMGFluids.CRUDE_OIL.getSource(), tankInventory.getFluidAmount() + miningRate));
tankInventory.setFluid(new FluidStack(FluidVariant.of(TFMGFluids.CRUDE_OIL.getSource()), tankInventory.getFluidAmount() + miningRate));
}
@@ -185,12 +183,12 @@ public class PumpjackBaseBlockEntity extends SmartBlockEntity implements IHaveGo
}
//--Fluid Info--//
LazyOptional<IFluidHandler> handler = this.getCapability(ForgeCapabilities.FLUID_HANDLER);
Optional<IFluidHandler> resolve = handler.resolve();
LazyOptional<FluidTank> handler = this.getCapability(ForgeCapabilities.FLUID_HANDLER);
Optional<FluidTank> resolve = handler.resolve();
if (!resolve.isPresent())
return false;
IFluidHandler tank = resolve.get();
FluidTank tank = resolve.get();
if (tank.getTanks() == 0)
return false;

View File

@@ -7,13 +7,13 @@ import com.simibubi.create.content.contraptions.ContraptionType;
import com.simibubi.create.content.contraptions.bearing.AnchoredLighter;
import com.simibubi.create.content.contraptions.bearing.BearingContraption;
import com.simibubi.create.content.contraptions.render.ContraptionLighter;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import org.apache.commons.lang3.tuple.Pair;
public class PumpjackContraption extends BearingContraption {
@@ -84,7 +84,7 @@ public class PumpjackContraption extends BearingContraption {
return facing.getAxis() == this.facing.getAxis();
}
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
@Override
public ContraptionLighter<?> makeLighter() {
return new AnchoredLighter(this);

View File

@@ -10,6 +10,9 @@ import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour
import com.simibubi.create.foundation.recipe.RecipeApplier;
import com.simibubi.create.foundation.utility.VecHelper;
import com.simibubi.create.infrastructure.config.AllConfigs;
import io.github.fabricators_of_create.porting_lib.transfer.item.ItemHandlerHelper;
import io.github.fabricators_of_create.porting_lib.transfer.item.ItemStackHandler;
import io.github.fabricators_of_create.porting_lib.transfer.item.RecipeWrapper;
import net.minecraft.core.BlockPos;
import net.minecraft.world.entity.item.ItemEntity;
import net.minecraft.world.item.ItemStack;
@@ -17,9 +20,6 @@ import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.items.ItemHandlerHelper;
import net.minecraftforge.items.ItemStackHandler;
import net.minecraftforge.items.wrapper.RecipeWrapper;
import java.util.List;
import java.util.Optional;

View File

@@ -1,26 +1,22 @@
package com.drmangotea.createindustry.blocks.machines.simple.welding_machine;
import com.drmangotea.createindustry.registry.TFMGBlocks;
import com.drmangotea.createindustry.registry.TFMGRecipeTypes;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllRecipeTypes;
import com.simibubi.create.compat.jei.category.sequencedAssembly.SequencedAssemblySubCategory;
import com.simibubi.create.compat.recipeViewerCommon.SequencedAssemblySubCategoryType;
import com.simibubi.create.content.processing.recipe.ProcessingRecipe;
import com.simibubi.create.content.processing.recipe.ProcessingRecipeBuilder.ProcessingRecipeParams;
import com.simibubi.create.content.processing.sequenced.IAssemblyRecipe;
import com.simibubi.create.foundation.utility.Lang;
import io.github.fabricators_of_create.porting_lib.transfer.item.RecipeWrapper;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.network.chat.Component;
import net.minecraft.world.item.crafting.Ingredient;
import net.minecraft.world.level.ItemLike;
import net.minecraft.world.level.Level;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.items.wrapper.RecipeWrapper;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.List;
import java.util.Set;
import java.util.function.Supplier;
@ParametersAreNonnullByDefault
public class WeldingRecipe extends ProcessingRecipe<RecipeWrapper> implements IAssemblyRecipe {
@@ -51,7 +47,7 @@ public class WeldingRecipe extends ProcessingRecipe<RecipeWrapper> implements IA
public void addAssemblyIngredients(List<Ingredient> list) {}
@Override
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
public Component getDescriptionForAssembly() {
return Lang.translateDirect("recipe.assembly.welding");
}
@@ -62,8 +58,8 @@ public class WeldingRecipe extends ProcessingRecipe<RecipeWrapper> implements IA
}
@Override
public Supplier<Supplier<SequencedAssemblySubCategory>> getJEISubCategory() {
return () -> SequencedAssemblySubCategory.AssemblyPressing::new;
public SequencedAssemblySubCategoryType getJEISubCategory() {
return SequencedAssemblySubCategoryType.PRESSING;
}
}

View File

@@ -5,8 +5,9 @@ import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehavi
import com.simibubi.create.content.fluids.FluidTransportBehaviour;
import com.simibubi.create.content.fluids.pipes.FluidPipeBlock;
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
import com.simibubi.create.foundation.model.BakedModelWrapperWithData;
import com.simibubi.create.foundation.utility.Iterate;
import io.github.fabricators_of_create.porting_lib.model.data.ModelData;
import io.github.fabricators_of_create.porting_lib.model.data.ModelProperty;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ItemBlockRenderTypes;
import net.minecraft.client.renderer.RenderType;
@@ -17,9 +18,6 @@ import net.minecraft.core.Direction;
import net.minecraft.util.RandomSource;
import net.minecraft.world.level.BlockAndTintGetter;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.client.ChunkRenderTypeSet;
import net.minecraftforge.client.model.data.ModelData;
import net.minecraftforge.client.model.data.ModelProperty;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;

View File

@@ -5,8 +5,9 @@ import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehavi
import com.simibubi.create.content.fluids.FluidTransportBehaviour;
import com.simibubi.create.content.fluids.pipes.FluidPipeBlock;
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
import com.simibubi.create.foundation.model.BakedModelWrapperWithData;
import com.simibubi.create.foundation.utility.Iterate;
import io.github.fabricators_of_create.porting_lib.model.data.ModelData;
import io.github.fabricators_of_create.porting_lib.model.data.ModelProperty;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ItemBlockRenderTypes;
import net.minecraft.client.renderer.RenderType;
@@ -17,9 +18,6 @@ import net.minecraft.core.Direction;
import net.minecraft.util.RandomSource;
import net.minecraft.world.level.BlockAndTintGetter;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.client.ChunkRenderTypeSet;
import net.minecraftforge.client.model.data.ModelData;
import net.minecraftforge.client.model.data.ModelProperty;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;

View File

@@ -5,8 +5,9 @@ import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehavi
import com.simibubi.create.content.fluids.FluidTransportBehaviour;
import com.simibubi.create.content.fluids.pipes.FluidPipeBlock;
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
import com.simibubi.create.foundation.model.BakedModelWrapperWithData;
import com.simibubi.create.foundation.utility.Iterate;
import io.github.fabricators_of_create.porting_lib.model.data.ModelData;
import io.github.fabricators_of_create.porting_lib.model.data.ModelProperty;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ItemBlockRenderTypes;
import net.minecraft.client.renderer.RenderType;
@@ -17,9 +18,6 @@ import net.minecraft.core.Direction;
import net.minecraft.util.RandomSource;
import net.minecraft.world.level.BlockAndTintGetter;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.client.ChunkRenderTypeSet;
import net.minecraftforge.client.model.data.ModelData;
import net.minecraftforge.client.model.data.ModelProperty;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;

View File

@@ -5,8 +5,9 @@ import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehavi
import com.simibubi.create.content.fluids.FluidTransportBehaviour;
import com.simibubi.create.content.fluids.pipes.FluidPipeBlock;
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
import com.simibubi.create.foundation.model.BakedModelWrapperWithData;
import com.simibubi.create.foundation.utility.Iterate;
import io.github.fabricators_of_create.porting_lib.model.data.ModelData;
import io.github.fabricators_of_create.porting_lib.model.data.ModelProperty;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ItemBlockRenderTypes;
import net.minecraft.client.renderer.RenderType;
@@ -17,9 +18,6 @@ import net.minecraft.core.Direction;
import net.minecraft.util.RandomSource;
import net.minecraft.world.level.BlockAndTintGetter;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.client.ChunkRenderTypeSet;
import net.minecraftforge.client.model.data.ModelData;
import net.minecraftforge.client.model.data.ModelProperty;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;

View File

@@ -1,13 +1,13 @@
package com.drmangotea.createindustry.blocks.pipes.normal.steel;
import com.drmangotea.createindustry.blocks.pipes.normal.LockablePipeBlockEntity;
import com.drmangotea.createindustry.registry.TFMGPartialModels;
import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehaviour;
import com.simibubi.create.content.fluids.FluidTransportBehaviour;
import com.simibubi.create.content.fluids.pipes.FluidPipeBlock;
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
import com.simibubi.create.foundation.model.BakedModelWrapperWithData;
import com.simibubi.create.foundation.utility.Iterate;
import io.github.fabricators_of_create.porting_lib.model.data.ModelData;
import io.github.fabricators_of_create.porting_lib.model.data.ModelProperty;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ItemBlockRenderTypes;
import net.minecraft.client.renderer.RenderType;
@@ -18,15 +18,11 @@ import net.minecraft.core.Direction;
import net.minecraft.util.RandomSource;
import net.minecraft.world.level.BlockAndTintGetter;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.client.ChunkRenderTypeSet;
import net.minecraftforge.client.model.data.ModelData;
import net.minecraftforge.client.model.data.ModelProperty;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.locks.Lock;
import static net.minecraft.world.level.block.PipeBlock.PROPERTY_BY_DIRECTION;

View File

@@ -1,20 +1,19 @@
package com.drmangotea.createindustry.config;
import com.drmangotea.createindustry.CreateTFMG;
import com.simibubi.create.content.kinetics.BlockStressValues;
import com.simibubi.create.foundation.config.ConfigBase;
import net.minecraftforge.api.ModLoadingContext;
import net.minecraftforge.api.fml.event.config.ModConfigEvents;
import net.minecraftforge.common.ForgeConfigSpec;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.ModLoadingContext;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.config.ModConfig;
import net.minecraftforge.fml.event.config.ModConfigEvent;
import org.apache.commons.lang3.tuple.Pair;
import java.util.EnumMap;
import java.util.Map;
import java.util.function.Supplier;
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
public class TFMGConfigs {
private static final Map<ModConfig.Type, ConfigBase> CONFIGS = new EnumMap<>(ModConfig.Type.class);
@@ -42,27 +41,28 @@ public class TFMGConfigs {
return config;
}
public static void register(ModLoadingContext context) {
public static void register() {
server = register(ServerConfig::new, ModConfig.Type.SERVER);
for (Map.Entry<ModConfig.Type, ConfigBase> pair : CONFIGS.entrySet())
context.registerConfig(pair.getKey(), pair.getValue().specification);
ModLoadingContext.registerConfig(CreateTFMG.MOD_ID, pair.getKey(), pair.getValue().specification);
BlockStressValues.registerProvider(context.getActiveNamespace(), server().stressValues);
BlockStressValues.registerProvider(CreateTFMG.MOD_ID, server().stressValues);
ModConfigEvents.loading(CreateTFMG.MOD_ID).register(TFMGConfigs::onLoad);
ModConfigEvents.loading(CreateTFMG.MOD_ID).register(TFMGConfigs::onReload);
}
@SubscribeEvent
public static void onLoad(ModConfigEvent.Loading event) {
public static void onLoad(ModConfig modConfig) {
for (ConfigBase config : CONFIGS.values())
if (config.specification == event.getConfig()
if (config.specification == modConfig
.getSpec())
config.onLoad();
}
@SubscribeEvent
public static void onReload(ModConfigEvent.Reloading event) {
public static void onReload(ModConfig modConfig) {
for (ConfigBase config : CONFIGS.values())
if (config.specification == event.getConfig()
if (config.specification == modConfig
.getSpec())
config.onReload();
}

View File

@@ -0,0 +1,15 @@
package com.drmangotea.createindustry.data;
import com.drmangotea.createindustry.base.TFMGLangPartials;
import com.simibubi.create.foundation.data.LangMerger;
import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint;
import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator;
import static com.drmangotea.createindustry.CreateTFMG.*;
public class CreateTFMGData implements DataGeneratorEntrypoint {
@Override
public void onInitializeDataGenerator(FabricDataGenerator generator) {
generator.addProvider(true, new LangMerger(generator, MOD_ID, NAME, TFMGLangPartials.values()));
}
}

View File

@@ -0,0 +1,23 @@
package com.drmangotea.createindustry.events;
import com.drmangotea.createindustry.CreateTFMG;
import com.drmangotea.createindustry.worldgen.TFMGConfiguredFeatures;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
import net.minecraft.core.Holder;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.level.levelgen.placement.PlacedFeature;
public class CommonEvents {
public static void serverStarting(MinecraftServer event)
{
CreateTFMG.LOGGER.info("YEEEHAAW");
}
public static void register() {
final Holder<PlacedFeature> initializeOil = TFMGConfiguredFeatures.OIL_PLACED;
final Holder<PlacedFeature> initializeSimulatedOil = TFMGConfiguredFeatures.OIL_DEPOSIT_PLACED;
ServerLifecycleEvents.SERVER_STARTED.register(CommonEvents::serverStarting);
}
}

View File

@@ -1,13 +1,12 @@
package com.drmangotea.createindustry.items.weapons.explosives.thermite_grenades.fire;
import com.drmangotea.createindustry.CreateTFMG;
import io.github.fabricators_of_create.porting_lib.util.LazyRegistrar;
import io.github.fabricators_of_create.porting_lib.util.RegistryObject;
import net.minecraft.core.Registry;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.material.Material;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
/**
* making blockstate for fire in registrate is pain/idk how to do it
@@ -15,8 +14,8 @@ import net.minecraftforge.registries.RegistryObject;
*/
public class TFMGColoredFires {
public static final DeferredRegister<Block> BLOCKS =
DeferredRegister.create(ForgeRegistries.BLOCKS, CreateTFMG.MOD_ID);
public static final LazyRegistrar<Block> BLOCKS =
LazyRegistrar.create(Registry.BLOCK, CreateTFMG.MOD_ID);
public static final RegistryObject<Block> GREEN_FIRE = BLOCKS.register("green_fire",
@@ -33,7 +32,7 @@ public class TFMGColoredFires {
));
public static void register (IEventBus eventBus){
BLOCKS.register(eventBus);
public static void register (){
BLOCKS.register();
}
}

View File

@@ -5,10 +5,9 @@ import com.simibubi.create.content.processing.recipe.ProcessingRecipe;
import com.simibubi.create.content.processing.recipe.ProcessingRecipeBuilder.ProcessingRecipeParams;
import com.simibubi.create.foundation.fluid.CombinedTankWrapper;
import com.simibubi.create.foundation.fluid.FluidIngredient;
import io.github.fabricators_of_create.porting_lib.transfer.item.RecipeWrapper;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.items.wrapper.RecipeWrapper;
public class CastingRecipe extends ProcessingRecipe<RecipeWrapper> {

View File

@@ -1,12 +1,10 @@
package com.drmangotea.createindustry.recipes.coking;
import com.drmangotea.createindustry.registry.TFMGRecipeTypes;
import com.simibubi.create.AllRecipeTypes;
import com.simibubi.create.content.processing.recipe.ProcessingRecipe;
import com.simibubi.create.content.processing.recipe.ProcessingRecipeBuilder.ProcessingRecipeParams;
import com.simibubi.create.foundation.recipe.IRecipeTypeInfo;
import io.github.fabricators_of_create.porting_lib.transfer.item.RecipeWrapper;
import net.minecraft.world.level.Level;
import net.minecraftforge.items.wrapper.RecipeWrapper;
public class CokingRecipe extends ProcessingRecipe<RecipeWrapper> {

View File

@@ -5,13 +5,12 @@ package com.drmangotea.createindustry.recipes.distillation;
import com.drmangotea.createindustry.registry.TFMGRecipeTypes;
import com.simibubi.create.content.processing.recipe.ProcessingRecipe;
import com.simibubi.create.content.processing.recipe.ProcessingRecipeBuilder;
import com.simibubi.create.foundation.fluid.CombinedTankWrapper;
import com.simibubi.create.foundation.fluid.FluidIngredient;
import com.simibubi.create.foundation.item.SmartInventory;
import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank;
import io.github.fabricators_of_create.porting_lib.util.FluidStack;
import net.minecraft.core.NonNullList;
import net.minecraft.world.level.Level;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.templates.FluidTank;
public class DistillationRecipe extends ProcessingRecipe<SmartInventory> {
@@ -84,17 +83,17 @@ public class DistillationRecipe extends ProcessingRecipe<SmartInventory> {
public boolean matches(FluidTank inv,int outputs) {
public boolean matches(FluidTank inv, int outputs) {
int neededOutputs = fluidIngredients.toArray().length;
if(outputs !=neededOutputs)
return false;
if (inv.getFluidInTank(0).getAmount()==0)
if (inv.getFluidAmount()==0)
return false;
return fluidIngredients.get(0)
.test(inv.getFluidInTank(0));
.test(inv.getFluid());
}
@Override

View File

@@ -3,8 +3,8 @@ package com.drmangotea.createindustry.recipes.industrial_blasting;
import com.drmangotea.createindustry.registry.TFMGRecipeTypes;
import com.simibubi.create.content.processing.recipe.ProcessingRecipe;
import com.simibubi.create.content.processing.recipe.ProcessingRecipeBuilder.ProcessingRecipeParams;
import io.github.fabricators_of_create.porting_lib.transfer.item.RecipeWrapper;
import net.minecraft.world.level.Level;
import net.minecraftforge.items.wrapper.RecipeWrapper;
public class IndustrialBlastingRecipe extends ProcessingRecipe<RecipeWrapper> {

View File

@@ -22,8 +22,6 @@ import com.drmangotea.createindustry.blocks.electricity.cable_blocks.DiagonalCab
import com.drmangotea.createindustry.blocks.electricity.cable_blocks.copycat_cable_block.CopycatCableBlockModel;
import com.drmangotea.createindustry.blocks.electricity.capacitor.AccumulatorBlock;
import com.drmangotea.createindustry.blocks.electricity.capacitor.AccumulatorCTBehavior;
import com.drmangotea.createindustry.blocks.electricity.electrical_switch.ElectricalSwitchBlock;
import com.drmangotea.createindustry.blocks.electricity.electrical_switch.LeverGenerator;
import com.drmangotea.createindustry.blocks.electricity.generation.creative_generator.VoltageCubeBlock;
import com.drmangotea.createindustry.blocks.electricity.lights.neon.NeonTubeBlock;
import com.drmangotea.createindustry.blocks.electricity.voltmeter.energy_meter.EnergyMeterBlock;
@@ -108,12 +106,12 @@ import com.simibubi.create.content.kinetics.BlockStressDefaults;
import com.simibubi.create.content.kinetics.gearbox.GearboxBlock;
import com.simibubi.create.content.kinetics.motor.CreativeMotorGenerator;
import com.simibubi.create.content.kinetics.simpleRelays.BracketedKineticBlockModel;
import com.simibubi.create.foundation.block.ItemUseOverrides;
import com.simibubi.create.foundation.data.*;
import com.simibubi.create.foundation.utility.Couple;
import com.tterrag.registrate.providers.loot.RegistrateBlockLootTables;
import com.tterrag.registrate.util.DataIngredient;
import com.tterrag.registrate.util.entry.BlockEntry;
import me.alphamode.forgetags.Tags;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.tags.BlockTags;
import net.minecraft.tags.TagKey;
@@ -125,7 +123,6 @@ import net.minecraft.world.level.material.MaterialColor;
import net.minecraft.world.level.storage.loot.LootPool;
import net.minecraft.world.level.storage.loot.entries.LootItem;
import net.minecraft.world.level.storage.loot.functions.ApplyBonusCount;
import net.minecraftforge.common.Tags;
import static com.drmangotea.createindustry.CreateTFMG.REGISTRATE;
@@ -380,7 +377,7 @@ public class TFMGBlocks {
.requiresCorrectToolForDrops()
.sound(SoundType.STONE))
.transform(pickaxeOnly())
.loot((lt, b) -> lt.add(b,
.loot((lt, b) -> lt.method_16258(b,
RegistrateBlockLootTables.createSilkTouchDispatchTable(b,
RegistrateBlockLootTables.applyExplosionDecay(b, LootItem.lootTableItem(TFMGItems.RAW_LEAD.get())
.apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE))))))
@@ -397,7 +394,7 @@ public class TFMGBlocks {
.requiresCorrectToolForDrops()
.sound(SoundType.DEEPSLATE))
.transform(pickaxeOnly())
.loot((lt, b) -> lt.add(b,
.loot((lt, b) -> lt.method_16258(b,
RegistrateBlockLootTables.createSilkTouchDispatchTable(b,
RegistrateBlockLootTables.applyExplosionDecay(b, LootItem.lootTableItem(TFMGItems.RAW_LEAD.get())
.apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE))))))
@@ -414,7 +411,7 @@ public class TFMGBlocks {
.requiresCorrectToolForDrops()
.sound(SoundType.STONE))
.transform(pickaxeOnly())
.loot((lt, b) -> lt.add(b,
.loot((lt, b) -> lt.method_16258(b,
RegistrateBlockLootTables.createSilkTouchDispatchTable(b,
RegistrateBlockLootTables.applyExplosionDecay(b, LootItem.lootTableItem(TFMGItems.RAW_NICKEL.get())
.apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE))))))
@@ -431,7 +428,7 @@ public class TFMGBlocks {
.requiresCorrectToolForDrops()
.sound(SoundType.DEEPSLATE))
.transform(pickaxeOnly())
.loot((lt, b) -> lt.add(b,
.loot((lt, b) -> lt.method_16258(b,
RegistrateBlockLootTables.createSilkTouchDispatchTable(b,
RegistrateBlockLootTables.applyExplosionDecay(b, LootItem.lootTableItem(TFMGItems.RAW_NICKEL.get())
.apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE))))))
@@ -448,7 +445,7 @@ public class TFMGBlocks {
.requiresCorrectToolForDrops()
.sound(SoundType.STONE))
.transform(pickaxeOnly())
.loot((lt, b) -> lt.add(b,
.loot((lt, b) -> lt.method_16258(b,
RegistrateBlockLootTables.createSilkTouchDispatchTable(b,
RegistrateBlockLootTables.applyExplosionDecay(b, LootItem.lootTableItem(TFMGItems.RAW_LITHIUM.get())
.apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE))))))
@@ -465,7 +462,7 @@ public class TFMGBlocks {
.requiresCorrectToolForDrops()
.sound(SoundType.DEEPSLATE))
.transform(pickaxeOnly())
.loot((lt, b) -> lt.add(b,
.loot((lt, b) -> lt.method_16258(b,
RegistrateBlockLootTables.createSilkTouchDispatchTable(b,
RegistrateBlockLootTables.applyExplosionDecay(b, LootItem.lootTableItem(TFMGItems.RAW_LITHIUM.get())
.apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE))))))
@@ -511,7 +508,7 @@ public class TFMGBlocks {
.properties(p -> p.color(MaterialColor.TERRACOTTA_RED))
//.transform(pickaxeOnly())
.blockstate(simpleCubeAll("fireclay"))
.loot((p, b) -> p.add(b, RegistrateBlockLootTables.createSingleItemTable(TFMGItems.FIRECLAY_BALL.get())
.loot((p, b) -> p.method_16258(b, RegistrateBlockLootTables.createSingleItemTable(TFMGItems.FIRECLAY_BALL.get())
.withPool(RegistrateBlockLootTables.applyExplosionCondition(TFMGItems.FIRECLAY_BALL.get(), LootPool.lootPool()
.add(LootItem.lootTableItem(TFMGItems.FIRECLAY_BALL.get()))))
.withPool(RegistrateBlockLootTables.applyExplosionCondition(TFMGItems.FIRECLAY_BALL.get(), LootPool.lootPool()
@@ -1963,7 +1960,7 @@ public class TFMGBlocks {
.lang("Concrete Wall")
.register();
REGISTRATE.block("concrete_stairs", p -> new StairBlock(() -> TFMGBlocks.CONCRETE.get().defaultBlockState(), p))
REGISTRATE.block("concrete_stairs", p -> new StairBlock(TFMGBlocks.CONCRETE.get().defaultBlockState(), p))
.initialProperties(() -> Blocks.STONE)
.properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY))
.properties(p -> p.requiresCorrectToolForDrops())
@@ -2041,7 +2038,7 @@ public class TFMGBlocks {
.lang(upperCaseColor + " Concrete Wall")
.register();
REGISTRATE.block(color + "_concrete_stairs", p -> new StairBlock(() -> TFMGBlocks.CONCRETE.get().defaultBlockState(), p))
REGISTRATE.block(color + "_concrete_stairs", p -> new StairBlock(TFMGBlocks.CONCRETE.get().defaultBlockState(), p))
.initialProperties(() -> Blocks.STONE)
.properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY))
.properties(p -> p.requiresCorrectToolForDrops())
@@ -2169,7 +2166,7 @@ public class TFMGBlocks {
//.lang(displayName + " Wall")
.register();
//
REGISTRATE.block(name + "_stairs", p -> new StairBlock(() -> TFMGBlocks.CONCRETE.get().defaultBlockState(), p))
REGISTRATE.block(name + "_stairs", p -> new StairBlock(TFMGBlocks.CONCRETE.get().defaultBlockState(), p))
.initialProperties(() -> properties)
.properties(p -> p.color(color))
.properties(p -> p.sound(sound))

View File

@@ -1,8 +1,5 @@
package com.drmangotea.createindustry.registry;
import com.drmangotea.createindustry.CreateTFMG;
import com.drmangotea.createindustry.base.util.TFMGUtils;
import com.drmangotea.createindustry.blocks.concrete.ConcreteFluid;
@@ -13,15 +10,20 @@ import com.simibubi.create.AllTags;
import com.simibubi.create.content.decoration.palettes.AllPaletteStoneTypes;
import com.simibubi.create.content.fluids.VirtualFluid;
import com.tterrag.registrate.fabric.SimpleFlowableFluid;
import com.tterrag.registrate.util.entry.FluidEntry;
import net.fabricmc.fabric.api.transfer.v1.fluid.FluidConstants;
import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant;
import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariantAttributeHandler;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.FluidTags;
import net.minecraft.tags.TagKey;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.material.FlowingFluid;
import net.minecraft.world.level.material.Fluid;
import net.minecraftforge.common.ForgeMod;
import net.minecraftforge.fluids.FluidInteractionRegistry;
import net.minecraftforge.fluids.ForgeFlowingFluid;
import org.jetbrains.annotations.Nullable;
import static com.drmangotea.createindustry.CreateTFMG.REGISTRATE;
@@ -63,7 +65,7 @@ public class TFMGFluids {
LPG = gas("lpg",TFMGTags.TFMGFluidTags.LPG.tag,TFMGTags.TFMGFluidTags.FLAMMABLE.tag),
NEON = gas("neon")
;
public static final FluidEntry<ForgeFlowingFluid.Flowing>
public static final FluidEntry<SimpleFlowableFluid>
CRUDE_OIL = flammableFluid("crude_oil",TFMGTags.TFMGFluidTags.CRUDE_OIL.tag),
HEAVY_OIL = flammableFluid("heavy_oil",TFMGTags.TFMGFluidTags.HEAVY_OIL.tag),
LUBRICATION_OIL = flammableFluid("lubrication_oil",TFMGTags.TFMGFluidTags.FLAMMABLE.tag),
@@ -78,19 +80,19 @@ public class TFMGFluids {
public static final FluidEntry<ForgeFlowingFluid.Flowing> COOLING_FLUID =
public static final FluidEntry<ConcreteFluid> COOLING_FLUID =
REGISTRATE.fluid("cooling_fluid",COOLING_FLUID_STILL_RL,COOLING_FLUID_FLOW_RL,
ConcreteFluidType.create(0x333333,
() -> 1f / 24f ))
p -> new ConcreteFluid(p)
// ConcreteFluidType.create(0x333333,
// () -> 1f / 24f )
)
.lang("Cooling Fluid")
.properties(b -> b.viscosity(1000)
.density(1000))
.fluidProperties(p -> p.levelDecreasePerBlock(1)
.tickRate(10)
.slopeFindDistance(5)
.explosionResistance(100f))
.source(ForgeFlowingFluid.Source::new)
.flowSpeed(5)
.blastResistance(100f))
.fluidAttributes(() -> new AttributeHandler("block.create.honey", 1000, 1000))
.source(SimpleFlowableFluid.Source::new)
.bucket()
// .tag(AllTags.forgeItemTag("buckets/napalm"))
.build()
@@ -99,19 +101,18 @@ public class TFMGFluids {
public static final FluidEntry<ForgeFlowingFluid.Flowing> SULFURIC_ACID =
public static final FluidEntry<SimpleFlowableFluid> SULFURIC_ACID =
REGISTRATE.fluid("sulfuric_acid",SULFURIC_AXID_STILL_RL,SULFURIC_AXID_FLOW_RL,
AcidFluidType.create(0x333333,
() -> 1f / 24f ))
.lang("Sulfuric Acid")
.properties(b -> b.viscosity(1000)
.density(1000))
.fluidProperties(p -> p.levelDecreasePerBlock(1)
.tickRate(10)
.slopeFindDistance(5)
.explosionResistance(100f))
.source(ForgeFlowingFluid.Source::new)
.flowSpeed(5)
.blastResistance(100f))
.fluidAttributes(() -> new AttributeHandler("block.create.honey", 2000, 1400))
.source(SimpleFlowableFluid.Source::new)
.bucket()
// .tag(AllTags.forgeItemTag("buckets/napalm"))
.build()
@@ -123,36 +124,32 @@ public class TFMGFluids {
public static final FluidEntry<ForgeFlowingFluid.Flowing> LIQUID_CONCRETE =
public static final FluidEntry<SimpleFlowableFluid> LIQUID_CONCRETE =
REGISTRATE.fluid("liquid_concrete",CONCRETE_RL,CONCRETE_RL,
ConcreteFluidType.create(0x333333,
() -> 1f / 24f ))
.lang("Liquid Concrete")
.properties(b -> b.viscosity(9999)
.density(9999))
.fluidProperties(p -> p.levelDecreasePerBlock(0)
.tickRate(99999)
.slopeFindDistance(0)
.explosionResistance(4f)
)
.flowSpeed(0)
.blastResistance(4f))
.fluidAttributes(() -> new AttributeHandler("block.create.honey", 9999, 9999))
.source(ConcreteFluid.Source::new)
.bucket()
//.tag(AllTags.forgeItemTag("buckets/napalm"))
.build()
.register();
public static final FluidEntry<ForgeFlowingFluid.Flowing> LIQUID_ASPHALT =
public static final FluidEntry<SimpleFlowableFluid> LIQUID_ASPHALT =
REGISTRATE.fluid("liquid_asphalt", ASPHALT_RL, ASPHALT_RL,
ConcreteFluidType.create(0x333333,
() -> 1f / 24f ))
.lang("Liquid Asphalt")
.properties(b -> b.viscosity(9999)
.density(9999))
.fluidProperties(p -> p.levelDecreasePerBlock(0)
.tickRate(99999)
.slopeFindDistance(0)
.explosionResistance(4f)
)
.flowSpeed(0)
.blastResistance(4f))
.fluidAttributes(() -> new AttributeHandler("block.create.honey", 9999, 9999))
.source(AsphaltFluid.Source::new)
.bucket()
//.tag(AllTags.forgeItemTag("buckets/napalm"))
@@ -161,53 +158,48 @@ public class TFMGFluids {
public static final FluidEntry<ForgeFlowingFluid.Flowing> LIQUID_PLASTIC =
public static final FluidEntry<SimpleFlowableFluid> LIQUID_PLASTIC =
REGISTRATE.fluid("liquid_plastic",PLASTIC_STILL_RL,PLASTIC_FLOW_RL
, PlasticFluidType.create(0xc4c4c4,
() -> 1f / 24f ))
.lang("Liquid Plastic")
.properties(b -> b.viscosity(1500)
.density(1000))
.fluidProperties(p -> p.levelDecreasePerBlock(1)
.tickRate(10)
.slopeFindDistance(2)
.explosionResistance(100f))
.source(ForgeFlowingFluid.Source::new)
.flowSpeed(2)
.blastResistance(100f))
.fluidAttributes(() -> new AttributeHandler("block.create.honey", 1500, 1000))
.source(SimpleFlowableFluid.Source::new)
.bucket()
.tag(AllTags.forgeItemTag("buckets/plastic"))
.build()
.register();
public static final FluidEntry<ForgeFlowingFluid.Flowing> MOLTEN_STEEL =
public static final FluidEntry<SimpleFlowableFluid> MOLTEN_STEEL =
REGISTRATE.fluid("molten_steel",MOLTEN_STEEL_STILL_RL,MOLTEN_STEEL_FLOW_RL,
HotFluidType.create(0xfbfbbb, () -> 1f / 24f ))
.lang("Molten Steel")
.properties(b -> b.viscosity(1500)
.density(1000))
.fluidProperties(p -> p.levelDecreasePerBlock(1)
.tickRate(10)
.slopeFindDistance(2)
.explosionResistance(100f))
.flowSpeed(2)
.blastResistance(100f))
.fluidAttributes(() -> new AttributeHandler("block.create.honey", 1500, 1000))
.tag(TFMGTags.TFMGFluidTags.MOLTEN_STEEL.tag)
.source(ForgeFlowingFluid.Source::new)
.source(SimpleFlowableFluid.Source::new)
.bucket()
.tag(AllTags.forgeItemTag("buckets/steel"))
.build()
.register();
public static final FluidEntry<ForgeFlowingFluid.Flowing> MOLTEN_SLAG =
public static final FluidEntry<SimpleFlowableFluid> MOLTEN_SLAG =
REGISTRATE.fluid("molten_slag",MOLTEN_SLAG_STILL_RL,MOLTEN_SLAG_FLOW_RL ,
HotFluidType.create(0xfbfbbb, () -> 1f / 24f ))
.lang("Molten Slag")
.properties(b -> b.viscosity(1500)
.density(1000))
.fluidProperties(p -> p.levelDecreasePerBlock(1)
.tickRate(10)
.slopeFindDistance(2)
.explosionResistance(100f))
.source(ForgeFlowingFluid.Source::new)
.flowSpeed(2)
.blastResistance(100f))
.fluidAttributes(() -> new AttributeHandler("block.create.honey", 1500, 1000))
.source(SimpleFlowableFluid.Source::new)
.bucket()
.tag(AllTags.forgeItemTag("buckets/slag"))
.build()
@@ -217,7 +209,7 @@ public class TFMGFluids {
////
@SafeVarargs
public static FluidEntry<ForgeFlowingFluid.Flowing> fuel(String name, TagKey<Fluid>... tags) {
public static FluidEntry<SimpleFlowableFluid> fuel(String name, TagKey<Fluid>... tags) {
TagKey<Fluid>[] fuelTag = new TagKey[]{TFMGTags.TFMGFluidTags.FUEL.tag};
@@ -232,19 +224,16 @@ public class TFMGFluids {
}
@SafeVarargs
public static FluidEntry<ForgeFlowingFluid.Flowing> flammableFluid(String name, TagKey<Fluid>... tags){
public static FluidEntry<SimpleFlowableFluid> flammableFluid(String name, TagKey<Fluid>... tags){
return REGISTRATE.fluid(name,CreateTFMG.asResource("fluid/"+name+"_still"),CreateTFMG.asResource("fluid/"+name+"_flow"),
FlammableFluidType.create(0x606060,
() -> 1f / 24f ))
.lang(TFMGUtils.fromId(name))
.properties(b -> b.viscosity(1000)
.density(1000))
.fluidProperties(p -> p.levelDecreasePerBlock(1)
.tickRate(10)
.slopeFindDistance(5)
.explosionResistance(100f))
.flowSpeed(2)
.blastResistance(100f))
.fluidAttributes(() -> new AttributeHandler("block.create.honey", 1000, 1000))
.tag(tags)
.source(FlammableFluid.Source::new)
.bucket()
@@ -255,6 +244,7 @@ public class TFMGFluids {
@SafeVarargs
public static FluidEntry<VirtualFluid> gas(String name, TagKey<Fluid>... tags){
//ignore error, AW handles it
TagKey<Fluid> tag = FluidTags.create(CreateTFMG.asResource(name));
TagKey<Fluid>[] fluidTags = tags;
@@ -311,11 +301,11 @@ public class TFMGFluids {
// CRUDE_OIL.get().getFluidType(),
// fluidState -> TFMGFluids.POLLUTED_WATER.getBlock().get().defaultBlockState()));
FluidInteractionRegistry.addInteraction( TFMGFluids.COOLING_FLUID.get().getFluidType(), new FluidInteractionRegistry.InteractionInformation(
ForgeMod.LAVA_TYPE.get(),
fluidState -> AllPaletteStoneTypes.LIMESTONE.baseBlock
.get()
.defaultBlockState()));
// FluidInteractionRegistry.addInteraction( TFMGFluids.COOLING_FLUID.get().getFluidType(), new FluidInteractionRegistry.InteractionInformation(
// ForgeMod.LAVA_TYPE.get(),
// fluidState -> AllPaletteStoneTypes.LIMESTONE.baseBlock
// .get()
// .defaultBlockState()));
@@ -323,10 +313,29 @@ public class TFMGFluids {
}
//this isnt public in create for some reason
record AttributeHandler(Component name, int viscosity, boolean lighterThanAir) implements FluidVariantAttributeHandler {
private AttributeHandler(String key, int viscosity, int density) {
this(Component.translatable(key), viscosity, density <= 0);
}
public AttributeHandler(String key) {
this(key, FluidConstants.WATER_VISCOSITY, 1000);
}
@Override
public Component getName(FluidVariant fluidVariant) {
return name.copy();
}
@Override
public int getViscosity(FluidVariant variant, @Nullable Level world) {
return viscosity;
}
@Override
public boolean isLighterThanAir(FluidVariant variant) {
return lighterThanAir;
}
}
}

View File

@@ -8,10 +8,10 @@ import com.simibubi.create.foundation.gui.UIRenderHelper;
import com.simibubi.create.foundation.gui.element.ScreenElement;
import com.simibubi.create.foundation.utility.Color;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.gui.GuiComponent;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
public enum TFMGGuiTextures implements ScreenElement {
@@ -46,25 +46,25 @@ public enum TFMGGuiTextures implements ScreenElement {
this.startY = startY;
}
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
public void bind() {
RenderSystem.setShaderTexture(0, location);
}
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
@Override
public void render(PoseStack ms, int x, int y) {
bind();
GuiComponent.blit(ms, x, y, 0, startX, startY, width, height, 256, 256);
}
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
public void render(PoseStack ms, int x, int y, GuiComponent component) {
bind();
component.blit(ms, x, y, startX, startY, width, height);
}
@OnlyIn(Dist.CLIENT)
@Environment(EnvType.CLIENT)
public void render(PoseStack ms, int x, int y, Color c) {
bind();
UIRenderHelper.drawColoredTexture(ms, c, x, y, startX, startY, width, height);

View File

@@ -25,11 +25,11 @@ import com.simibubi.create.foundation.data.AssetLookup;
import com.simibubi.create.foundation.item.ItemDescription;
import com.tterrag.registrate.util.DataIngredient;
import com.tterrag.registrate.util.entry.ItemEntry;
import me.alphamode.forgetags.Tags;
import net.minecraft.core.Registry;
import net.minecraft.tags.TagKey;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.item.*;
import net.minecraftforge.common.Tags;
import static com.drmangotea.createindustry.CreateTFMG.REGISTRATE;
import static com.drmangotea.createindustry.items.weapons.explosives.thermite_grenades.ChemicalColor.*;

View File

@@ -3,22 +3,21 @@ package com.drmangotea.createindustry.registry;
import com.drmangotea.createindustry.CreateTFMG;
import com.drmangotea.createindustry.base.effects.HellFireEffect;
import io.github.fabricators_of_create.porting_lib.util.LazyRegistrar;
import io.github.fabricators_of_create.porting_lib.util.RegistryObject;
import net.minecraft.core.Registry;
import net.minecraft.world.effect.MobEffect;
import net.minecraft.world.effect.MobEffectCategory;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
import java.awt.*;
public class TFMGMobEffects {
public static final DeferredRegister<MobEffect> MOB_EFFECTS = DeferredRegister.create(ForgeRegistries.MOB_EFFECTS, CreateTFMG.MOD_ID);
public static final LazyRegistrar<MobEffect> MOB_EFFECTS = LazyRegistrar.create(Registry.MOB_EFFECT, CreateTFMG.MOD_ID);
public static final RegistryObject<MobEffect> HELLFIRE = MOB_EFFECTS.register("hellfire", () -> new HellFireEffect(MobEffectCategory.HARMFUL, new Color(150, 0, 0, 200).getRGB()));
public static void register(IEventBus modEventBus){
MOB_EFFECTS.register(modEventBus);
public static void register(){
MOB_EFFECTS.register();
}
}

View File

@@ -5,21 +5,18 @@ import com.drmangotea.createindustry.items.weapons.advanced_potato_cannon.Advanc
import com.drmangotea.createindustry.items.weapons.quad_potato_cannon.QuadPotatoCannonPacket;
import com.simibubi.create.foundation.networking.SimplePacketBase;
import io.github.fabricators_of_create.porting_lib.util.NetworkDirection;
import me.pepperbell.simplenetworking.SimpleChannel;
import net.minecraft.core.BlockPos;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.Level;
import net.minecraftforge.network.NetworkDirection;
import net.minecraftforge.network.NetworkEvent;
import net.minecraftforge.network.NetworkRegistry;
import net.minecraftforge.network.PacketDistributor;
import net.minecraftforge.network.simple.SimpleChannel;
import java.util.function.BiConsumer;
import java.util.function.Function;
import java.util.function.Supplier;
import static net.minecraftforge.network.NetworkDirection.PLAY_TO_CLIENT;
import static io.github.fabricators_of_create.porting_lib.util.NetworkDirection.PLAY_TO_CLIENT;
public enum TFMGPackets {

View File

@@ -1,27 +1,6 @@
package com.drmangotea.createindustry.registry;
import com.simibubi.create.AllCreativeModeTabs;
import com.simibubi.create.AllSpriteShifts;
import com.simibubi.create.Create;
import com.simibubi.create.content.decoration.palettes.*;
import com.simibubi.create.foundation.block.connected.HorizontalCTBehaviour;
import com.simibubi.create.foundation.block.connected.SimpleCTBehaviour;
import com.simibubi.create.foundation.data.BlockStateGen;
import com.simibubi.create.foundation.data.WindowGen;
import com.tterrag.registrate.util.DataIngredient;
import com.tterrag.registrate.util.entry.BlockEntry;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.BlockTags;
import net.minecraft.world.item.Items;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.GlassBlock;
import net.minecraft.world.level.block.state.properties.WoodType;
import net.minecraft.world.level.material.MaterialColor;
import net.minecraftforge.common.Tags;
import static com.drmangotea.createindustry.CreateTFMG.REGISTRATE;
import static com.simibubi.create.foundation.data.WindowGen.*;
public class TFMGPaletteBlocks {

View File

@@ -8,12 +8,12 @@ import com.simibubi.create.AllTags;
import com.simibubi.create.foundation.data.CreateRegistrate;
import com.simibubi.create.foundation.utility.Lang;
import com.tterrag.registrate.util.nullness.NonNullSupplier;
import net.minecraft.core.Registry;
import net.minecraft.tags.TagKey;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.material.MaterialColor;
import net.minecraftforge.registries.ForgeRegistries;
import java.util.function.Function;
@@ -62,7 +62,7 @@ public enum TFMGPaletteStoneTypes {
paletteStoneVariants.baseBlock = baseBlock;
String id = Lang.asId(paletteStoneVariants.name());
paletteStoneVariants.materialTag =
AllTags.optionalTag(ForgeRegistries.ITEMS, CreateTFMG.asResource("stone_types/" + id));
AllTags.optionalTag(Registry.ITEM, CreateTFMG.asResource("stone_types/" + id));
paletteStoneVariants.variants = new TFMGPalettesVariantEntry(id, paletteStoneVariants);
}
}

View File

@@ -3,18 +3,17 @@ package com.drmangotea.createindustry.registry;
import com.drmangotea.createindustry.CreateTFMG;
import com.drmangotea.createindustry.base.ElectricSparkParticle;
import com.simibubi.create.content.equipment.bell.SoulParticle;
import com.simibubi.create.foundation.particle.ICustomParticleData;
import com.simibubi.create.foundation.utility.Lang;
import io.github.fabricators_of_create.porting_lib.util.LazyRegistrar;
import io.github.fabricators_of_create.porting_lib.util.RegistryObject;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.Minecraft;
import net.minecraft.client.particle.ParticleEngine;
import net.minecraft.core.Registry;
import net.minecraft.core.particles.ParticleOptions;
import net.minecraft.core.particles.ParticleType;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.client.event.RegisterParticleProvidersEvent;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
import java.util.function.Supplier;
@@ -30,18 +29,21 @@ public enum TFMGParticleTypes {
entry = new ParticleEntry<>(name, typeFactory);
}
public static void register(IEventBus modEventBus) {
ParticleEntry.REGISTER.register(modEventBus);
public static void register() {
ParticleEntry.REGISTER.register();
}
@OnlyIn(Dist.CLIENT)
public static void registerFactories(RegisterParticleProvidersEvent event) {
@Environment(EnvType.CLIENT)
public static void registerFactories() {
ParticleEngine particles = Minecraft.getInstance().particleEngine;
for (TFMGParticleTypes particle : values())
particle.entry.registerFactory(event);
particle.entry.registerFactory(particles);
}
public ParticleType<?> get() {
return entry.object.get();
//don't question it, fabric is stupid /:
RegistryObject<? extends ParticleType<?>> object = entry.object;
return object.get();
}
public String parameter() {
@@ -49,7 +51,7 @@ public enum TFMGParticleTypes {
}
private static class ParticleEntry<D extends ParticleOptions> {
private static final DeferredRegister<ParticleType<?>> REGISTER = DeferredRegister.create(ForgeRegistries.PARTICLE_TYPES, CreateTFMG.MOD_ID);
private static final LazyRegistrar<ParticleType<?>> REGISTER = LazyRegistrar.create(Registry.PARTICLE_TYPE, CreateTFMG.MOD_ID);
private final String name;
private final Supplier<? extends ICustomParticleData<D>> typeFactory;
@@ -62,8 +64,8 @@ public enum TFMGParticleTypes {
object = REGISTER.register(name, () -> this.typeFactory.get().createType());
}
@OnlyIn(Dist.CLIENT)
public void registerFactory(RegisterParticleProvidersEvent event) {
@Environment(EnvType.CLIENT)
public void registerFactory(ParticleEngine event) {
typeFactory.get()
.register(object.get(), event);
}

View File

@@ -1,24 +1,21 @@
package com.drmangotea.createindustry.registry;
import com.drmangotea.createindustry.CreateTFMG;
import io.github.fabricators_of_create.porting_lib.util.LazyRegistrar;
import io.github.fabricators_of_create.porting_lib.util.RegistryObject;
import net.minecraft.core.Registry;
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.item.alchemy.Potion;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
public class TFMGPotions {
public static final DeferredRegister<Potion> POTIONS
= DeferredRegister.create(ForgeRegistries.POTIONS, CreateTFMG.MOD_ID);
public static final LazyRegistrar<Potion> POTIONS
= LazyRegistrar.create(Registry.POTION, CreateTFMG.MOD_ID);
public static final RegistryObject<Potion> HELLFIRE_POTION = POTIONS.register("hellfire_potion",
() -> new Potion(new MobEffectInstance(TFMGMobEffects.HELLFIRE.get(), 600, 0)));
public static void register(IEventBus eventBus) {
POTIONS.register(eventBus);
public static void register() {
POTIONS.register();
}
}

View File

@@ -13,6 +13,8 @@ import com.simibubi.create.content.processing.recipe.ProcessingRecipeBuilder.Pro
import com.simibubi.create.content.processing.recipe.ProcessingRecipeSerializer;
import com.simibubi.create.foundation.recipe.IRecipeTypeInfo;
import com.simibubi.create.foundation.utility.Lang;
import io.github.fabricators_of_create.porting_lib.util.LazyRegistrar;
import io.github.fabricators_of_create.porting_lib.util.RegistryObject;
import net.minecraft.core.Registry;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.Container;
@@ -21,10 +23,6 @@ import net.minecraft.world.item.crafting.RecipeSerializer;
import net.minecraft.world.item.crafting.RecipeType;
import net.minecraft.world.item.crafting.ShapedRecipe;
import net.minecraft.world.level.Level;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
import org.jetbrains.annotations.Nullable;
import java.util.Optional;
@@ -88,11 +86,11 @@ WELDING(WeldingRecipe::new)
};
}
public static void register(IEventBus modEventBus) {
ShapedRecipe.setCraftingSize(9, 9);
public static void register() {
// ShapedRecipe.setCraftingSize(9, 9); im so confused about this
Registers.SERIALIZER_REGISTER.register(modEventBus);
Registers.TYPE_REGISTER.register(modEventBus);
Registers.SERIALIZER_REGISTER.register();
Registers.TYPE_REGISTER.register();
}
@Override
@@ -122,8 +120,8 @@ WELDING(WeldingRecipe::new)
private static class Registers {
private static final DeferredRegister<RecipeSerializer<?>> SERIALIZER_REGISTER = DeferredRegister.create(ForgeRegistries.RECIPE_SERIALIZERS, CreateTFMG.MOD_ID);
private static final DeferredRegister<RecipeType<?>> TYPE_REGISTER = DeferredRegister.create(Registry.RECIPE_TYPE_REGISTRY, CreateTFMG.MOD_ID);
private static final LazyRegistrar<RecipeSerializer<?>> SERIALIZER_REGISTER = LazyRegistrar.create(Registry.RECIPE_SERIALIZER, CreateTFMG.MOD_ID);
private static final LazyRegistrar<RecipeType<?>> TYPE_REGISTER = LazyRegistrar.create(Registry.RECIPE_TYPE_REGISTRY, CreateTFMG.MOD_ID);
}
}

View File

@@ -8,6 +8,7 @@ import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.simibubi.create.Create;
import com.tterrag.registrate.fabric.RegistryObject;
import net.minecraft.core.Registry;
import net.minecraft.core.Vec3i;
import net.minecraft.data.CachedOutput;
@@ -21,9 +22,6 @@ import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.Level;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegisterEvent;
import net.minecraftforge.registries.RegistryObject;
import java.io.IOException;
import java.nio.file.Path;
@@ -68,11 +66,9 @@ public class TFMGSoundEvents {
entry.prepare();
}
public static void register(RegisterEvent event) {
event.register(Registry.SOUND_EVENT_REGISTRY, helper -> {
for (TFMGSoundEvents.SoundEntry entry : ALL.values())
entry.register(helper);
});
public static void register() {
for (TFMGSoundEvents.SoundEntry entry : ALL.values())
entry.register();
}
public static JsonObject provideLangEntries() {
@@ -230,7 +226,7 @@ public class TFMGSoundEvents {
public abstract void prepare();
public abstract void register(RegisterEvent.RegisterHelper<SoundEvent> registry);
public abstract void register();
public abstract void write(JsonObject json);
@@ -312,23 +308,22 @@ public class TFMGSoundEvents {
for (int i = 0; i < wrappedEvents.size(); i++) {
TFMGSoundEvents.ConfiguredSoundEvent wrapped = wrappedEvents.get(i);
ResourceLocation location = getIdOf(i);
RegistryObject<SoundEvent> event = RegistryObject.create(location, ForgeRegistries.SOUND_EVENTS);
SoundEvent event = new SoundEvent(location);
compiledEvents.add(new TFMGSoundEvents.WrappedSoundEntry.CompiledSoundEvent(event, wrapped.volume(), wrapped.pitch()));
}
}
@Override
public void register(RegisterEvent.RegisterHelper<SoundEvent> helper) {
for (TFMGSoundEvents.WrappedSoundEntry.CompiledSoundEvent compiledEvent : compiledEvents) {
ResourceLocation location = compiledEvent.event().getId();
helper.register(location, new SoundEvent(location));
public void register() {
for (TFMGSoundEvents.WrappedSoundEntry.CompiledSoundEvent event : compiledEvents) {
Registry.register(Registry.SOUND_EVENT, event.event.getLocation(), event.event);
}
}
@Override
public SoundEvent getMainEvent() {
return compiledEvents.get(0)
.event().get();
.event;
}
protected ResourceLocation getIdOf(int i) {
@@ -360,7 +355,7 @@ public class TFMGSoundEvents {
@Override
public void play(Level world, Player entity, double x, double y, double z, float volume, float pitch) {
for (TFMGSoundEvents.WrappedSoundEntry.CompiledSoundEvent event : compiledEvents) {
world.playSound(entity, x, y, z, event.event().get(), category, event.volume() * volume,
world.playSound(entity, x, y, z, event.event, category, event.volume() * volume,
event.pitch() * pitch);
}
}
@@ -368,12 +363,12 @@ public class TFMGSoundEvents {
@Override
public void playAt(Level world, double x, double y, double z, float volume, float pitch, boolean fade) {
for (TFMGSoundEvents.WrappedSoundEntry.CompiledSoundEvent event : compiledEvents) {
world.playLocalSound(x, y, z, event.event().get(), category, event.volume() * volume,
world.playLocalSound(x, y, z, event.event, category, event.volume() * volume,
event.pitch() * pitch, fade);
}
}
private record CompiledSoundEvent(RegistryObject<SoundEvent> event, float volume, float pitch) {
private record CompiledSoundEvent(SoundEvent event, float volume, float pitch) {
}
}
@@ -381,7 +376,7 @@ public class TFMGSoundEvents {
private static class CustomSoundEntry extends TFMGSoundEvents.SoundEntry {
protected List<ResourceLocation> variants;
protected RegistryObject<SoundEvent> event;
protected SoundEvent event;
public CustomSoundEntry(ResourceLocation id, List<ResourceLocation> variants, String subtitle,
SoundSource category, int attenuationDistance) {
@@ -391,17 +386,17 @@ public class TFMGSoundEvents {
@Override
public void prepare() {
event = RegistryObject.create(id, ForgeRegistries.SOUND_EVENTS);
event = new SoundEvent(id);
}
public void register(RegisterEvent.RegisterHelper<SoundEvent> helper) {
ResourceLocation location = event.getId();
helper.register(location, new SoundEvent(location));
@Override
public void register() {
Registry.register(Registry.SOUND_EVENT, event.getLocation(), event);
}
@Override
public SoundEvent getMainEvent() {
return event.get();
return event;
}
@Override
@@ -433,12 +428,12 @@ public class TFMGSoundEvents {
@Override
public void play(Level world, Player entity, double x, double y, double z, float volume, float pitch) {
world.playSound(entity, x, y, z, event.get(), category, volume, pitch);
world.playSound(entity, x, y, z, event, category, volume, pitch);
}
@Override
public void playAt(Level world, double x, double y, double z, float volume, float pitch, boolean fade) {
world.playLocalSound(x, y, z, event.get(), category, volume, pitch, fade);
world.playLocalSound(x, y, z, event, category, volume, pitch, fade);
}
}

View File

@@ -2,54 +2,49 @@ package com.drmangotea.createindustry.registry;
import com.drmangotea.createindustry.CreateTFMG;
import com.simibubi.create.Create;
import com.simibubi.create.foundation.utility.Lang;
import net.minecraft.core.DefaultedRegistry;
import net.minecraft.core.HolderSet;
import net.minecraft.core.Registry;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.BlockTags;
import net.minecraft.tags.FluidTags;
import net.minecraft.tags.ItemTags;
import net.minecraft.tags.TagKey;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.RecipeSerializer;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.Fluid;
import net.minecraft.world.level.material.FluidState;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.IForgeRegistry;
import java.util.Collections;
import java.util.Map;
import static com.drmangotea.createindustry.registry.TFMGTags.NameSpace.FORGE;
import static com.drmangotea.createindustry.registry.TFMGTags.NameSpace.MOD;
public class TFMGTags {
public static <T> TagKey<T> optionalTag(IForgeRegistry<T> registry,
public static <T> TagKey<T> optionalTag(Registry<T> registry,
ResourceLocation id) {
return registry.tags()
.createOptionalTagKey(id, Collections.emptySet());
return TagKey.create(registry.key(), id);
}
public static <T> TagKey<T> forgeTag(IForgeRegistry<T> registry, String path) {
public static <T> TagKey<T> forgeTag(DefaultedRegistry<T> registry, String path) {
return optionalTag(registry, new ResourceLocation("forge", path));
}
public static TagKey<Block> forgeBlockTag(String path) {
return forgeTag(ForgeRegistries.BLOCKS, path);
return forgeTag(Registry.BLOCK, path);
}
public static TagKey<Item> forgeItemTag(String path) {
return forgeTag(ForgeRegistries.ITEMS, path);
return forgeTag(Registry.ITEM, path);
}
public static TagKey<Fluid> forgeFluidTag(String path) {
return forgeTag(ForgeRegistries.FLUIDS, path);
return forgeTag(Registry.FLUID, path);
}
public enum NameSpace {
@@ -121,9 +116,9 @@ public class TFMGTags {
TFMGFluidTags(TFMGTags.NameSpace namespace, String path, boolean optional, boolean alwaysDatagen) {
ResourceLocation id = new ResourceLocation(namespace.id, path == null ? Lang.asId(name()) : path);
if (optional) {
tag = optionalTag(ForgeRegistries.FLUIDS, id);
tag = optionalTag(Registry.FLUID, id);
} else {
tag = FluidTags.create(id);
tag = FluidTags.create(String.valueOf(id));
}
this.alwaysDatagen = alwaysDatagen;
}
@@ -170,7 +165,7 @@ public class TFMGTags {
TFMGEntityTags(TFMGTags.NameSpace namespace, String path, boolean optional, boolean alwaysDatagen) {
ResourceLocation id = new ResourceLocation(namespace.id, path == null ? Lang.asId(name()) : path);
if (optional) {
tag = optionalTag(ForgeRegistries.ENTITY_TYPES, id);
tag = optionalTag(Registry.ENTITY_TYPE, id);
} else {
tag = TagKey.create(Registry.ENTITY_TYPE_REGISTRY, id);
}
@@ -217,7 +212,7 @@ public class TFMGTags {
TFMGRecipeSerializerTags(TFMGTags.NameSpace namespace, String path, boolean optional, boolean alwaysDatagen) {
ResourceLocation id = new ResourceLocation(namespace.id, path == null ? Lang.asId(name()) : path);
if (optional) {
tag = optionalTag(ForgeRegistries.RECIPE_SERIALIZERS, id);
tag = optionalTag(Registry.RECIPE_SERIALIZER, id);
} else {
tag = TagKey.create(Registry.RECIPE_SERIALIZER_REGISTRY, id);
}
@@ -225,7 +220,10 @@ public class TFMGTags {
}
public boolean matches(RecipeSerializer<?> recipeSerializer) {
return ForgeRegistries.RECIPE_SERIALIZERS.getHolder(recipeSerializer).orElseThrow().is(tag);
return Registry.RECIPE_SERIALIZER.getHolder(
ResourceKey.create(Registry.RECIPE_SERIALIZER.key(), Registry.RECIPE_SERIALIZER.getKey(recipeSerializer)))
.orElseThrow().is(tag);
}
private static void init() {}

View File

@@ -5,19 +5,16 @@ package com.drmangotea.createindustry.worldgen;
import com.drmangotea.createindustry.CreateTFMG;
import com.drmangotea.createindustry.worldgen.oil_deposit.OilDepositFeature;
import com.drmangotea.createindustry.worldgen.oil_deposit.OilWellFeature;
import io.github.fabricators_of_create.porting_lib.util.LazyRegistrar;
import io.github.fabricators_of_create.porting_lib.util.RegistryObject;
import net.minecraft.core.Registry;
import net.minecraft.world.level.levelgen.feature.Feature;
import net.minecraft.world.level.levelgen.feature.OreFeature;
import net.minecraft.world.level.levelgen.feature.configurations.GeodeConfiguration;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
public class TFMGFeatures {
public static final DeferredRegister<Feature<?>> FEATURES = DeferredRegister.create(ForgeRegistries.FEATURES, CreateTFMG.MOD_ID);
public static final LazyRegistrar<Feature<?>> FEATURES = LazyRegistrar.create(Registry.FEATURE, CreateTFMG.MOD_ID);
//-------------------------------------------------------------------------------------------------//
@@ -38,7 +35,7 @@ public class TFMGFeatures {
//-------------------------------------------------------------------------------------------------//
public static void register(IEventBus eventBus) {
FEATURES.register(eventBus);
public static void register() {
FEATURES.register();
}
}

View File

@@ -1,25 +1,11 @@
package com.drmangotea.createindustry.worldgen;
import com.drmangotea.createindustry.registry.TFMGBlocks;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.Create;
import com.simibubi.create.foundation.data.DynamicDataProvider;
import com.simibubi.create.foundation.utility.Couple;
import com.simibubi.create.infrastructure.worldgen.OreFeatureConfigEntry;
import net.minecraft.core.Registry;
import net.minecraft.core.RegistryAccess;
import net.minecraft.data.DataGenerator;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.BiomeTags;
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
import net.minecraft.world.level.levelgen.placement.PlacedFeature;
import net.minecraftforge.common.ForgeConfigSpec;
import net.minecraftforge.common.world.BiomeModifier;
import net.minecraftforge.data.event.GatherDataEvent;
import net.minecraftforge.registries.ForgeRegistries;
import java.util.HashMap;
import java.util.Map;
public class TFMGOreConfigEntries {

View File

@@ -10,7 +10,6 @@ import net.minecraft.world.level.WorldGenLevel;
import net.minecraft.world.level.levelgen.feature.Feature;
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import net.minecraft.world.level.levelgen.feature.stateproviders.BlockStateProvider;
public class OilDepositFeature extends Feature<NoneFeatureConfiguration> {

View File

@@ -4,6 +4,7 @@ import com.drmangotea.createindustry.registry.TFMGBlocks;
import com.drmangotea.createindustry.registry.TFMGFluids;
import com.mojang.serialization.Codec;
import com.simibubi.create.foundation.utility.Iterate;
import me.alphamode.forgetags.Tags;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.util.RandomSource;
@@ -16,7 +17,6 @@ import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import net.minecraft.world.level.material.Fluids;
import net.minecraft.world.phys.AABB;
import net.minecraftforge.common.Tags;
public class OilWellFeature extends Feature<NoneFeatureConfiguration> {
public OilWellFeature(Codec<NoneFeatureConfiguration> pCodec) {

View File

@@ -0,0 +1,3 @@
accessWidener v1 named
accessible method net/minecraft/tags/FluidTags create (Ljava/lang/String;)Lnet/minecraft/tags/TagKey;

View File

@@ -16,11 +16,18 @@
"entrypoints": {
"main": [
"com.drmangotea.createindustry.CreateTFMG"
],
"client": [
"com.drmangotea.createindustry.CreateTFMGClient"
],
"fabric-datagen": [
"com.drmangotea.createindustry.data.CreateTFMGData"
]
},
"mixins": [
"createindustry.mixins.json"
],
"accessWidener": "createindustry.accesswidener",
"depends": {
"fabricloader": ">=${fabric_loader_version}",
"fabric-api": ">=${fabric_api_version}",