Jump to content

Modular Chunk Control - WIP - Looking for assistance if anyone's interested!


Recommended Posts

Posted

So, I'll let me write up do the talking, I'm interested in two things here:

 

1. Constructive Criticism of the idea / implementation plan.

 

2. Suggestions / Offers of assistance, which include people who want to just add to the concept, those who might like to help code, and even someone interested in modelling/textures (I am terrible at art...)

 

So here's my post straight off github..

-----------------------------------------------------------------------------

First, the basics!

 

This mod will be coded as a Minecraft Forge mod!

 

This mod will be OPEN SOURCE! Let others learn from it as they wish!

 

This mod will be user-friendly and configurable! No sacrifices or cut corners to make it easier to code!

 

This mod will use many API's to ensure compatibility with many, many popular Forge mods!

 

Now, the plan, summarized: A single block, powered by items (like a railcraft chunkloader) or by power (IC2, TE3, BC, UE,etc) in mass quantities, to effect chunks in certain ways. This is not a 'cheater' block, it won't reveal diamonds in the chunk you are in, but rather through its upgrades it can act as a chunk loader, a chunk ownership controller (with a whitelist for friends!), a block-break protector, a mob repulsor/spawn blocker, even a PvP Assault Block! (This might be a little ways down the line, and will definitely be configurable! More on this function in the 'upgrades' section) The block will consume items/energy based on its upgrades, essentially, the more it does, the more its going to cost to run it! (There are some crossovers with this block and MFFS's Interdiction Matrix, which is not coincidental! The block is very useful, but does not have all the functionality I would give it!) That is a pretty fair summation, now to break down some of the specifics!

 

Blocks: Only one!

Modular Chunk Control Matrix (MCCM)

 

  This block does nothing on its own! It is merely a shell, with many many slots for upgrades, inputs, settings, and more! The plan is for this block to be semi-costly, but not overly so, rather the upgrades are what makes it expensive. An eventual goal would be for the block to adjust its texture and shape based on what upgrades are placed inside of it, and another thought along that same line would be for it to have only a certain number of upgrades available per Matrix, but it could be increased by adding more Matrices (multiblock structure). The block itself will feature an owner-locked interface, much like TE3's Tesseracts/Strongboxes, or various Forestry machines. The block will fill an internal buffer with 'Dimensional Energy' (DE) for consumption as it works, based on upgrades. The MCCM has a button for redstone signal control, similar to TE3 machines among others.

 

