This commit is contained in:
parent
7d224ea353
commit
573cd4dd24
@ -13,6 +13,7 @@ import net.minecraft.block.ShapeContext;
|
|||||||
import net.minecraft.block.enums.DoubleBlockHalf;
|
import net.minecraft.block.enums.DoubleBlockHalf;
|
||||||
import net.minecraft.block.piston.PistonBehavior;
|
import net.minecraft.block.piston.PistonBehavior;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.state.StateManager;
|
import net.minecraft.state.StateManager;
|
||||||
import net.minecraft.state.property.EnumProperty;
|
import net.minecraft.state.property.EnumProperty;
|
||||||
import net.minecraft.state.property.Properties;
|
import net.minecraft.state.property.Properties;
|
||||||
@ -126,4 +127,9 @@ public class LightningRodBlock extends SimpleBlock {
|
|||||||
|
|
||||||
super.onBreak(world, pos, state, player);
|
super.onBreak(world, pos, state, player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Item asItem() {
|
||||||
|
return EnergonRelics.LIGHTNING_ROD_BASE_BLOCK.asItem();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,18 +25,18 @@ public class InfuserCategory implements RecipeCategory<InfuserDisplay> {
|
|||||||
Point startPoint = new Point(bounds.getCenterX() - 41, bounds.y + 10);
|
Point startPoint = new Point(bounds.getCenterX() - 41, bounds.y + 10);
|
||||||
List<Widget> widgets = new ArrayList<>();
|
List<Widget> widgets = new ArrayList<>();
|
||||||
widgets.add(Widgets.createRecipeBase(bounds));
|
widgets.add(Widgets.createRecipeBase(bounds));
|
||||||
widgets.add(Widgets.createResultSlotBackground(new Point(startPoint.x + 61, startPoint.y + 18)));
|
widgets.add(Widgets.createResultSlotBackground(new Point(startPoint.x + 61, startPoint.y + 26)));
|
||||||
widgets.add(Widgets.createLabel(new Point(bounds.x + bounds.width - 5, bounds.y + 5), new TranslatableText("category.rei." + EnergonRelics.NAMESPACE + ".infuser.chance", new DecimalFormat("###.##").format(display.successChance * 100d))).noShadow().rightAligned().color(0xFF404040, 0xFFBBBBBB));
|
widgets.add(Widgets.createLabel(new Point(bounds.x + bounds.width / 2, bounds.y + 9), new TranslatableText("category.rei." + EnergonRelics.NAMESPACE + ".infuser.chance", new DecimalFormat("###.##").format(display.successChance * 100d))).noShadow().centered().color(0xFF404040, 0xFFBBBBBB));
|
||||||
widgets.add(Widgets.createLabel(new Point(bounds.x + bounds.width - 5, bounds.y + 14), new TranslatableText("category.rei." + EnergonRelics.NAMESPACE + ".infuser.cost", display.cost)).noShadow().rightAligned().color(0xFF404040, 0xFFBBBBBB));
|
widgets.add(Widgets.createLabel(new Point(bounds.x + bounds.width / 2, bounds.y + 18), new TranslatableText("category.rei." + EnergonRelics.NAMESPACE + ".infuser.cost", display.cost)).noShadow().centered().color(0xFF404040, 0xFFBBBBBB));
|
||||||
widgets.add(Widgets.createArrow(new Point(startPoint.x + 24, startPoint.y + 17)).animationDurationTicks(HardcodedConfig.INFUSER_TIME));
|
widgets.add(Widgets.createArrow(new Point(startPoint.x + 24, startPoint.y + 25)).animationDurationTicks(HardcodedConfig.INFUSER_TIME));
|
||||||
widgets.add(Widgets.createSlot(new Point(startPoint.x + 1, startPoint.y + 18)).entries(display.getInputEntries().get(0)).markInput());
|
widgets.add(Widgets.createSlot(new Point(startPoint.x + 1, startPoint.y + 26)).entries(display.getInputEntries().get(0)).markInput());
|
||||||
widgets.add(Widgets.createSlot(new Point(startPoint.x + 61, startPoint.y + 18)).entries(display.getOutputEntries()).disableBackground().markOutput());
|
widgets.add(Widgets.createSlot(new Point(startPoint.x + 61, startPoint.y + 26)).entries(display.getOutputEntries()).disableBackground().markOutput());
|
||||||
return widgets;
|
return widgets;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getDisplayHeight() {
|
public int getDisplayHeight() {
|
||||||
return 58;
|
return 66;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.thebrokenrail.energonrelics.energy.core.util;
|
package com.thebrokenrail.energonrelics.energy.core.util;
|
||||||
|
|
||||||
|
import com.thebrokenrail.energonrelics.EnergonRelics;
|
||||||
import com.thebrokenrail.energonrelics.component.NetworkComponent;
|
import com.thebrokenrail.energonrelics.component.NetworkComponent;
|
||||||
import net.minecraft.server.world.ServerWorld;
|
import net.minecraft.server.world.ServerWorld;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
@ -18,7 +19,7 @@ public class EnergyTicker {
|
|||||||
|
|
||||||
public static void tick(World world) {
|
public static void tick(World world) {
|
||||||
if (Objects.requireNonNull(world.getServer()).getThread() == Thread.currentThread()) {
|
if (Objects.requireNonNull(world.getServer()).getThread() == Thread.currentThread()) {
|
||||||
world.getProfiler().push("energyTicker");
|
world.getProfiler().push(EnergonRelics.NAMESPACE);
|
||||||
|
|
||||||
NetworkComponent.getInstance((ServerWorld) world).clearCache();
|
NetworkComponent.getInstance((ServerWorld) world).clearCache();
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import com.thebrokenrail.energonrelics.block.forcefield.util.BeamBlock;
|
|||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.Box;
|
import net.minecraft.util.math.Box;
|
||||||
import net.minecraft.util.math.MathHelper;
|
import net.minecraft.util.math.MathHelper;
|
||||||
@ -19,25 +20,32 @@ import java.util.function.Predicate;
|
|||||||
|
|
||||||
@Mixin(Entity.class)
|
@Mixin(Entity.class)
|
||||||
public abstract class MixinEntity {
|
public abstract class MixinEntity {
|
||||||
@Shadow public abstract Box getBoundingBox();
|
@Shadow
|
||||||
|
public abstract Box getBoundingBox();
|
||||||
|
|
||||||
@Shadow public abstract World getEntityWorld();
|
@Shadow
|
||||||
|
public abstract World getEntityWorld();
|
||||||
|
|
||||||
|
@Shadow
|
||||||
|
public abstract MinecraftServer getServer();
|
||||||
|
|
||||||
@Unique
|
@Unique
|
||||||
private boolean isTouching(Predicate<Block> test) {
|
private boolean isTouching(Predicate<Block> test) {
|
||||||
Box box = getBoundingBox();
|
if (getServer() == null || getServer().getThread() == Thread.currentThread()) {
|
||||||
int i = MathHelper.floor(box.minX);
|
Box box = getBoundingBox();
|
||||||
int j = MathHelper.ceil(box.maxX);
|
int i = MathHelper.floor(box.minX);
|
||||||
int k = MathHelper.floor(box.minY);
|
int j = MathHelper.ceil(box.maxX);
|
||||||
int l = MathHelper.ceil(box.maxY);
|
int k = MathHelper.floor(box.minY);
|
||||||
int m = MathHelper.floor(box.minZ);
|
int l = MathHelper.ceil(box.maxY);
|
||||||
int n = MathHelper.ceil(box.maxZ);
|
int m = MathHelper.floor(box.minZ);
|
||||||
for (int p = i; p < j; ++p) {
|
int n = MathHelper.ceil(box.maxZ);
|
||||||
for (int q = k; q < l; ++q) {
|
for (int p = i; p < j; ++p) {
|
||||||
for (int r = m; r < n; ++r) {
|
for (int q = k; q < l; ++q) {
|
||||||
BlockPos pos = new BlockPos(p, q, r);
|
for (int r = m; r < n; ++r) {
|
||||||
if (test.test(getEntityWorld().getBlockState(pos).getBlock())) {
|
BlockPos pos = new BlockPos(p, q, r);
|
||||||
return true;
|
if (test.test(getEntityWorld().getBlockState(pos).getBlock())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,6 +51,6 @@
|
|||||||
"text.energonrelics.battery_core_tooltip": "%s Energon",
|
"text.energonrelics.battery_core_tooltip": "%s Energon",
|
||||||
"text.energonrelics.multimeter_separator": ", ",
|
"text.energonrelics.multimeter_separator": ", ",
|
||||||
"category.rei.energonrelics.infuser.chance": "%s%% Chance",
|
"category.rei.energonrelics.infuser.chance": "%s%% Chance",
|
||||||
"category.rei.energonrelics.infuser.cost": "Costing %s Energon",
|
"category.rei.energonrelics.infuser.cost": "%s Energon",
|
||||||
"category.rei.energonrelics.infuser.name": "Infuser"
|
"category.rei.energonrelics.infuser.name": "Infuser"
|
||||||
}
|
}
|
Reference in New Issue
Block a user