@ -1,24 +0,0 @@
|
||||
Network Chips:
|
||||
- Contain a Network ID In NBT
|
||||
- When Held, Highlights Supported Blocks
|
||||
- When Right-Cliking On A Supported-Block Add it To The Network
|
||||
Energy Recievers:
|
||||
- Conatin network ID(s)
|
||||
- Requests a certain amount of power every tick
|
||||
- Spreads out power ewuest over all networks
|
||||
- Chunk loads unloaded networks
|
||||
- No energy transfer speed restrictions
|
||||
Energy Providers:
|
||||
- Contaisn Network Chip
|
||||
- Can only provide power to recievers within 60 blocks
|
||||
- Can be an energy reciever
|
||||
Battery:
|
||||
- Surrounded on all but one sides by Battery casing, last side covered by battery controller
|
||||
- Energy reiever for charging
|
||||
- Energy prvodier for usage
|
||||
- Highlight covers entire multi-block
|
||||
Reactor:
|
||||
- Temporary battery
|
||||
- Refreshes battery every 10 ticks, no fuel set battery to 0, if fuel fill battery
|
||||
|
||||
On each tick an energy receiver can add an "action", an action has a success function, a fail function, and a cost, the action is propagated up to the energy provider, which will either execute the success function and deduct the energy amount, or execute the fail function.
|
Before Width: | Height: | Size: 530 B |
Before Width: | Height: | Size: 658 B |
Before Width: | Height: | Size: 591 B |
Before Width: | Height: | Size: 584 B |
Before Width: | Height: | Size: 628 B |
Before Width: | Height: | Size: 634 B |
Before Width: | Height: | Size: 527 B |
@ -0,0 +1,16 @@
|
||||
package com.thebrokenrail.energonrelics.client;
|
||||
|
||||
import com.thebrokenrail.energonrelics.client.config.UserConfig;
|
||||
import io.github.prospector.modmenu.api.ConfigScreenFactory;
|
||||
import io.github.prospector.modmenu.api.ModMenuApi;
|
||||
import me.sargunvohra.mcmods.autoconfig1u.AutoConfig;
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public class ModMenu implements ModMenuApi {
|
||||
@Override
|
||||
public ConfigScreenFactory<?> getModConfigScreenFactory() {
|
||||
return screen -> AutoConfig.getConfigScreen(UserConfig.class, screen).get();
|
||||
}
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
package com.thebrokenrail.energonrelics.client.config;
|
||||
|
||||
import com.thebrokenrail.energonrelics.EnergonRelics;
|
||||
import me.sargunvohra.mcmods.autoconfig1u.ConfigData;
|
||||
import me.sargunvohra.mcmods.autoconfig1u.annotation.Config;
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
@Config(name = EnergonRelics.NAMESPACE)
|
||||
public class UserConfig implements ConfigData {
|
||||
public enum TextureSet {
|
||||
TheBrokenRail,
|
||||
PoeticRainbow;
|
||||
|
||||
public String namespace() {
|
||||
return EnergonRelics.NAMESPACE + '-' + name().toLowerCase(Locale.ROOT);
|
||||
}
|
||||
}
|
||||
|
||||
public TextureSet textureSet = TextureSet.TheBrokenRail;
|
||||
}
|
@ -0,0 +1,46 @@
|
||||
package com.thebrokenrail.energonrelics.mixin;
|
||||
|
||||
import com.thebrokenrail.energonrelics.EnergonRelics;
|
||||
import com.thebrokenrail.energonrelics.client.config.UserConfig;
|
||||
import me.sargunvohra.mcmods.autoconfig1u.AutoConfig;
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.minecraft.resource.AbstractFileResourcePack;
|
||||
import net.minecraft.resource.ResourceType;
|
||||
import net.minecraft.util.Identifier;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
@Mixin(AbstractFileResourcePack.class)
|
||||
public class MixinAbstractFileResourcePack {
|
||||
@Inject(at = @At("HEAD"), method = "open", cancellable = true)
|
||||
public void injectOpen(ResourceType type, Identifier id, CallbackInfoReturnable<InputStream> info) {
|
||||
if (id.getNamespace().equals(EnergonRelics.NAMESPACE)) {
|
||||
try {
|
||||
Identifier newID = new Identifier(AutoConfig.getConfigHolder(UserConfig.class).getConfig().textureSet.namespace(), id.getPath());
|
||||
InputStream in = ((AbstractFileResourcePack) (Object) this).open(type, newID);
|
||||
if (in != null) {
|
||||
info.setReturnValue(in);
|
||||
}
|
||||
} catch (IOException ignored) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(at = @At("HEAD"), method = "contains", cancellable = true)
|
||||
public void injectContains(ResourceType type, Identifier id, CallbackInfoReturnable<Boolean> info) {
|
||||
if (id.getNamespace().equals(EnergonRelics.NAMESPACE)) {
|
||||
Identifier newID = new Identifier(AutoConfig.getConfigHolder(UserConfig.class).getConfig().textureSet.namespace(), id.getPath());
|
||||
boolean out = ((AbstractFileResourcePack) (Object) this).contains(type, newID);
|
||||
if (out) {
|
||||
info.setReturnValue(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"parent": "minecraft:block/orientable",
|
||||
"textures": {
|
||||
"top": "energonrelics:block/thermal_casing",
|
||||
"front": "energonrelics:block/active_battery_controller",
|
||||
"side": "energonrelics:block/thermal_casing"
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"parent": "minecraft:block/orientable",
|
||||
"textures": {
|
||||
"top": "energonrelics:block/thermal_casing",
|
||||
"front": "energonrelics:block/passive_battery_controller",
|
||||
"side": "energonrelics:block/thermal_casing"
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"parent": "minecraft:block/orientable",
|
||||
"textures": {
|
||||
"top": "energonrelics:block/thermal_casing",
|
||||
"front": "energonrelics:block/reactor_controller",
|
||||
"side": "energonrelics:block/thermal_casing"
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"parent": "minecraft:block/orientable",
|
||||
"textures": {
|
||||
"top": "energonrelics:block/thermal_casing",
|
||||
"front": "energonrelics:block/reactor_controller",
|
||||
"side": "energonrelics:block/thermal_casing"
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 514 B |
After Width: | Height: | Size: 549 B |
After Width: | Height: | Size: 525 B |
After Width: | Height: | Size: 525 B |
After Width: | Height: | Size: 595 B |
After Width: | Height: | Size: 578 B |
After Width: | Height: | Size: 261 B |
After Width: | Height: | Size: 426 B |
@ -1,7 +1,10 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "energonrelics:block/defensive_laser"
|
||||
"powered=false": {
|
||||
"model": "energonrelics:block/defensive_laser_off"
|
||||
},
|
||||
"powered=true": {
|
||||
"model": "energonrelics:block/defensive_laser_on"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "minecraft:block/cube_all",
|
||||
"textures": {
|
||||
"all": "energonrelics:block/defensive_laser_off"
|
||||
}
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"parent": "minecraft:block/cube_all",
|
||||
"textures": {
|
||||
"all": "energonrelics:block/defensive_laser"
|
||||
"all": "energonrelics:block/defensive_laser_on"
|
||||
}
|
||||
}
|
@ -1,3 +1,3 @@
|
||||
{
|
||||
"parent": "energonrelics:block/defensive_laser"
|
||||
"parent": "energonrelics:block/defensive_laser_on"
|
||||
}
|
Before Width: | Height: | Size: 775 B After Width: | Height: | Size: 775 B |
After Width: | Height: | Size: 752 B |