Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "mekmm:block_raw_silver"
}
],
"name": "main",
"rolls": 1.0
}
],
"random_sequence": "mekmm:blocks/block_raw_silver"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "mekmm:block_silver"
}
],
"name": "main",
"rolls": 1.0
}
],
"random_sequence": "mekmm:blocks/block_silver"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "mekmm:deepslate_silver_ore"
}
],
"name": "main",
"rolls": 1.0
}
],
"random_sequence": "mekmm:blocks/deepslate_silver_ore"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "mekmm:silver_ore"
}
],
"name": "main",
"rolls": 1.0
}
],
"random_sequence": "mekmm:blocks/silver_ore"
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,11 @@
"mekanism:redstone_control",
"mekanism:security",
"mekanism:upgrades",
"mekanism:energy"
"mekanism:energy",
"mekanism:items",
"mekanism:fluids",
"mekanism:chemicals",
"mekanism:heat_data"
],
"source": "block_entity"
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package com.jerry.mekmm.common.block;

import com.jerry.mekmm.common.resource.MoreMachineBlockResourceInfo;

import mekanism.common.block.BlockMekanism;

import net.minecraft.core.BlockPos;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.state.BlockState;

import org.jetbrains.annotations.NotNull;

public class BlockMoreMachineResource extends BlockMekanism {

@NotNull
private final MoreMachineBlockResourceInfo resource;

public BlockMoreMachineResource(@NotNull MoreMachineBlockResourceInfo resource) {
super(resource.modifyProperties(BlockBehaviour.Properties.of().requiresCorrectToolForDrops()));
this.resource = resource;
}

@NotNull
public MoreMachineBlockResourceInfo getResourceInfo() {
return resource;
}

@Override
public boolean isPortalFrame(BlockState state, BlockGetter world, BlockPos pos) {
return resource.isPortalFrame();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import com.jerry.mekmm.common.registries.MoreMachineBlocks;

import mekanism.api.annotations.NothingNullByDefault;
import mekanism.api.text.IHasTranslationKey;
import mekanism.api.text.IHasTranslationKey.IHasEnumNameTranslationKey;
import mekanism.api.text.ILangEntry;
import mekanism.common.registration.impl.BlockRegistryObject;

Expand All @@ -16,7 +16,7 @@
import java.util.function.Supplier;

@NothingNullByDefault
public enum MoreMachineFactoryType implements IHasTranslationKey.IHasEnumNameTranslationKey {
public enum MoreMachineFactoryType implements IHasEnumNameTranslationKey {

RECYCLING("recycling", MoreMachineLang.RECYCLING, () -> MoreMachineBlockTypes.RECYCLER, () -> MoreMachineBlocks.RECYCLER),
PLANTING_STATION("planting", MoreMachineLang.PLANTING, () -> MoreMachineBlockTypes.PLANTING_STATION, () -> MoreMachineBlocks.PLANTING_STATION),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.jerry.mekmm.common.attachments.component.MoreMachineAttachedSideConfig;
import com.jerry.mekmm.common.block.BlockAuthorDoll;
import com.jerry.mekmm.common.block.BlockModelerDoll;
import com.jerry.mekmm.common.block.BlockMoreMachineResource;
import com.jerry.mekmm.common.block.prefab.BlockMoreFactoryMachine;
import com.jerry.mekmm.common.block.prefab.BlockMoreFactoryMachine.BlockMoreMachineFactory;
import com.jerry.mekmm.common.content.blocktype.MoreMachineFactory;
Expand All @@ -13,6 +14,9 @@
import com.jerry.mekmm.common.item.block.machine.ItemBlockMoreMachineFactory;
import com.jerry.mekmm.common.recipe.MoreMachineRecipeType;
import com.jerry.mekmm.common.recipe.lookup.cache.MoreMachineInputRecipeCache.TripleItem;
import com.jerry.mekmm.common.resource.MoreMachineBlockResourceInfo;
import com.jerry.mekmm.common.resource.MoreMachineResource;
import com.jerry.mekmm.common.resource.ore.MoreMachineOreType;
import com.jerry.mekmm.common.tile.factory.TileEntityMoreMachineFactory;
import com.jerry.mekmm.common.tile.factory.TileEntityReplicatingFactory;
import com.jerry.mekmm.common.tile.machine.*;
Expand All @@ -29,9 +33,11 @@
import mekanism.common.attachments.containers.fluid.FluidTanksBuilder;
import mekanism.common.attachments.containers.heat.HeatCapacitorsBuilder;
import mekanism.common.attachments.containers.item.ItemSlotsBuilder;
import mekanism.common.block.BlockOre;
import mekanism.common.block.attribute.AttributeTier;
import mekanism.common.block.prefab.BlockTile.BlockTileModel;
import mekanism.common.content.blocktype.Machine;
import mekanism.common.item.block.ItemBlockMekanism;
import mekanism.common.item.block.ItemBlockTooltip;
import mekanism.common.recipe.lookup.cache.InputRecipeCache.DoubleItem;
import mekanism.common.recipe.lookup.cache.InputRecipeCache.ItemChemical;
Expand All @@ -40,6 +46,9 @@
import mekanism.common.registration.impl.BlockRegistryObject;
import mekanism.common.registries.MekanismDataComponents;
import mekanism.common.resource.BlockResourceInfo;
import mekanism.common.resource.IResource;
import mekanism.common.resource.ore.OreBlockType;
import mekanism.common.resource.ore.OreType;
import mekanism.common.tier.FactoryTier;

import net.minecraft.world.item.BlockItem;
Expand All @@ -53,6 +62,8 @@
import com.google.common.collect.Table;
import org.jetbrains.annotations.NotNull;

import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.function.BiFunction;
import java.util.function.Predicate;
Expand All @@ -63,6 +74,8 @@ public class MoreMachineBlocks {
private MoreMachineBlocks() {}

public static final BlockDeferredRegister MM_BLOCKS = new BlockDeferredRegister(Mekmm.MOD_ID);
public static final Map<IResource, BlockRegistryObject<?, ?>> PROCESSED_RESOURCE_BLOCKS = new LinkedHashMap<>();
public static final Map<OreType, OreBlockType> ORES = new LinkedHashMap<>();

private static final Table<FactoryTier, MoreMachineFactoryType, BlockRegistryObject<BlockMoreMachineFactory<?>, ItemBlockMoreMachineFactory>> MM_FACTORIES = HashBasedTable.create();

Expand All @@ -73,6 +86,19 @@ private MoreMachineBlocks() {}
MM_FACTORIES.put(tier, type, registerMoreMachineFactory(MoreMachineBlockTypes.getMoreMachineFactory(tier, type)));
}
}
for (MoreMachineResource resource : MoreMachineEnumUtils.MM_RESOURCES) {
if (resource.getResourceBlockInfo() != null) {
PROCESSED_RESOURCE_BLOCKS.put(resource, registerResourceBlock(resource.getResourceBlockInfo()));
}
MoreMachineBlockResourceInfo rawResource = resource.getRawResourceBlockInfo();
if (rawResource != null) {
PROCESSED_RESOURCE_BLOCKS.put(rawResource, registerResourceBlock(rawResource));
}
}
if (MoreMachineOreType.SILVER == null) {
throw new IllegalStateException("Silver ore type was not registered before MoreMachine blocks initialized.");
}
ORES.put(MoreMachineOreType.SILVER, registerOre(MoreMachineOreType.SILVER));
}

public static final BlockRegistryObject<BlockMoreFactoryMachine<TileEntityRecycler, MoreMachineFactoryMachine<TileEntityRecycler>>, ItemBlockTooltip<BlockMoreFactoryMachine<TileEntityRecycler, MoreMachineFactoryMachine<TileEntityRecycler>>>> RECYCLER = MM_BLOCKS.register("recycler", () -> new BlockMoreFactoryMachine<>(MoreMachineBlockTypes.RECYCLER, properties -> properties.mapColor(BlockResourceInfo.STEEL.getMapColor())),
Expand Down Expand Up @@ -292,6 +318,25 @@ private static <BLOCK extends Block, ITEM extends BlockItem> BlockRegistryObject
return MM_BLOCKS.register(tier.getBaseTier().getLowerName() + suffix, blockSupplier, itemCreator);
}

private static BlockRegistryObject<BlockMoreMachineResource, ItemBlockMekanism<BlockMoreMachineResource>> registerResourceBlock(MoreMachineBlockResourceInfo resource) {
return MM_BLOCKS.register("block_" + resource.getRegistrySuffix(), () -> new BlockMoreMachineResource(resource), (block, properties) -> {
if (!block.getResourceInfo().burnsInFire()) {
properties = properties.fireResistant();
}
return new ItemBlockMekanism<>(block, properties);
});
}

public static OreBlockType registerOre(OreType ore) {
String name = ore.getResource().getRegistrySuffix() + "_ore";
BlockRegistryObject<BlockOre, ItemBlockTooltip<BlockOre>> stoneOre = MM_BLOCKS.register(name, () -> new BlockOre(ore), ItemBlockTooltip::new);
BlockRegistryObject<BlockOre, ItemBlockTooltip<BlockOre>> deepslateOre = MM_BLOCKS.register("deepslate_" + name,
() -> new BlockOre(ore, net.minecraft.world.level.block.state.BlockBehaviour.Properties.ofLegacyCopy(stoneOre.value()).mapColor(MapColor.DEEPSLATE)
.strength(4.5F, 3.0F).sound(SoundType.DEEPSLATE)),
ItemBlockTooltip::new);
return new OreBlockType(stoneOre, deepslateOre);
}

/**
* Retrieves a Factory with a defined tier and recipe type.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,16 @@

import com.jerry.mekmm.Mekmm;
import com.jerry.mekmm.common.MoreMachineChemicalConstants;
import com.jerry.mekmm.common.resource.MoreMachineResource;
import com.jerry.mekmm.common.util.MoreMachineEnumUtils;

import mekanism.api.chemical.Chemical;
import mekanism.common.registration.impl.ChemicalDeferredRegister;
import mekanism.common.registration.impl.DeferredChemical;
import mekanism.common.registration.impl.SlurryRegistryObject;

import java.util.LinkedHashMap;
import java.util.Map;

public class MoreMachineChemicals {

Expand All @@ -17,4 +23,11 @@ private MoreMachineChemicals() {}
public static final DeferredChemical<Chemical> NUTRIENT_SOLUTION = MM_CHEMICALS.register(MoreMachineChemicalConstants.NUTRIENT_SOLUTION);
public static final DeferredChemical<Chemical> UU_MATTER = MM_CHEMICALS.register(MoreMachineChemicalConstants.UU_MATTER);
public static final DeferredChemical<Chemical> UNSTABLE_DIMENSIONAL_GAS = MM_CHEMICALS.register(MoreMachineChemicalConstants.UNSTABLE_DIMENSIONAL_GAS);
public static final Map<MoreMachineResource, SlurryRegistryObject<Chemical, Chemical>> PROCESSED_RESOURCES = new LinkedHashMap<>();

static {
for (MoreMachineResource resource : MoreMachineEnumUtils.MM_RESOURCES) {
PROCESSED_RESOURCES.put(resource, MM_CHEMICALS.registerSlurry(resource.getRegistrySuffix(), builder -> builder.tint(resource.getTint())));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,29 @@
import com.jerry.mekmm.Mekmm;
import com.jerry.mekmm.common.item.ItemConnector;
import com.jerry.mekmm.common.item.ItemReflector;
import com.jerry.mekmm.common.resource.MoreMachineResource;
import com.jerry.mekmm.common.util.MoreMachineEnumUtils;

import mekanism.api.Upgrade;
import mekanism.common.item.ItemUpgrade;
import mekanism.common.registration.impl.ItemDeferredRegister;
import mekanism.common.registration.impl.ItemRegistryObject;
import mekanism.common.resource.IResource;
import mekanism.common.resource.ResourceType;
import mekanism.common.util.EnumUtils;

import net.minecraft.world.item.Item;
import net.minecraft.world.item.Rarity;

import com.google.common.collect.HashBasedTable;
import com.google.common.collect.Table;

public class MoreMachineItems {

private MoreMachineItems() {}

public static final ItemDeferredRegister MM_ITEMS = new ItemDeferredRegister(Mekmm.MOD_ID);
public static final Table<ResourceType, MoreMachineResource, ItemRegistryObject<Item>> PROCESSED_RESOURCES = HashBasedTable.create();

// 得在mods.toml设置:在mekanism之后加载,不然会导致空指针
// public static final ItemRegistryObject<ItemUpgrade> THREAD_UPGRADE = registerUpgrade(MMUpgrade.THREAD,
Expand All @@ -30,7 +39,21 @@ private MoreMachineItems() {}
public static final ItemRegistryObject<Item> ADVANCED_ELECTROLYSIS_CORE = MM_ITEMS.register("advanced_electrolysis_core");
public static final ItemRegistryObject<Item> REFLECTOR = MM_ITEMS.registerItem("reflector", ItemReflector::new);

static {
for (ResourceType type : EnumUtils.RESOURCE_TYPES) {
for (MoreMachineResource resource : MoreMachineEnumUtils.MM_RESOURCES) {
if (resource.has(type)) {
PROCESSED_RESOURCES.put(type, resource, registerResource(type, resource));
}
}
}
}

private static ItemRegistryObject<ItemUpgrade> registerUpgrade(Upgrade type, Rarity rarity) {
return MM_ITEMS.registerItem("upgrade_" + type.getSerializedName(), properties -> new ItemUpgrade(type, properties.rarity(rarity)));
}

private static ItemRegistryObject<Item> registerResource(ResourceType type, IResource resource) {
return MM_ITEMS.register(type.getRegistryPrefix() + "_" + resource.getRegistrySuffix());
}
}
Loading
Loading