Skip to content

Commit c479366

Browse files
author
Circulate233
committed
维修bug以及添加材质
1 parent ad2c259 commit c479366

File tree

7 files changed

+66
-40
lines changed

7 files changed

+66
-40
lines changed

src/main/java/github/kasuminova/novaeng/common/block/BlockDreamEnergyPort.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,16 @@
88
import net.minecraft.client.util.ITooltipFlag;
99
import net.minecraft.item.ItemStack;
1010
import net.minecraft.tileentity.TileEntity;
11+
import net.minecraft.util.BlockRenderLayer;
12+
import net.minecraft.util.EnumBlockRenderType;
1113
import net.minecraft.world.World;
1214
import net.minecraftforge.fml.relauncher.Side;
1315
import net.minecraftforge.fml.relauncher.SideOnly;
1416
import sonar.fluxnetworks.common.block.BlockFluxStorage;
1517
import sonar.fluxnetworks.common.registry.RegistryBlocks;
1618
import sonar.fluxnetworks.common.registry.RegistryItems;
1719

20+
import javax.annotation.Nonnull;
1821
import javax.annotation.Nullable;
1922
import java.util.List;
2023

@@ -47,4 +50,17 @@ public void addInformation(ItemStack stack, @Nullable World player, List<String>
4750
tooltip.add(I18n.format("text.dream_energy_port.0"));
4851
tooltip.add(I18n.format("text.dream_energy_port.1"));
4952
}
53+
54+
@Nonnull
55+
@Override
56+
@SideOnly(Side.CLIENT)
57+
public BlockRenderLayer getRenderLayer() {
58+
return BlockRenderLayer.CUTOUT;
59+
}
60+
61+
@Nonnull
62+
@Override
63+
public EnumBlockRenderType getRenderType(@Nonnull IBlockState state) {
64+
return EnumBlockRenderType.MODEL;
65+
}
5066
}

