Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
# Extended Crafting: Unofficial
# Extended Crafting: Expanded Plus

Adds some new ways to craft items, as well as extra crafting items and utilities.
Originally forked for use in Monifactory. "What if we tried more tables?"
Originally forked for use in Monifactory. "What if we tried more tables?

## Download

- [ExtendedCrafting: Monifactory Edition (Curseforge)](https://www.curseforge.com/minecraft/mc-mods/extended-crafting-monifactory-edition)
- [BlakeBr0's Cucumber Library (required dependency)](https://www.curseforge.com/minecraft/mc-mods/cucumber)

- [Original mod at Blake's Mods](https://blakesmods.com/extended-crafting/download)

## What has changed from the original

- Added a new tier of table with a 11x11 grid and Netherite components
- Added a new tier of table with a 13x13 grid
- Auto Table Speed is now configurable per tier (default to 8gt/0.4s per craft)
- Auto Table item input logic reworked to allow the table to keep up, can now import more than one item per tick.
- JEI Compatibility: Recipes with no tier restriction are only shown in the smallest table that can fit them. Tier-restricted recipes still show the warning icon. [TODO: Make this a config option]
Expand Down
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ plugins {
id 'org.spongepowered.mixin' version '0.7.+'
}

version = '1.20.1-6.1.5u'
version = '1.20.1-6.1.6u'
group = 'com.witherschat.extendedcrafting'

base {
Expand Down Expand Up @@ -107,7 +107,7 @@ dependencies {
jar {
manifest {
attributes([
'Specification-Title': 'Extended Crafting: Monifactory Edition',
'Specification-Title': 'Extended Crafting: Expanded Plus',
'Specification-Vendor': 'WithersChat, BlakeBr0',
'Specification-Version': '1',
'Implementation-Title': project.name,
Expand Down
12 changes: 6 additions & 6 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

forge_version=1.20.1-47.3.7
cucumber_version=1.20.1-7.0.11
jei_version=15.18.0.79
forge_version=1.20.1-47.4.9
cucumber_version=1.20.1-7.0.16
jei_version=15.20.0.112
jei_mc_version=1.20.1
jade_version=5672013
patchouli_version=1.20.1-84-FORGE
crafttweaker_version=1.20.1:14.0.43
jade_version=6855440
patchouli_version=1.20.1-84.1-FORGE
crafttweaker_version=1.20.1:14.0.59
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,10 @@
import snownee.jade.api.WailaPlugin;
import snownee.jade.api.config.IPluginConfig;

@SuppressWarnings("removal")
@WailaPlugin
public class JadeCompat implements IWailaPlugin {
private static final ResourceLocation CRAFTING_CORE_PROVIDER = new ResourceLocation(ExtendedCrafting.MOD_ID, "crafting_core");
private static final ResourceLocation CRAFTING_CORE_PROVIDER = new ResourceLocation(ExtendedCrafting.MOD_ID + ":crafting_core");
private static final ResourceLocation BASIC_TABLE_PROVIDER = new ResourceLocation(ExtendedCrafting.MOD_ID, "basic_table");
private static final ResourceLocation ADVANCED_TABLE_PROVIDER = new ResourceLocation(ExtendedCrafting.MOD_ID, "advanced_table");
private static final ResourceLocation ELITE_TABLE_PROVIDER = new ResourceLocation(ExtendedCrafting.MOD_ID, "elite_table");
Expand Down Expand Up @@ -117,7 +118,7 @@ public ResourceLocation getUid() {
}
}, EpicTableBlock.class);

registration.registerBlockComponent(new IBlockComponentProvider() {
registration.registerBlockComponent(new IBlockComponentProvider() {
@Override
public void appendTooltip(ITooltip tooltip, BlockAccessor accessor, IPluginConfig config) {
tooltip.add(ModTooltips.TIER.args(1).build());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ public void registerRecipes(IRecipeRegistration registration) {
registration.addRecipes(EliteTableCategory.RECIPE_TYPE, recipes.getOrDefault(3, new ArrayList<>()));
registration.addRecipes(UltimateTableCategory.RECIPE_TYPE, recipes.getOrDefault(4, new ArrayList<>()));
registration.addRecipes(EpicTableCategory.RECIPE_TYPE, recipes.getOrDefault(5, new ArrayList<>()));
}
}

if (ModConfigs.ENABLE_COMPRESSOR.get()) {
registration.addRecipes(CompressorCraftingCategory.RECIPE_TYPE, manager.getAllRecipesFor(ModRecipeTypes.COMPRESSOR.get()));
Expand Down Expand Up @@ -234,7 +234,7 @@ public void registerGuiHandlers(IGuiHandlerRegistration registration) {
registration.addRecipeClickArea(AdvancedAutoTableScreen.class, 121, 39, 21, 14, AdvancedTableCategory.RECIPE_TYPE);
registration.addRecipeClickArea(EliteAutoTableScreen.class, 158, 72, 21, 14, EliteTableCategory.RECIPE_TYPE);
registration.addRecipeClickArea(UltimateAutoTableScreen.class, 193, 90, 21, 14, UltimateTableCategory.RECIPE_TYPE);
registration.addRecipeClickArea(EpicAutoTableScreen.class, 237, 108, 21, 14, UltimateTableCategory.RECIPE_TYPE);
registration.addRecipeClickArea(EpicAutoTableScreen.class, 237, 108, 21, 14, EpicTableCategory.RECIPE_TYPE);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,8 @@ public void draw(ITableRecipe recipe, IRecipeSlotsView slots, GuiGraphics gfx, d
matrix.popPose();
}

@Override
@SuppressWarnings("removal")
@Override
public List<Component> getTooltipStrings(ITableRecipe recipe, IRecipeSlotsView slots, double mouseX, double mouseY) {
var shapeless = recipe instanceof ShapelessTableRecipe;
int sX = (shapeless ? 304 : 324) / 2, sY = 365 / 2;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@ private AdvancedAutoTableContainer(MenuType<?> type, int id, Inventory playerInv

@Override
public void slotsChanged(Container matrix) {
if (this.level.isClientSide) {
return;
}
var recipe = this.level.getRecipeManager().getRecipeFor(ModRecipeTypes.TABLE.get(), matrix, this.level);

if (recipe.isPresent()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@ private AdvancedTableContainer(MenuType<?> type, int id, Inventory playerInvento

@Override
public void slotsChanged(Container matrix) {
if (this.level.isClientSide) {
return;
}
var recipe = this.level.getRecipeManager().getRecipeFor(ModRecipeTypes.TABLE.get(), matrix, this.level);

if (recipe.isPresent()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@ private BasicAutoTableContainer(MenuType<?> type, int id, Inventory playerInvent

@Override
public void slotsChanged(Container matrix) {
if (this.level.isClientSide) {
return;
}
var recipe = this.level.getRecipeManager().getRecipeFor(ModRecipeTypes.TABLE.get(), matrix, this.level);

this.isVanillaRecipe = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,9 @@ private BasicTableContainer(MenuType<?> type, int id, Inventory playerInventory,

@Override
public void slotsChanged(Container matrix) {
if (this.level.isClientSide) {
return;
}
var recipe = this.level.getRecipeManager().getRecipeFor(ModRecipeTypes.TABLE.get(), matrix, this.level);

this.isVanillaRecipe = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@ private EliteAutoTableContainer(MenuType<?> type, int id, Inventory playerInvent

@Override
public void slotsChanged(Container matrix) {
if (this.level.isClientSide) {
return;
}
var recipe = this.level.getRecipeManager().getRecipeFor(ModRecipeTypes.TABLE.get(), matrix, this.level);

if (recipe.isPresent()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@ private EliteTableContainer(MenuType<?> type, int id, Inventory playerInventory,

@Override
public void slotsChanged(Container matrix) {
if (this.level.isClientSide) {
return;
}
var recipe = this.level.getRecipeManager().getRecipeFor(ModRecipeTypes.TABLE.get(), matrix, this.level);

if (recipe.isPresent()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@ private EpicAutoTableContainer(MenuType<?> type, int id, Inventory playerInvento

@Override
public void slotsChanged(Container matrix) {
if (this.level.isClientSide) {
return;
}
var recipe = this.level.getRecipeManager().getRecipeFor(ModRecipeTypes.TABLE.get(), matrix, this.level);

if (recipe.isPresent()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@ private EpicTableContainer(MenuType<?> type, int id, Inventory playerInventory,

@Override
public void slotsChanged(Container matrix) {
if (this.level.isClientSide) {
return;
}
var recipe = this.level.getRecipeManager().getRecipeFor(ModRecipeTypes.TABLE.get(), matrix, this.level);

if (recipe.isPresent()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@ private UltimateAutoTableContainer(MenuType<?> type, int id, Inventory playerInv

@Override
public void slotsChanged(Container matrix) {
if (this.level.isClientSide) {
return;
}
var recipe = this.level.getRecipeManager().getRecipeFor(ModRecipeTypes.TABLE.get(), matrix, this.level);

if (recipe.isPresent()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@ private UltimateTableContainer(MenuType<?> type, int id, Inventory playerInvento

@Override
public void slotsChanged(Container matrix) {
if (this.level.isClientSide) {
return;
}
var recipe = this.level.getRecipeManager().getRecipeFor(ModRecipeTypes.TABLE.get(), matrix, this.level);

if (recipe.isPresent()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,8 @@ public int getTier() {
: this.width < 6 && this.height < 6 ? 2
: this.width < 8 && this.height < 8 ? 3
: this.width < 10 && this.height < 10 ? 4
: 5;
: this.width < 12 && this.height < 12 ? 5
: 6;
}

/**
Expand All @@ -286,7 +287,8 @@ private int getTierFromGridSize(IItemHandler inv) {
: size < 26 ? 2
: size < 50 ? 3
: size < 82 ? 4
: 5;
: size < 122 ? 5
: 6;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,8 @@ private static int getTierFromSize(int size) {
: size < 26 ? 2
: size < 50 ? 3
: size < 82 ? 4
: 5;
: size < 122 ? 5
: 6;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
public final class ModCreativeModeTabs {
public static final DeferredRegister<CreativeModeTab> REGISTRY = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, ExtendedCrafting.MOD_ID);

@SuppressWarnings("unused")
public static final RegistryObject<CreativeModeTab> CREATIVE_TAB = REGISTRY.register("creative_tab", () -> CreativeModeTab.builder()
.title(Component.translatable("itemGroup.extendedcrafting"))
.icon(() -> new ItemStack(ModItems.LUMINESSENCE.get()))
Expand Down Expand Up @@ -107,6 +108,11 @@ public final class ModCreativeModeTabs {
NBTHelper.setString(stack, "Type", "CraftTweaker");
output.accept(stack, ModFeatureFlags.RECIPE_MAKER);

stack = new ItemStack(ModItems.RECIPE_MAKER.get());
NBTHelper.setBoolean(stack, "Shapeless", false);
NBTHelper.setString(stack, "Type", "KubeJS");
output.accept(stack, ModFeatureFlags.RECIPE_MAKER);

for (var singularity : SingularityRegistry.getInstance().getSingularities()) {
if (singularity.isEnabled()) {
output.accept(SingularityUtils.getItemForSingularity(singularity), ModFeatureFlags.SINGULARITIES);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public final class ModTileEntities {
public static final RegistryObject<BlockEntityType<EliteTableTileEntity>> ELITE_TABLE = register("elite_table", EliteTableTileEntity::new, () -> new Block[] { ModBlocks.ELITE_TABLE.get() });
public static final RegistryObject<BlockEntityType<UltimateTableTileEntity>> ULTIMATE_TABLE = register("ultimate_table", UltimateTableTileEntity::new, () -> new Block[] { ModBlocks.ULTIMATE_TABLE.get() });
public static final RegistryObject<BlockEntityType<EpicTableTileEntity>> EPIC_TABLE = register("epic_table", EpicTableTileEntity::new, () -> new Block[] { ModBlocks.EPIC_TABLE.get() });
public static final RegistryObject<BlockEntityType<AutoTableTileEntity.Basic>> BASIC_AUTO_TABLE = register("basic_auto_table", AutoTableTileEntity.Basic::new, () -> new Block[] { ModBlocks.BASIC_AUTO_TABLE.get() });
public static final RegistryObject<BlockEntityType<AutoTableTileEntity.Basic>> BASIC_AUTO_TABLE = register("basic_auto_table", AutoTableTileEntity.Basic::new, () -> new Block[] { ModBlocks.BASIC_AUTO_TABLE.get() });
public static final RegistryObject<BlockEntityType<AutoTableTileEntity.Advanced>> ADVANCED_AUTO_TABLE = register("advanced_auto_table", AutoTableTileEntity.Advanced::new, () -> new Block[] { ModBlocks.ADVANCED_AUTO_TABLE.get() });
public static final RegistryObject<BlockEntityType<AutoTableTileEntity.Elite>> ELITE_AUTO_TABLE = register("elite_auto_table", AutoTableTileEntity.Elite::new, () -> new Block[] { ModBlocks.ELITE_AUTO_TABLE.get() });
public static final RegistryObject<BlockEntityType<AutoTableTileEntity.Ultimate>> ULTIMATE_AUTO_TABLE = register("ultimate_auto_table", AutoTableTileEntity.Ultimate::new, () -> new Block[] { ModBlocks.ULTIMATE_AUTO_TABLE.get() });
Expand Down
Loading