Upgrades: So Configurable!

 

  Functions:

    Chunk Loading

      The Chunk Loading upgrade is self explanatory, the effected chunks will remain loaded while the MCCM is powered. This would be a fairly costly upgrade, one of the most expensive, and it would scale in cost based on effected chunks added up.

    Chunk Ownership (interaction prevention)

      My thoughts on 'chunk ownership' would be for it to work essentially like TE3's strongboxes, but all blocks/tiles within the effected chunks would gain this protection, marking some kind of message to the player who attempted to 'right click' any block similar to attempting to use a strongbox you do not have access to. This obviously would scale in power consumption based on number of chunks effected.

    Block Break Prevention

      Using Forge's BlockBreak event, this would prevent players/objects from breaking the blocks within effected chunks, which would include effects like TNT, Quarries, Creeper explosions, etc. Scales with total number of chunks effected.

    Monster Spawn Prevention

      Fairly simple, prevents monsters from spawning within the effected chunks. Scales with total number of chunks effected.

    Monster Repellent

      Simple also, prevents monsters from moving into the effected chunks. Scales with total number of chunks effected.

    Item Consumption

      This upgrade is mutually exclusive to the 'energy consumption' upgrade, and the configuration file can disable this upgrade entirely if desired. This upgrade will consume an item to power the MCCM, the item consumed can be configured and how much Dimensional Energy will be provided per item. Multiple items with different 'DE' levels can be setup via the configuration files.

    Energy Consumption

      This upgrade is mutually exclusive to the 'item consumption' upgrade, and the configuration file can disable this upgrade entirely if desired. This upgrade will consume 'power' to fill its Dimensional Energy buffer to power the MCCM. Acceptable power types can be configured (EU, RF, MJ, etc) as well as a configurable level of transfer from said energies into 'DE'.

    Chunk Assault (PvP)

      This upgrade cannot be used with Chunk ownership or Block break protection. It can also be disabled entirely via the configuration file. This upgrade is an aggression upgrade, used to disable MCCM's owned by other players.It's functionality is still somewhat unclear, and it might wait for a later version before being included. Theidea is, this upgrade will attack a nearby MCCM in attempts to disable it. Based on the number of Chunk Assault upgrades placed in it vs the Assault Resistance in the defending MCCM, it will drain extra power from the MCCM to attempt to bring it offline. The offensive MCCM has to have its area adjusted to overlap with an existing MCCM in order to 'attack' it, and the aggressive MCCM, as it cannot be used with Block Break protection or interaction protection, loses its 'ownership' protection provided natively by the MCCM block itself; long story short, if you do not protect it in other ways, or hide it, a defending player might notice the attack and dismantle your aggressive MCCM (they cannot interact with it, but it can be destroyed! It has an incredibly long break time, and requires either a sword or pickaxe, and will destroy the block and all upgrades within! This is a WIP concept that might need a bit of refining! This costs Dimensional Energy based on total number of chunks effected.

    Square

      This upgrade is mutually exclusive with the 'circle' upgrade. The more square upgrades placed in the MCCM, the more chunks the square will encompass, increasing its length by 1 in each direction per square upgrade. For example: No square upgrade, the MCCM only effects the chunk its contained in. One square upgrade, the MCCM now effects a 3x3 area, two upgrades, 5x5, three, 7x7, etc. This upgrade itself does not cost Dimensional Energy, but rather other upgrades scale to total chunks effected.

    Circle

      This upgrade is mutually exclusive with the 'square' upgrade. The more circle upgrades placed in the MCCM, the more chunks the circle will encompass, increasing its radius by 1 in per circle upgrade. The circle upgrade is not exactly very circular, because by nature minecraft's chunks are square, but its a fairly simple process to get the idea here.. As a general rule, circle will always effect less total chunks than 'square' for the same ammount of upgrades. For example, no circle upgrades, the MCCM only effects the chunk it is contained in. With one circle upgrade, the radius moves to '1' moving one chunk in each direction, for a total of 5 chunks, as opposed to 9 chunks for square. Two circle upgrades moves the radius to 2, increasing the total chunks to 13, with three, the radius of 3 will increase the total chunks to 25, and so on. This upgrade itself does not cost Dimensional Energy, but rather other upgrades scale to total chunks effected.

    Bonus Chunks

      This upgrade is similar to the above in that it adds chunks to the MCCM, but unlike the others it can and is intended to be used with either circle or square upgrades. The Bonus Chunks upgrade adds one bonus chunk per upgrade, and that bonus chunk can be 'assigned' manually via shift right clicking the MCCM with bonus chunks available, then moving to the chunk you wish to add and shift right clicking anything in that chunk. The chunk must be contiguous, or connected, to already effected chunks, either by means of bonus chunks forming a line or adding a chunk at the edge of a square or circle formation. There will be a button in the MCCM gui to reset bonus chunks, when applicable. This upgrade does not cost Dimensional Energy itself, but rather other upgrades scale with total chunks effected.

    Assault Resistance

      This upgrade is simple, it provides a flat 10% resistance to the Chunk Assault effect, up to a maximum of 50% resistance added by these upgrades (would take 5, obviously). This costs extra Dimensional Energy, and scales with total chunks effected.

    Whitelist Control

      This upgrade adds a whitelist control section to the gui of the MCCM, allowing the owner to add players to a list that would allow them to ignore the restrictions and effects of the MCCM. There is also a setting for whether or not to allow them to configure the MCCM itself, by default, they cannot. This upgrade has a flat cost, it does not scale with total number of chunks effected.

    Dimensional Energy Buffer Boost

      A simple upgrade that adds a flat 20% increased to the maximum Dimensional Energy contained in the MCCM, this bonus is capped at 100% increase (with 5 upgrades of this type). This upgrade costs a flat amount of DE, it does not scale with number of chunks effected.

    Communication Suppressor

      This upgrade causes anyone within its chunk boundaries to only be able to speak with players within its boundaries, anyone outside of the effected chunks will not see any chat made from inside. This upgrade costs a flat ammount of Dimensional Energy, it does not scale with total number of effected chunks.

    Communication Silencer

      This upgrade is a counterpart to the Communication Suppressor, it causes anyone's chat from outside the effected chunks to be silenced to those within the effected chunks. It costs a flat ammount of Dimensional Energy, it does not cost more per effected chunk.

    Communication Satellite Link

      This upgrade is a further evolution to the Communication Supressor and Silencer. It requires a communication link card to be set to a certain frequency and added to the MCCM as an upgrade, only one frequency can be added at a one time. Any players outside the boundaries of the MCCM but possessing a communication link card set to the proper frequency can shift right click the card to set their chat to 'Satellite Linked' mode and will chat as if they are within the MCCM. Having the card in their possesion also causes them to see chat from within the linked MCCM. They do still see chat from other players however, and also can chat to other players by shift right clicking the card to disable Satellite link chat. This upgrade's cost does not scale with number of chunks effected.

    Dimensional Tearing

      This peculiar upgrade adds the ability to create portals between two MCCM's with this upgrade installed. This upgrade costs a flat, not scaling ammount, but it is a huge ammount. While this upgrade is active, a Dimensional portal can be openned up by connecting two portals (with a frequency card set to the same frequency). These portals will behave like Mystcraft portals, and work perfectly fine between dimensions, but they require that both sides have the Dimensional Tearing upgrade installed, that the portals share the same frequency, and that both sides are chunkloaded (via any method necessary).

-----------------------------------------------------------------------------

Find my github at https://github.com/aridhol/Modular-Chunk-Control (not much to see there yet!)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Im trying to build my mod using shade since i use the luaj library however i keep getting this error Reason: Task ':reobfJar' uses this output of task ':shadowJar' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. So i try adding reobfJar.dependsOn shadowJar  Could not get unknown property 'reobfJar' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. my gradle file plugins { id 'eclipse' id 'idea' id 'maven-publish' id 'net.minecraftforge.gradle' version '[6.0,6.2)' id 'com.github.johnrengelman.shadow' version '7.1.2' id 'org.spongepowered.mixin' version '0.7.+' } apply plugin: 'net.minecraftforge.gradle' apply plugin: 'org.spongepowered.mixin' apply plugin: 'com.github.johnrengelman.shadow' version = mod_version group = mod_group_id base { archivesName = mod_id } // Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17. java.toolchain.languageVersion = JavaLanguageVersion.of(17) //jarJar.enable() println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}" minecraft { mappings channel: mapping_channel, version: mapping_version copyIdeResources = true runs { configureEach { workingDirectory project.file('run') property 'forge.logging.markers', 'REGISTRIES' property 'forge.logging.console.level', 'debug' arg "-mixin.config=derp.mixin.json" mods { "${mod_id}" { source sourceSets.main } } } client { // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. property 'forge.enabledGameTestNamespaces', mod_id } server { property 'forge.enabledGameTestNamespaces', mod_id args '--nogui' } gameTestServer { property 'forge.enabledGameTestNamespaces', mod_id } data { workingDirectory project.file('run-data') args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') } } } sourceSets.main.resources { srcDir 'src/generated/resources' } repositories { flatDir { dirs './libs' } maven { url = "https://jitpack.io" } } configurations { shade implementation.extendsFrom shade } dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" implementation 'org.luaj:luaj-jse-3.0.2' implementation fg.deobf("com.github.Virtuoel:Pehkui:${pehkui_version}") annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' minecraftLibrary 'luaj:luaj-jse:3.0.2' shade 'luaj:luaj-jse:3.0.2' } // Example for how to get properties into the manifest for reading at runtime. tasks.named('jar', Jar).configure { manifest { attributes([ 'Specification-Title' : mod_id, 'Specification-Vendor' : mod_authors, 'Specification-Version' : '1', // We are version 1 of ourselves 'Implementation-Title' : project.name, 'Implementation-Version' : project.jar.archiveVersion, 'Implementation-Vendor' : mod_authors, 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), "TweakClass" : "org.spongepowered.asm.launch.MixinTweaker", "TweakOrder" : 0, "MixinConfigs" : "derp.mixin.json" ]) } rename 'mixin.refmap.json', 'derp.mixin-refmap.json' } shadowJar { archiveClassifier = '' configurations = [project.configurations.shade] finalizedBy 'reobfShadowJar' } assemble.dependsOn shadowJar reobf { re shadowJar {} } publishing { publications { mavenJava(MavenPublication) { artifact jar } } repositories { maven { url "file://${project.projectDir}/mcmodsrepo" } } }  
    • Todas as versões do Minecraft Forge são repentinamente tela preta, mesmo sem mods (tentei reinstalar o Minecraft original, Java, atualizar os drivers não funciona)
    • When i join minecraft all ok, when i join world all working fine, but when i open indentity menu, i get this The game crashed whilst unexpected error Error: java.lang.NullPointerException: Cannot invoke "top.ribs.scguns.common.Gun$Projectile.getDamage()" because "this.projectile" is null crash report here https://paste.ee/p/0vKaf
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.