src/main/java/github/kasuminova/novaeng/common/machine/DreamEnergyCore.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ private static boolean canExtract(NBTTagCompound nbt,float speed){
225225
*/
226226
public static void receiveEnergy(NBTTagCompound nbt,float speed,long defaultTransferAmount) {
227227
var energyStored = getEnergyStored(nbt);
228-
var sz = getBigInt(Long.toString((long) (speed * defaultTransferAmount)));
228+
var sz = getBigInt((long) (speed * defaultTransferAmount));
229229

230230
nbt.setString("energyStored",energyStored.add(sz).toString());
231231
if (ENERGY_STORED_CACHE.size() > 3000) {
@@ -238,7 +238,7 @@ public static void receiveEnergy(NBTTagCompound nbt,float speed,long defaultTran
238238
*/
239239
public static void extractEnergy(NBTTagCompound nbt,float speed,long defaultTransferAmount) {
240240
var energyStored = getEnergyStored(nbt);
241-
var sz = getBigInt(Long.toString((long) (speed * defaultTransferAmount)));
241+
var sz = getBigInt((long) (speed * defaultTransferAmount));
242242

243243
nbt.setString("energyStored",energyStored.subtract(sz).toString());
244244
if (ENERGY_STORED_CACHE.size() > 3000) {
@@ -277,6 +277,11 @@ public static void extractEnergy(IMachineController ctrl,float speed,long amount
277277
extractEnergy(ctrl.getController().getCustomDataTag(),speed,amount);
278278
}
279279

280+
@ZenMethod
281+
public static BigInteger getBigInt(long num){
282+
return getBigInt(Long.toString(num));
283+
}
284+
280285
@ZenMethod
281286
public static BigInteger getBigInt(String num){
282287
return ENERGY_STORED_CACHE.computeIfAbsent(num, BigInteger::new);
@@ -293,9 +298,13 @@ private String change(TileMultiblockMachineController ctrl){
293298
if (newbig.equals(oldbig)) {
294299
return "0";
295300
} else {
296-
var changel = newbig.subtract(oldbig).longValue();
301+
var changel = newbig.subtract(oldbig);
297302
var denominator = 1200L / MinuteScale * energy.size();
298-
return formatNumber(changel / denominator);
303+
if (changel.compareTo(BigLongMax) > 0) {
304+
return formatNumber(changel.divide(getBigInt(denominator)));
305+
} else {
306+
return formatNumber(changel.longValue() / denominator);
307+
}
299308
}
300309
}
301310

Lines changed: 7 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,24 @@
11
package github.kasuminova.novaeng.mixin.fluxnetworks;
22

3-
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
4-
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
5-
import github.kasuminova.novaeng.common.handler.DreamEnergyPortHandler;
63
import org.spongepowered.asm.mixin.Mixin;
74
import org.spongepowered.asm.mixin.Shadow;
8-
import org.spongepowered.asm.mixin.Unique;
95
import org.spongepowered.asm.mixin.injection.At;
10-
import org.spongepowered.asm.mixin.injection.Inject;
11-
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
12-
import sonar.fluxnetworks.api.network.FluxLogicType;
6+
import org.spongepowered.asm.mixin.injection.Redirect;
137
import sonar.fluxnetworks.api.network.ITransferHandler;
14-
import sonar.fluxnetworks.api.tiles.IFluxConnector;
158
import sonar.fluxnetworks.common.connection.FluxNetworkBase;
169
import sonar.fluxnetworks.common.connection.FluxNetworkServer;
17-
import sonar.fluxnetworks.common.connection.NetworkStatistics;
18-
19-
import javax.annotation.Nonnull;
20-
import java.util.List;
2110

2211
@Mixin(value = FluxNetworkServer.class,remap = false)
2312
public abstract class MixinFluxNetworkServer extends FluxNetworkBase {
2413

2514
@Shadow
2615
public long bufferLimiter;
2716

28-
@Shadow
29-
@Nonnull
30-
public abstract <T extends IFluxConnector> List<T> getConnections(FluxLogicType type);
31-
32-
@Unique
33-
private ITransferHandler novaEngineering_Core$instance;
34-
35-
@WrapOperation(method = "onEndServerTick", at = @At(value = "INVOKE", target = "Lsonar/fluxnetworks/api/network/ITransferHandler;getRequest()J",ordinal = 1))
36-
public long getRequestMixin(ITransferHandler instance, Operation<Long> original) {
37-
this.novaEngineering_Core$instance = instance;
38-
return original.call(instance);
39-
}
40-
41-
@Inject(method = "onEndServerTick", at = @At(value = "INVOKE", target = "Lsonar/fluxnetworks/api/network/ITransferHandler;getRequest()J",ordinal = 1,shift = At.Shift.AFTER), cancellable = true)
42-
public void getRequestI(CallbackInfo ci) {
43-
if (novaEngineering_Core$instance instanceof DreamEnergyPortHandler){
44-
this.bufferLimiter = Long.MAX_VALUE;
45-
((NetworkStatistics)this.network_stats.getValue()).stopProfiling();
46-
ci.cancel();
47-
}
17+
@Redirect(method = "onEndServerTick", at = @At(value = "INVOKE", target = "Lsonar/fluxnetworks/api/network/ITransferHandler;getRequest()J",ordinal = 1))
18+
public long getRequest(ITransferHandler instance){
19+
var i = instance.getRequest();
20+
if (this.bufferLimiter == Long.MAX_VALUE) {
21+
return 0;
22+
} else return Math.min(Long.MAX_VALUE - this.bufferLimiter, i);
4823
}
4924
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"forge_marker": 1,
3+
"defaults": {
4+
"model": "novaeng_core:dreamenergyport"
5+
},
6+
"variants": {
7+
"connected=false": {
8+
"model": "novaeng_core:dreamenergyport"
9+
},
10+
"connected=true": {
11+
"model": "novaeng_core:dreamenergyport"
12+
},
13+
"inventory": [
14+
{
15+
"transform": "forge:default-block"
16+
}
17+
]
18+
}
19+
}

src/main/resources/assets/novaeng_core/lang/en_US.lang

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -540,8 +540,8 @@ gui.geocentric_drill.ore_control.tooltip.chance=输出权重:§a%s%%§f
540540
gui.novaeng_core.replicator=可复制列表
541541
gui.novaeng_core.replicator.tooltips1=需要%sB UU物质复制
542542

543-
text.dream_energy_port.0="替换梦之能量核心的智能数据接口以启用通量模式"
544-
text.dream_energy_port.1="通量模式下,梦之能量核心将直接作为通量网络缓存"
543+
text.dream_energy_port.0=替换梦之能量核心的智能数据接口以启用通量模式
544+
text.dream_energy_port.1=通量模式下,梦之能量核心将直接作为通量网络缓存
545545

546546
enchantment.magic_breaking=破魔
547547
enchantment.novaeng_core.magic_breaking.desc=对于剩余血量大于10的生物,你的每一次伤害都将是真实的(无视免伤和护甲),但你无法一次击杀它们

src/main/resources/assets/novaeng_core/lang/zh_CN.lang

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -540,8 +540,8 @@ gui.geocentric_drill.ore_control.tooltip.chance=输出权重:§a%s%%§f
540540
gui.novaeng_core.replicator=可复制列表
541541
gui.novaeng_core.replicator.tooltips1=需要%sB UU物质复制
542542

543-
text.dream_energy_port.0="替换梦之能量核心的智能数据接口以启用通量模式"
544-
text.dream_energy_port.1="通量模式下,梦之能量核心将直接作为通量网络缓存"
543+
text.dream_energy_port.0=替换梦之能量核心的智能数据接口以启用通量模式
544+
text.dream_energy_port.1=通量模式下,梦之能量核心将直接作为通量网络缓存
545545

546546
enchantment.magic_breaking=破魔
547547
enchantment.novaeng_core.magic_breaking.desc=对于剩余血量大于10的生物,你的每一次伤害都将是真实的(无视免伤和护甲),但你无法一次击杀它们
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"parent": "modularmachinery:block/blockmodel_overlay_all",
3+
"textures": {
4+
"bg_all": "contenttweaker:blocks/extrememachineblock",
5+
"ov_all": "fluxnetworks:items/fluxcore"
6+
}
7+
}

0 commit comments

Comments
 (0)