Skip to content

Commit 14b5dff

Browse files
authored
Merge pull request #4 from liansishen/fix
bug fix
2 parents 5c2dd56 + 491576c commit 14b5dff

File tree

8 files changed

+226
-64
lines changed

8 files changed

+226
-64
lines changed

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ GTNH私货模组
4848
* [ ] 便携式合成站
4949
* [ ] 蒸汽油气矿机
5050
* [ ] ~~燃油工厂(整合复杂的产线为一个多方块结构,造价等价于对应的产线)~~
51-
* T1:轻燃油
51+
* T1:轻燃油、重燃油
5252
* T2:柴油
53-
* Tn···
53+
* T3:高十六烷值汽油
54+
* T4:高辛烷值汽油
5455

dependencies.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,7 @@ dependencies {
4141
implementation('com.github.GTNewHorizons:Railcraft:9.15.15:dev')
4242
implementation("com.github.GTNewHorizons:EnderCore:0.4.6:dev") { transitive = false }
4343
implementation("com.github.GTNewHorizons:EnderIO:2.8.22:dev") { transitive = false }
44+
implementation('com.github.GTNewHorizons:twilightforest:2.6.5:dev')
45+
implementation("com.github.GTNewHorizons:Galaxy-Space-GTNH:1.1.97-GTNH:dev")
46+
implementation("com.github.GTNewHorizons:Galacticraft:3.2.6-GTNH:dev")
4447
}

src/main/java/com/hepdd/easytech/CommonProxy.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.hepdd.easytech;
22

33
import cpw.mods.fml.common.event.FMLInitializationEvent;
4+
import cpw.mods.fml.common.event.FMLLoadCompleteEvent;
45
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
56
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
67
import cpw.mods.fml.common.event.FMLServerStartingEvent;
@@ -24,4 +25,6 @@ public void postInit(FMLPostInitializationEvent event) {}
2425

2526
// register server commands in this event handler (Remove if not needed)
2627
public void serverStarting(FMLServerStartingEvent event) {}
28+
29+
public void loadComplate(FMLLoadCompleteEvent event) {}
2730
}

src/main/java/com/hepdd/easytech/EasyTechnology.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,16 @@
33
import org.apache.logging.log4j.LogManager;
44
import org.apache.logging.log4j.Logger;
55

6+
import com.hepdd.easytech.api.objects.VoidMinerUtilityEx;
67
import com.hepdd.easytech.loaders.preload.ETHLoaderItem;
78
import com.hepdd.easytech.loaders.preload.ETHLoaderMetaTileEntities;
89
import com.hepdd.easytech.loaders.preload.ETHLoaderRecipe;
10+
import com.hepdd.easytech.loaders.preload.ETHStatics;
911

1012
import cpw.mods.fml.common.Mod;
1113
import cpw.mods.fml.common.SidedProxy;
1214
import cpw.mods.fml.common.event.FMLInitializationEvent;
15+
import cpw.mods.fml.common.event.FMLLoadCompleteEvent;
1316
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
1417
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
1518
import cpw.mods.fml.common.event.FMLServerStartingEvent;
@@ -55,4 +58,10 @@ public void serverStarting(FMLServerStartingEvent event) {
5558
proxy.serverStarting(event);
5659
}
5760

61+
@Mod.EventHandler
62+
public void loadComplated(FMLLoadCompleteEvent event) {
63+
proxy.loadComplate(event);
64+
VoidMinerUtilityEx.generateDropMaps();
65+
new ETHStatics().run();
66+
}
5867
}

src/main/java/com/hepdd/easytech/api/metatileentity/implementations/base/ETHVoidMinerBase.java

Lines changed: 34 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import java.util.Map;
1616
import java.util.Objects;
1717
import java.util.Optional;
18-
import java.util.function.Predicate;
1918
import java.util.stream.Collectors;
2019

2120
import net.minecraft.block.Block;
@@ -50,12 +49,12 @@
5049
import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget;
5150
import com.gtnewhorizons.modularui.common.widget.SlotWidget;
5251
import com.gtnewhorizons.modularui.common.widget.TextWidget;
52+
import com.hepdd.easytech.api.objects.VoidMinerUtilityEx;
5353

