The Masters Dalek Plan
This commit is contained in:
parent
f6a2fa93f2
commit
9e9412e53e
25 changed files with 492 additions and 139 deletions
|
@ -5,12 +5,14 @@ buildscript {
|
|||
}
|
||||
dependencies {
|
||||
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true
|
||||
classpath 'org.spongepowered:mixingradle:0.7.+'
|
||||
}
|
||||
}
|
||||
apply plugin: 'java'
|
||||
apply plugin: 'net.minecraftforge.gradle'
|
||||
apply plugin: 'eclipse'
|
||||
apply plugin: 'maven-publish'
|
||||
apply plugin: 'org.spongepowered.mixin'
|
||||
|
||||
archivesBaseName = "${mod_name}-forge-${minecraft_version}"
|
||||
|
||||
|
@ -70,6 +72,11 @@ minecraft {
|
|||
}
|
||||
}
|
||||
|
||||
mixin {
|
||||
add sourceSets.main, 'refmap.tardim_ic.json'
|
||||
config 'mixins.tardim_ic.json'
|
||||
}
|
||||
|
||||
sourceSets.main.resources.srcDir 'src/generated/resources'
|
||||
|
||||
dependencies {
|
||||
|
@ -78,6 +85,8 @@ dependencies {
|
|||
|
||||
implementation fg.deobf("curse.maven:tardim-531315:4453925")
|
||||
implementation fg.deobf("org.squiddev:cc-tweaked-1.19.1:${cc_version}")
|
||||
|
||||
annotationProcessor 'org.spongepowered:mixin:0.8.5:processor'
|
||||
}
|
||||
|
||||
tasks.withType(JavaCompile) {
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
package su.a71.tardim_ic.tardim_ic;
|
||||
|
||||
import com.google.common.collect.Sets;
|
||||
import com.swdteam.common.command.tardim.ICommand;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.Item;
|
||||
|
@ -16,8 +18,9 @@ import net.minecraftforge.registries.RegistryObject;
|
|||
|
||||
import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceBlock;
|
||||
import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceTileEntity;
|
||||
import su.a71.tardim_ic.tardim_ic.redsone_input.RedstoneInputBlock;
|
||||
import su.a71.tardim_ic.tardim_ic.redsone_input.RedstoneInputTileEntity;
|
||||
import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputBlock;
|
||||
import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputTileEntity;
|
||||
import su.a71.tardim_ic.tardim_ic.registration.CommandInit;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
|
@ -26,6 +29,7 @@ public class Registration {
|
|||
public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, TardimInControl.MODID);
|
||||
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, TardimInControl.MODID);
|
||||
public static final DeferredRegister<BlockEntityType<?>> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, TardimInControl.MODID);
|
||||
public static final DeferredRegister<SoundEvent> SOUNDS = DeferredRegister.create(ForgeRegistries.SOUND_EVENTS, TardimInControl.MODID);
|
||||
|
||||
public static final CreativeModeTab TARDIM_IC_TAB = new CreativeModeTab("tardim_ic") {
|
||||
@Override
|
||||
|
@ -47,11 +51,15 @@ public class Registration {
|
|||
public static final RegistryObject<BlockEntityType<DigitalInterfaceTileEntity>> DIGITAL_TARDIM_INTERFACE_TILEENTITY = Registration.BLOCK_ENTITIES.register("digital_tardim_interface", () -> new BlockEntityType<>(DigitalInterfaceTileEntity::new, Sets.newHashSet(DIGITAL_TARDIM_INTERFACE.get()), null));
|
||||
public static final RegistryObject<BlockEntityType<RedstoneInputTileEntity>> REDSTONE_TARDIM_INPUT_TILEENTITY = Registration.BLOCK_ENTITIES.register("redstone_tardim_input", () -> new BlockEntityType<>(RedstoneInputTileEntity::new, Sets.newHashSet(REDSTONE_TARDIM_INPUT.get()), null));
|
||||
|
||||
// Cloister bell
|
||||
public static final RegistryObject<SoundEvent> CLOISTER_SOUND = SOUNDS.register("cloister", () -> new SoundEvent(new ResourceLocation(TardimInControl.MODID, "cloister")));
|
||||
|
||||
// Register our stuff
|
||||
public static void register() {
|
||||
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
|
||||
BLOCKS.register(modEventBus);
|
||||
ITEMS.register(modEventBus);
|
||||
BLOCK_ENTITIES.register(modEventBus);
|
||||
SOUNDS.register(modEventBus);
|
||||
}
|
||||
}
|
|
@ -4,6 +4,7 @@ import net.minecraftforge.common.MinecraftForge;
|
|||
import net.minecraftforge.fml.common.Mod;
|
||||
|
||||
import su.a71.tardim_ic.tardim_ic.registration.CommandInit;
|
||||
import com.swdteam.tardim.TardimSaveHandler;
|
||||
|
||||
// The value here should match an entry in the META-INF/mods.toml file
|
||||
@Mod(Constants.MOD_ID)
|
||||
|
@ -14,7 +15,6 @@ public class TardimInControl {
|
|||
|
||||
public TardimInControl() {
|
||||
Registration.register();
|
||||
CommandInit.init(); // Register commands
|
||||
|
||||
// Register ourselves for server and other game events we are interested in. Currently, we do not use any events
|
||||
MinecraftForge.EVENT_BUS.register(this);
|
||||
|
|
|
@ -13,9 +13,12 @@ import net.minecraft.resources.ResourceLocation;
|
|||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.sounds.SoundSource;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.level.Level;
|
||||
import su.a71.tardim_ic.tardim_ic.Registration;
|
||||
|
||||
//import static com.swdteam.common.command.tardim.CommandTardimBase.sendResponse;
|
||||
|
||||
|
||||
public class CommandCloisterBell implements ICommand {
|
||||
@Override
|
||||
public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) {
|
||||
|
@ -24,7 +27,17 @@ public class CommandCloisterBell implements ICommand {
|
|||
if (data != null) {
|
||||
if (data.hasPermission(player)) {
|
||||
try {
|
||||
CommandTardimBase.sendResponse(player, "<Insert Cloister bell>", CommandTardimBase.ResponseType.COMPLETE, source);
|
||||
Level lvl = player.getLevel();
|
||||
if (!lvl.isClientSide) {
|
||||
lvl.playSound(
|
||||
null,
|
||||
pos,
|
||||
Registration.CLOISTER_SOUND.get(),
|
||||
SoundSource.BLOCKS,
|
||||
1.5f,
|
||||
1f
|
||||
);
|
||||
}
|
||||
} catch (Exception var9) {
|
||||
CommandTardimBase.sendResponse(player, "There was an error", CommandTardimBase.ResponseType.FAIL, source);
|
||||
}
|
||||
|
@ -39,12 +52,12 @@ public class CommandCloisterBell implements ICommand {
|
|||
|
||||
@Override
|
||||
public String getCommandName() {
|
||||
return "cloisterBell";
|
||||
return "cloister-bell";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage() {
|
||||
return "cloisterBell";
|
||||
return "/cloister-bell";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
package su.a71.tardim_ic.tardim_ic.mixin;
|
||||
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import com.swdteam.common.init.CommandManager;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import su.a71.tardim_ic.tardim_ic.registration.CommandInit;
|
||||
|
||||
@Mixin(value = CommandManager.class, remap = false)
|
||||
public abstract class Commands {
|
||||
@Inject(method="init()V", at=@At("TAIL"))
|
||||
private static void init(CallbackInfo ci) {
|
||||
CommandInit.init();
|
||||
System.out.println("TARDIM: IC added commands using mixin");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
package su.a71.tardim_ic.tardim_ic.mixin;
|
||||
|
||||
import com.swdteam.tileentity.TileEntityFuelStorage;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
|
||||
@Mixin(TileEntityFuelStorage.class)
|
||||
public abstract class FuelTank {
|
||||
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
package su.a71.tardim_ic.tardim_ic.redsone_input;
|
||||
|
||||
import com.swdteam.tileentity.TileEntityBaseTardimPanel;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.common.util.LazyOptional;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import com.swdteam.common.init.TRDTiles;
|
||||
|
||||
import su.a71.tardim_ic.tardim_ic.Registration;
|
||||
import com.swdteam.tileentity.TileEntityTardimScanner;
|
||||
import com.swdteam.common.block.BlockTardimScanner;
|
||||
|
||||
|
||||
public class RedstoneInputTileEntity extends TileEntityBaseTardimPanel {
|
||||
public RedstoneInputTileEntity(BlockPos pos, BlockState state) {
|
||||
super(Registration.REDSTONE_TARDIM_INPUT_TILEENTITY.get(), pos, state);
|
||||
}
|
||||
|
||||
|
||||
public BlockPos getPos() {
|
||||
return this.worldPosition;
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package su.a71.tardim_ic.tardim_ic.redsone_input;
|
||||
package su.a71.tardim_ic.tardim_ic.redstone_input;
|
||||
|
||||
import com.swdteam.common.block.BlockBaseTardimPanel;
|
||||
import com.swdteam.common.init.TRDDimensions;
|
||||
|
@ -29,16 +29,13 @@ import net.minecraft.world.level.block.state.BlockState;
|
|||
import net.minecraft.world.level.material.Material;
|
||||
import net.minecraft.world.phys.BlockHitResult;
|
||||
|
||||
import net.minecraftforge.common.util.FakePlayerFactory; // TODO: ???
|
||||
import net.minecraftforge.server.ServerLifecycleHooks;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import su.a71.tardim_ic.tardim_ic.Registration;
|
||||
import su.a71.tardim_ic.tardim_ic.utils.FakePlayer;
|
||||
|
||||
public class RedstoneInputBlock extends BlockBaseTardimPanel implements EntityBlock {
|
||||
private boolean isPowered = false;
|
||||
public RedstoneInputBlock() {
|
||||
super(Properties.of(Material.METAL).strength(2, 4).noOcclusion());
|
||||
}
|
||||
|
@ -59,6 +56,7 @@ public class RedstoneInputBlock extends BlockBaseTardimPanel implements EntityBl
|
|||
if (be instanceof TileEntityBaseTardimPanel && w.dimension() == TRDDimensions.TARDIS) {
|
||||
TardimData data = TardimManager.getFromPos(blockPos);
|
||||
if (data != null && data.hasPermission(player)) {
|
||||
((RedstoneInputTileEntity) be).lastPlayer = player.getGameProfile().getId();
|
||||
NetworkHandler.sendTo((ServerPlayer)player, new PacketOpenEditGui(1, blockPos));
|
||||
return InteractionResult.CONSUME;
|
||||
}
|
||||
|
@ -79,22 +77,26 @@ public class RedstoneInputBlock extends BlockBaseTardimPanel implements EntityBl
|
|||
public void neighborChanged(BlockState blockState, Level level, BlockPos blockPos, Block block, BlockPos fromPos, boolean isMoving) {
|
||||
DebugPackets.sendNeighborsUpdatePacket(level, blockPos);
|
||||
|
||||
BlockEntity be = level.getBlockEntity(blockPos);
|
||||
if (!(be instanceof RedstoneInputTileEntity)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// get redstone signal
|
||||
Direction direction = blockState.getValue(FACING);
|
||||
int redstoneSignal = level.getSignal(blockPos, direction);
|
||||
if (redstoneSignal > 0 && !isPowered) {
|
||||
isPowered = true;
|
||||
BlockEntity be = level.getBlockEntity(blockPos);
|
||||
if (be instanceof TileEntityBaseTardimPanel && level.dimension() == TRDDimensions.TARDIS) {
|
||||
if (redstoneSignal > 0 && !((RedstoneInputTileEntity) be).isPowered) {
|
||||
((RedstoneInputTileEntity) be).isPowered = true;
|
||||
if (level.dimension() == TRDDimensions.TARDIS) {
|
||||
TardimData data = TardimManager.getFromPos(blockPos);
|
||||
if (data != null) {
|
||||
if (data != null && !level.isClientSide && ((RedstoneInputTileEntity) be).lastPlayer != null) {
|
||||
if (((TileEntityBaseTardimPanel)be).hasCommand()) {
|
||||
((TileEntityBaseTardimPanel)be).execute(FakePlayerFactory.getMinecraft(ServerLifecycleHooks.getCurrentServer().getLevel(level.dimension())));
|
||||
((TileEntityBaseTardimPanel)be).execute(new FakePlayer(level, blockPos, ((RedstoneInputTileEntity) be).lastPlayer));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else if (redstoneSignal == 0 && isPowered)
|
||||
isPowered = false;
|
||||
} else if (redstoneSignal == 0 && ((RedstoneInputTileEntity) be).isPowered)
|
||||
((RedstoneInputTileEntity) be).isPowered = false;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
package su.a71.tardim_ic.tardim_ic.redstone_input;
|
||||
|
||||
import com.swdteam.tileentity.TileEntityBaseTardimPanel;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import su.a71.tardim_ic.tardim_ic.Registration;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
||||
public class RedstoneInputTileEntity extends TileEntityBaseTardimPanel {
|
||||
public boolean isPowered = false;
|
||||
public UUID lastPlayer = null;
|
||||
|
||||
public RedstoneInputTileEntity(BlockPos pos, BlockState state) {
|
||||
super(Registration.REDSTONE_TARDIM_INPUT_TILEENTITY.get(), pos, state);
|
||||
}
|
||||
|
||||
public BlockPos getPos() {
|
||||
return this.worldPosition;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void saveAdditional(CompoundTag tag) {
|
||||
tag.putBoolean("is_powered", isPowered);
|
||||
if (lastPlayer != null) {
|
||||
tag.putUUID("last_player", lastPlayer);
|
||||
}
|
||||
super.saveAdditional(tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void load(CompoundTag tag) {
|
||||
super.load(tag);
|
||||
isPowered = tag.getBoolean("is_powered");
|
||||
lastPlayer = tag.getUUID("last_player");
|
||||
}
|
||||
}
|
|
@ -8,6 +8,6 @@ import com.swdteam.common.init.CommandManager;
|
|||
public class CommandInit {
|
||||
public static void init() {
|
||||
CommandManager.register(new CommandModemTransmit());
|
||||
//CommandManager.register(new CommandCloisterBell());
|
||||
CommandManager.register(new CommandCloisterBell());
|
||||
}
|
||||
}
|
||||
|
|
15
Forge/src/main/resources/mixins.tardim_ic.json
Normal file
15
Forge/src/main/resources/mixins.tardim_ic.json
Normal file
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"required": true,
|
||||
"package": "su.a71.tardim_ic.tardim_ic.mixin",
|
||||
"compatibilityLevel": "JAVA_17",
|
||||
"refmap": "refmap.tardim_ic.json",
|
||||
"mixins": [
|
||||
"Commands"
|
||||
],
|
||||
"client": [
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
},
|
||||
"minVersion": "0.8.4"
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue