Skip to content

Commit

Permalink
v2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
RuochenFu21 committed Jul 31, 2023
1 parent dd845ed commit 50827e2
Show file tree
Hide file tree
Showing 61 changed files with 820 additions and 588 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,5 @@ out/
*.iml

# Visual Studio Code
.history/
.history/
Icon*
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false
mc_version=1.18.2

mod_version = 1.2.3
mod_version = 2.0

create_minecraft_version = 1.18.2
flywheel_minecraft_version = 1.18.2
Expand Down
14 changes: 14 additions & 0 deletions src/generated/resources/.cache/cache
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
47e79cfb104f42863f77d2a3b1bc179c3b802e46 assets/createendertransmission/blockstates/chunk_loader.json
3f193031ff57139c60de6ff16358672c456b62b8 assets/createendertransmission/blockstates/energy_transmitter.json
a3336f56fa4745cfe65ac5d4a8f08890c46832f9 assets/createendertransmission/blockstates/fluid_transmitter.json
e76a29d4db469c18989e1791aa5650794cd427d4 assets/createendertransmission/blockstates/item_transmitter.json
1ab053d76666d79d66f147ab7ae87ea91c5e3652 assets/createendertransmission/lang/en_ud.json
e24ea590af61378c2b662636af24b4ef865cb11e assets/createendertransmission/lang/en_us.json
5823f4ad6706294636927e36e05ea03b42fb6e38 assets/createendertransmission/models/item/chunk_loader.json
8a216f80f28a5a7631c61144bee4054be62ab019 assets/createendertransmission/models/item/fluid_transmitter.json
57d3d1e2a519eddad552f8f988ea850f38b96bed assets/createendertransmission/models/item/item_transmitter.json
63392b5dff9eec1c3ab302dbc6ff8c5925cb9f65 data/createendertransmission/loot_tables/blocks/chunk_loader.json
fd286694e58d40689330b597720dcd9982787621 data/createendertransmission/loot_tables/blocks/energy_transmitter.json
82c169e54c2f4151fbb5224ddff498a898ef1d93 data/createendertransmission/loot_tables/blocks/fluid_transmitter.json
3f6e1d4082db943260623e69fb4c79b94843c9f4 data/createendertransmission/loot_tables/blocks/item_transmitter.json
a998ec1b4480797e046f4c89bdaa208bec79f1ad data/minecraft/tags/blocks/mineable/pickaxe.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "createendertransmission:block/chunk_loader/block"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"variants": {
"facing=down": {
"model": "createendertransmission:block/energy_transmitter/block",
"x": 180
},
"facing=up": {
"model": "createendertransmission:block/energy_transmitter/block"
},
"facing=north": {
"model": "createendertransmission:block/energy_transmitter/block",
"x": 90
},
"facing=south": {
"model": "createendertransmission:block/energy_transmitter/block",
"x": 90,
"y": 180
},
"facing=west": {
"model": "createendertransmission:block/energy_transmitter/block",
"x": 90,
"y": 270
},
"facing=east": {
"model": "createendertransmission:block/energy_transmitter/block",
"x": 90,
"y": 90
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "createendertransmission:block/fluid_transmitter/block"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "createendertransmission:block/item_transmitter/block"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"block.createendertransmission.chunk_loader": "\u0279\u01DDp\u0250o\uA780 \u029Eun\u0265\u0186",
"block.createendertransmission.energy_transmitter": "\u0279\u01DD\u0287\u0287\u0131\u026Fsu\u0250\u0279\u27D8 \u028Eb\u0279\u01DDu\u018E",
"block.createendertransmission.fluid_transmitter": "\u0279\u01DD\u0287\u0287\u0131\u026Fsu\u0250\u0279\u27D8 p\u0131n\u05DF\u2132",
"block.createendertransmission.item_transmitter": "\u0279\u01DD\u0287\u0287\u0131\u026Fsu\u0250\u0279\u27D8 \u026F\u01DD\u0287I",
"create.gui.transmitter.channel_title": "\u029E\u0279o\u028D\u0287\u01DDN",
"createendertransmission.chunk_loader.loaded": "\u028Eq\u0279\u0250\u01DDu s\u029Eun\u0265\u0254 %1$s p\u01DDp\u0250o\u05DF \u0279\u01DDp\u0250o\u05DF \u029Eun\u0265\u0186",
"itemGroup.ender_transmission": "uo\u0131ss\u0131\u026Fsu\u0250\u0279\u27D8 \u0279\u01DDpu\u018E \u01DD\u0287\u0250\u01DD\u0279\u0186",
"transmitter.network.1": "\u0196",
"transmitter.network.10": "0\u0196",
"transmitter.network.2": "\u1105",
"transmitter.network.3": "\u0190",
"transmitter.network.4": "\u3123",
"transmitter.network.5": "\u03DB",
"transmitter.network.6": "9",
"transmitter.network.7": "\u3125",
"transmitter.network.8": "8",
"transmitter.network.9": "6"
}
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
{
"itemGroup.ender_transmission":"Create Ender Transmission",
"block.createendertransmission.chunk_loader": "Chunk Loader",
"block.createendertransmission.energy_transmitter": "Energy Transmitter",
"block.createendertransmission.item_transmitter": "Item Transmitter",
"block.createendertransmission.fluid_transmitter": "Fluid Transmitter",

"block.createendertransmission.item_transmitter": "Item Transmitter",
"create.gui.transmitter.channel_title": "Network",
"createendertransmission.chunk_loader.loaded": "Chunk loader loaded %1$s chunks nearby",
"itemGroup.ender_transmission": "Create Ender Transmission",
"transmitter.network.1": "1",
"transmitter.network.10": "10",
"transmitter.network.2": "2",
"transmitter.network.3": "3",
"transmitter.network.4": "4",
"transmitter.network.5": "5",
"transmitter.network.6": "6",
"transmitter.network.7": "7",
"transmitter.network.8": "8",
"transmitter.network.9": "9",
"transmitter.network.10": "10",

"create.gui.transmitter.channel_title": "Network"
"transmitter.network.9": "9"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"parent": "createendertransmission:block/chunk_loader/block"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"parent": "createendertransmission:block/fluid_transmitter/block"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"parent": "createendertransmission:block/item_transmitter/block"
}
Original file line number Diff line number Diff line change
@@ -1,30 +1,31 @@
package net.forsteri.createendertransmission;

import com.mojang.logging.LogUtils;
import com.simibubi.create.foundation.data.CreateRegistrate;
import net.forsteri.createendertransmission.blocks.MatterWorldSavedData;
import net.forsteri.createendertransmission.entry.*;
import net.forsteri.createendertransmission.transmitUtil.ChunkLoaderRecipeCondition;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.crafting.RecipeSerializer;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.LevelAccessor;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.crafting.CraftingHelper;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.event.server.ServerStartingEvent;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.event.world.WorldEvent;
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.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import org.slf4j.Logger;

// The value here should match an entry in the META-INF/mods.toml file
@Mod(CreateEnderTransmission.MOD_ID)
public class CreateEnderTransmission {

// Directly reference a slf4j logger

public static final String MOD_ID = "createendertransmission";
public static final Logger LOGGER = LogUtils.getLogger();

public CreateEnderTransmission() {
// Register the setup method for modloading
Expand All @@ -36,35 +37,42 @@ public CreateEnderTransmission() {
// Register ourselves for server and other game events we are interested in
MinecraftForge.EVENT_BUS.register(this);

Blocks.register();
TileEntities.register();
Packets.registerPackets();
TransmissionBlocks.register();
TransmissionBlockEntities.register();
TransmissionPackets.registerPackets();
TransmissionLang.register();

ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, Config.SPEC, "createendertransmission-server.toml");
ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, TransmissionConfig.SPEC, "createendertransmission-server.toml");
FMLJavaModLoadingContext.get().getModEventBus().addGenericListener(RecipeSerializer.class, this::registerRecipeSerializers);
}

private void setup(final FMLCommonSetupEvent event) {
// Some preinit code
LOGGER.info("HELLO FROM PREINIT");
event.enqueueWork(Packets::registerPackets);
event.enqueueWork(TransmissionPackets::registerPackets);
}

// You can use SubscribeEvent and let the Event Bus discover methods to call
@SubscribeEvent
public void onServerStarting(ServerStartingEvent event) {
// Do something when the server starts
LOGGER.info("HELLO from server starting");
}
public static MatterWorldSavedData savedData = null;

@Mod.EventBusSubscriber
public static class CommonEvents {
@SubscribeEvent
public static void playerLoggedIn(PlayerEvent.PlayerLoggedInEvent event) {
Player player = event.getPlayer();
if (player instanceof ServerPlayer serverPlayer) {
MinecraftServer server = serverPlayer.getServer();
if (server == null)
return;
CreateEnderTransmission.savedData = MatterWorldSavedData.load(server);
}
}

// You can use EventBusSubscriber to automatically subscribe events on the contained class (this is subscribing to the MOD
// Event bus for receiving Registry Events)
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
public static class RegistryEvents {
@SubscribeEvent
public static void onBlocksRegistry(final RegistryEvent.Register<Block> blockRegistryEvent) {
// Register a new block here
LOGGER.info("HELLO from Register Block");
public static void onLoadWorld(WorldEvent.Load event) {
LevelAccessor level = event.getWorld();
MinecraftServer server = event.getWorld().getServer();
if (server == null || server.overworld() != level)
return;
CreateEnderTransmission.savedData = MatterWorldSavedData.load(server);
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package net.forsteri.createendertransmission.blocks;

import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
import net.forsteri.createendertransmission.CreateEnderTransmission;
import net.forsteri.createendertransmission.transmitUtil.ITransmitter;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
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.INBTSerializable;
import net.minecraftforge.common.util.LazyOptional;
import org.jetbrains.annotations.NotNull;

import java.util.Map;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;

public abstract class AbstractMatterTransmitterBlockEntity extends KineticBlockEntity implements ITransmitter {
public LazyOptional<?> capability;
public AbstractMatterTransmitterBlockEntity(BlockEntityType<?> typeIn, BlockPos pos, BlockState state) {
super(typeIn, pos, state);
capability = LazyOptional.of(() -> getCapability().apply(this::getInv));
}

protected abstract MatterTransmitterNetwork getNetwork();

protected abstract Function<Supplier<INBTSerializable<CompoundTag>>, ?> getCapability();

public INBTSerializable<CompoundTag> getInv(){
Map<String, INBTSerializable<CompoundTag>> channel = getNetwork().channels.get(getChannel());

if (channel.containsKey(getPassword()))
return channel.get(getPassword());

INBTSerializable<CompoundTag> inv = getNetwork().defaultInv.get();
channel.put(getPassword(), inv);

CreateEnderTransmission.savedData.setDirty();

return inv;
}

protected abstract Predicate<Capability<?>> getMatterCapPredicate();

@NotNull
@Override
public <T> LazyOptional<T> getCapability(@NotNull Capability<T> cap, Direction side) {
if (getMatterCapPredicate().test(cap)) return capability.cast();
return super.getCapability(cap, side);
}

@Override
public void reloadSettings() {
ITransmitter.super.reloadSettings();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package net.forsteri.createendertransmission.blocks;

import net.forsteri.createendertransmission.CreateEnderTransmission;
import net.forsteri.createendertransmission.blocks.fluidTrasmitter.SerializableSmartFluidTank;
import net.minecraft.nbt.CompoundTag;
import net.minecraftforge.common.util.INBTSerializable;
import net.minecraftforge.items.ItemStackHandler;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Supplier;

public enum MatterTransmitterNetwork {
ITEM(() -> new ItemStackHandler() {
@Override
protected void onContentsChanged(int slot) {
super.onContentsChanged(slot);
CreateEnderTransmission.savedData.setDirty();
}
}),
FLUID(() -> new SerializableSmartFluidTank(1000, contents -> CreateEnderTransmission.savedData.setDirty()))
;

public final List<Map<String, INBTSerializable<CompoundTag>>> channels;

public final Supplier<INBTSerializable<CompoundTag>> defaultInv;

MatterTransmitterNetwork(Supplier<INBTSerializable<CompoundTag>> defaultInv){
this.channels = new ArrayList<>();
this.defaultInv = defaultInv;
for (int i = 0; i < 10; i++) {
channels.add(new HashMap<>());
}
}
}
Loading

0 comments on commit 50827e2

Please sign in to comment.