5454
import bwcrossmod.galacticgreg.VoidMinerUtility;
5555
import gregtech.api.GregTechAPI;
5656
import gregtech.api.enums.ItemList;
5757
import gregtech.api.enums.Materials;
58-
import gregtech.api.enums.OrePrefixes;
5958
import gregtech.api.gui.modularui.GTUITextures;
6059
import gregtech.api.gui.widgets.LockedWhileActiveButton;
6160
import gregtech.api.interfaces.IChunkLoader;
@@ -68,11 +67,9 @@
6867
import gregtech.api.recipe.check.CheckRecipeResult;
6968
import gregtech.api.recipe.check.SimpleCheckRecipeResult;
7069
import gregtech.api.render.TextureFactory;
71-
import gregtech.api.util.GTOreDictUnificator;
7270
import gregtech.api.util.GTUtility;
7371
import gregtech.api.util.MultiblockTooltipBuilder;
7472
import gregtech.api.util.shutdown.SimpleShutDownReason;
75-
import gregtech.common.WorldgenGTOreLayer;
7673
import gtneioreplugin.plugin.item.ItemDimensionDisplay;
7774
import gtneioreplugin.util.DimensionHelper;
7875

@@ -439,24 +436,46 @@ private void handleExtraDrops(int id) {
439436
* @param id the dim number
440437
*/
441438
private void handleModDimDef(int id) {
442-
if (VoidMinerUtility.dropMapsByDimId.containsKey(id)) {
443-
this.dropMap = this.oreType == 0 ? getRawOreDropMapVanilla(id) : VoidMinerUtility.dropMapsByDimId.get(id);
439+
if (this.oreType == 0) {
440+
if (VoidMinerUtilityEx.rawDropMapsByDimId.containsKey(id)) {
441+
this.dropMap = VoidMinerUtilityEx.rawDropMapsByDimId.get(id);
442+
} else {
443+
String chunkProviderName = ((ChunkProviderServer) this.getBaseMetaTileEntity()
444+
.getWorld()
445+
.getChunkProvider()).currentChunkProvider.getClass()
446+
.getName();
447+
448+
if (VoidMinerUtilityEx.rawDropMapsByChunkProviderName.containsKey(chunkProviderName)) {
449+
this.dropMap = VoidMinerUtilityEx.rawDropMapsByChunkProviderName.get(chunkProviderName);
450+
}
451+
}
444452
} else {
445-
String chunkProviderName = ((ChunkProviderServer) this.getBaseMetaTileEntity()
446-
.getWorld()
447-
.getChunkProvider()).currentChunkProvider.getClass()
448-
.getName();
449-
450-
if (VoidMinerUtility.dropMapsByChunkProviderName.containsKey(chunkProviderName)) {
451-
this.dropMap = VoidMinerUtility.dropMapsByChunkProviderName.get(chunkProviderName);
453+
if (VoidMinerUtility.dropMapsByDimId.containsKey(id)) {
454+
this.dropMap = VoidMinerUtility.dropMapsByDimId.get(id);
455+
} else {
456+
String chunkProviderName = ((ChunkProviderServer) this.getBaseMetaTileEntity()
457+
.getWorld()
458+
.getChunkProvider()).currentChunkProvider.getClass()
459+
.getName();
460+
461+
if (VoidMinerUtility.dropMapsByChunkProviderName.containsKey(chunkProviderName)) {
462+
this.dropMap = VoidMinerUtility.dropMapsByChunkProviderName.get(chunkProviderName);
463+
}
452464
}
453465
}
454466
}
455467

456468
private void handleModDimDef(String chunkProviderName) {
457-
if (VoidMinerUtility.dropMapsByChunkProviderName.containsKey(chunkProviderName)) {
458-
this.dropMap = VoidMinerUtility.dropMapsByChunkProviderName.get(chunkProviderName);
469+
if (this.oreType == 0) {
470+
if (VoidMinerUtilityEx.rawDropMapsByChunkProviderName.containsKey(chunkProviderName)) {
471+
this.dropMap = VoidMinerUtilityEx.rawDropMapsByChunkProviderName.get(chunkProviderName);
472+
}
473+
} else {
474+
if (VoidMinerUtility.dropMapsByChunkProviderName.containsKey(chunkProviderName)) {
475+
this.dropMap = VoidMinerUtility.dropMapsByChunkProviderName.get(chunkProviderName);
476+
}
459477
}
478+
460479
}
461480

462481
/**
@@ -541,50 +560,6 @@ private boolean isOre(ItemStack aStack) {
541560
return false;
542561
}
543562

544-
private static VoidMinerUtility.DropMap getRawOreDropMapVanilla(int dimId) {
545-
VoidMinerUtility.DropMap dropMap = new VoidMinerUtility.DropMap();
546-
547-
// Ore Veins
548-
Predicate<WorldgenGTOreLayer> oreLayerPredicate = makeOreLayerPredicate(dimId);
549-
WorldgenGTOreLayer.sList.stream()
550-
.filter(gt_worldgen -> gt_worldgen.mEnabled && oreLayerPredicate.test(gt_worldgen))
551-
.forEach(element -> {
552-
dropMap.addDrop(
553-
GTOreDictUnificator
554-
.get(OrePrefixes.rawOre, GregTechAPI.sGeneratedMaterials[(element.mPrimaryMeta % 1000)], 1),
555-
element.mWeight);
556-
dropMap.addDrop(
557-
GTOreDictUnificator
558-
.get(OrePrefixes.rawOre, GregTechAPI.sGeneratedMaterials[(element.mSecondaryMeta % 1000)], 1),
559-
element.mWeight);
560-
dropMap.addDrop(
561-
GTOreDictUnificator
562-
.get(OrePrefixes.rawOre, GregTechAPI.sGeneratedMaterials[(element.mSporadicMeta % 1000)], 1),
563-
element.mWeight);
564-
dropMap.addDrop(
565-
GTOreDictUnificator
566-
.get(OrePrefixes.rawOre, GregTechAPI.sGeneratedMaterials[(element.mBetweenMeta % 1000)], 1),
567-
element.mWeight);
568-
});
569-
570-
return dropMap;
571-
}
572-
573-
/**
574-
* Makes a predicate for the GT normal ore veins worldgen
575-
*
576-
* @return the predicate
577-
*/
578-
private static Predicate<WorldgenGTOreLayer> makeOreLayerPredicate(int dimensionId) {
579-
return switch (dimensionId) {
580-
case -1 -> gt_worldgen -> gt_worldgen.mNether;
581-
case 0 -> gt_worldgen -> gt_worldgen.mOverworld;
582-
case 1 -> gt_worldgen -> gt_worldgen.mEnd || gt_worldgen.mEndAsteroid;
583-
case 7 -> gt_worldgen -> gt_worldgen.twilightForest;
584-
default -> throw new IllegalStateException();
585-
};
586-
}
587-
588563
protected List<IHatchElement<? super ETHVoidMinerBase>> getAllowedHatches() {
589564
return ImmutableList.of(InputBus, OutputBus, Maintenance, Energy);
590565
}
Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
package com.hepdd.easytech.api.objects;
2+
3+
import static galacticgreg.registry.GalacticGregRegistry.getModContainers;
4+
5+
import java.util.HashMap;
6+
import java.util.List;
7+
import java.util.Map;
8+
import java.util.function.Predicate;
9+
10+
import net.minecraft.item.ItemStack;
11+
12+
import bartworks.common.configs.Configuration;
13+
import bartworks.system.oregen.BWOreLayer;
14+
import bwcrossmod.galacticgreg.VoidMinerUtility;
15+
import galacticgreg.GalacticGreg;
16+
import galacticgreg.WorldgenOreLayerSpace;
17+
import galacticgreg.WorldgenOreSmallSpace;
18+
import galacticgreg.api.ModContainer;
19+
import galacticgreg.api.ModDimensionDef;
20+
import gregtech.api.GregTechAPI;
21+
import gregtech.api.enums.OrePrefixes;
22+
import gregtech.api.util.GTOreDictUnificator;
23+
import gregtech.common.WorldgenGTOreLayer;
24+
25+
public class VoidMinerUtilityEx {
26+
27+
public static final Map<Integer, VoidMinerUtility.DropMap> rawDropMapsByDimId = new HashMap<>();
28+
public static final Map<String, VoidMinerUtility.DropMap> rawDropMapsByChunkProviderName = new HashMap<>();
29+
30+
public static void generateDropMaps() {
31+
// vanilla dims
32+
rawDropMapsByDimId.put(-1, getRawOreDropMapVanilla(-1));
33+
rawDropMapsByDimId.put(0, getRawOreDropMapVanilla(0));
34+
rawDropMapsByDimId.put(1, getRawOreDropMapVanilla(1));
35+
// Twilight Forest
36+
rawDropMapsByDimId.put(7, getRawOreDropMapVanilla(7));
37+
38+
// ross dims
39+
rawDropMapsByDimId.put(
40+
Configuration.crossModInteractions.ross128BID,
41+
getRawDropMapRoss(Configuration.crossModInteractions.ross128BID));
42+
rawDropMapsByDimId.put(
43+
Configuration.crossModInteractions.ross128BAID,
44+
getRawDropMapRoss(Configuration.crossModInteractions.ross128BAID));
45+
46+
// other space dims
47+
for (ModContainer modContainer : getModContainers()) {
48+
for (ModDimensionDef dimDef : modContainer.getDimensionList()) {
49+
rawDropMapsByChunkProviderName.put(dimDef.getChunkProviderName(), getRawDropMapSpace(dimDef));
50+
}
51+
}
52+
}
53+
54+
private static VoidMinerUtility.DropMap getRawOreDropMapVanilla(int dimId) {
55+
VoidMinerUtility.DropMap dropMap = new VoidMinerUtility.DropMap();
56+
57+
// Ore Veins
58+
Predicate<WorldgenGTOreLayer> oreLayerPredicate = makeOreLayerPredicate(dimId);
59+
WorldgenGTOreLayer.sList.stream()
60+
.filter(gt_worldgen -> gt_worldgen.mEnabled && oreLayerPredicate.test(gt_worldgen))
61+
.forEach(element -> {
62+
dropMap.addDrop(
63+
GTOreDictUnificator
64+
.get(OrePrefixes.rawOre, GregTechAPI.sGeneratedMaterials[(element.mPrimaryMeta % 1000)], 1),
65+
element.mWeight);
66+
dropMap.addDrop(
67+
GTOreDictUnificator
68+
.get(OrePrefixes.rawOre, GregTechAPI.sGeneratedMaterials[(element.mSecondaryMeta % 1000)], 1),
69+
element.mWeight);
70+
dropMap.addDrop(
71+
GTOreDictUnificator
72+
.get(OrePrefixes.rawOre, GregTechAPI.sGeneratedMaterials[(element.mSporadicMeta % 1000)], 1),
73+
element.mWeight);
74+
dropMap.addDrop(
75+
GTOreDictUnificator
76+
.get(OrePrefixes.rawOre, GregTechAPI.sGeneratedMaterials[(element.mBetweenMeta % 1000)], 1),
77+
element.mWeight);
78+
});
79+
80+
return dropMap;
81+
}
82+
83+
private static VoidMinerUtility.DropMap getRawDropMapRoss(int aID) {
84+
VoidMinerUtility.DropMap dropMap = new VoidMinerUtility.DropMap();
85+
for (BWOreLayer oreLayer : BWOreLayer.sList) {
86+
if (oreLayer.mEnabled && oreLayer.isGenerationAllowed("", aID, 0)) {
87+
List<ItemStack> data = oreLayer.getStacks();
88+
if (data == null || data.isEmpty()) continue;
89+
try {
90+
dropMap.addDrop(
91+
GTOreDictUnificator.get(
92+
OrePrefixes.rawOre,
93+
GregTechAPI.sGeneratedMaterials[data.get(0)
94+
.getItemDamage()],
95+
1),
96+
oreLayer.mWeight);
97+
dropMap.addDrop(
98+
GTOreDictUnificator.get(
99+
OrePrefixes.rawOre,
100+
GregTechAPI.sGeneratedMaterials[data.get(1)
101+
.getItemDamage()],
102+
1),
103+
oreLayer.mWeight);
104+
dropMap.addDrop(
105+
GTOreDictUnificator.get(
106+
OrePrefixes.rawOre,
107+
GregTechAPI.sGeneratedMaterials[data.get(2)
108+
.getItemDamage()],
109+
1),
110+
oreLayer.mWeight / 8f);
111+
dropMap.addDrop(
112+
GTOreDictUnificator.get(
113+
OrePrefixes.rawOre,
114+
GregTechAPI.sGeneratedMaterials[data.get(3)
115+
.getItemDamage()],
116+
1),
117+
oreLayer.mWeight / 8f);
118+
} catch (Exception ignored) {}
119+
}
120+
}
121+
return dropMap;
122+
}
123+
124+
private static VoidMinerUtility.DropMap getRawDropMapSpace(ModDimensionDef finalDef) {
125+
VoidMinerUtility.DropMap dropMap = new VoidMinerUtility.DropMap();
126+
127+
// Normal Ore Veins
128+
GalacticGreg.oreVeinWorldgenList.stream()
129+
.filter(
130+
gt_worldgen -> gt_worldgen.mEnabled && gt_worldgen instanceof WorldgenOreLayerSpace oreLayerSpace
131+
&& oreLayerSpace.isEnabledForDim(finalDef))
132+
.map(gt_worldgen -> (WorldgenOreLayerSpace) gt_worldgen)
133+
.forEach(element -> {
134+
dropMap.addDrop(
135+
GTOreDictUnificator
136+
.get(OrePrefixes.rawOre, GregTechAPI.sGeneratedMaterials[element.mPrimaryMeta % 1000], 1),
137+
element.mWeight);
138+
dropMap.addDrop(
139+
GTOreDictUnificator
140+
.get(OrePrefixes.rawOre, GregTechAPI.sGeneratedMaterials[element.mSecondaryMeta % 1000], 1),
141+
element.mWeight);
142+
dropMap.addDrop(
143+
GTOreDictUnificator
144+
.get(OrePrefixes.rawOre, GregTechAPI.sGeneratedMaterials[element.mSporadicMeta % 1000], 1),
145+
element.mWeight / 8f);
146+
dropMap.addDrop(
147+
GTOreDictUnificator
148+
.get(OrePrefixes.rawOre, GregTechAPI.sGeneratedMaterials[element.mBetweenMeta % 1000], 1),
149+
element.mWeight / 8f);
150+
});
151+
152+
// Normal Small Ores
153+
GalacticGreg.smallOreWorldgenList.stream()
154+
.filter(
155+
gt_worldgen -> gt_worldgen.mEnabled && gt_worldgen instanceof WorldgenOreSmallSpace oreSmallPiecesSpace
156+
&& oreSmallPiecesSpace.isEnabledForDim(finalDef))
157+
.map(gt_worldgen -> (WorldgenOreSmallSpace) gt_worldgen)
158+
.forEach(element -> dropMap.addDrop(element.mMeta, element.mAmount, false));
159+
return dropMap;
160+
}
161+
162+
private static Predicate<WorldgenGTOreLayer> makeOreLayerPredicate(int dimensionId) {
163+
return switch (dimensionId) {
164+
case -1 -> gt_worldgen -> gt_worldgen.mNether;
165+
case 0 -> gt_worldgen -> gt_worldgen.mOverworld;
166+
case 1 -> gt_worldgen -> gt_worldgen.mEnd || gt_worldgen.mEndAsteroid;
167+
case 7 -> gt_worldgen -> gt_worldgen.twilightForest;
168+
default -> throw new IllegalStateException();
169+
};
170+
}
171+
}

src/main/java/com/hepdd/easytech/loaders/preload/ETHStatics.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ public static void getDimMap() {
4141
DimMap.put("Nether", "-1");
4242
DimMap.put("Overworld", "0");
4343
DimMap.put("TheEnd", "1");
44-
DimMap.put("EndAsteroid", "1");
44+
DimMap.put("EndAsteroids", "1");
4545
// Twilight Forest
46-
DimMap.put("Twilight", "7");
46+
DimMap.put("Twilight Forest", "7");
4747
// ross dims
4848
DimMap.put("Ross128b", String.valueOf(Configuration.crossModInteractions.ross128BID));
4949
DimMap.put("Ross128ba", String.valueOf(Configuration.crossModInteractions.ross128BAID));

src/main/java/com/hepdd/easytech/mixins/DrillerBaseMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public void onCheckProcessing(CallbackInfoReturnable<CheckRecipeResult> cir) {
6767
this.lastRuntimeFailure = null;
6868
}
6969

70-
cir.setReturnValue(SimpleCheckRecipeResult.ofSuccess("Drilling"));
70+
cir.setReturnValue(SimpleCheckRecipeResult.ofSuccess("drilling"));
7171
} else {
7272
final CheckRecipeResult result;
7373
result = lastRuntimeFailure = runtimeFailure;

0 commit comments

Comments
 (0)