Skip to content

Commit

Permalink
Merge branch 'master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
Dream-Master authored Sep 10, 2024
2 parents d47470d + 4552bd7 commit fa2dc57
Show file tree
Hide file tree
Showing 23 changed files with 205 additions and 112 deletions.
6 changes: 6 additions & 0 deletions src/main/java/gregtech/api/enums/ItemList.java
Original file line number Diff line number Diff line change
Expand Up @@ -445,6 +445,12 @@ public enum ItemList implements IItemContainer {
FluidRegulator_LuV,
FluidRegulator_ZPM,
FluidRegulator_UV,
FluidRegulator_UHV,
FluidRegulator_UEV,
FluidRegulator_UIV,
FluidRegulator_UMV,
FluidRegulator_UXV,
FluidRegulator_MAX,

Conveyor_Module_LV,
Conveyor_Module_MV,
Expand Down
2 changes: 0 additions & 2 deletions src/main/java/gregtech/common/covers/CoverFluidRegulator.java
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,6 @@ public class CoverFluidRegulator extends CoverBehaviorBase<CoverFluidRegulator.F

public CoverFluidRegulator(int aTransferRate, ITexture coverTexture) {
super(FluidRegulatorData.class, coverTexture);
if (aTransferRate > (-1 >>> (Integer.SIZE - SPEED_LENGTH)))
throw new IllegalArgumentException("aTransferRate too big: " + aTransferRate);
this.mTransferRate = aTransferRate;
}

Expand Down
6 changes: 6 additions & 0 deletions src/main/java/gregtech/common/items/IDMetaItem01.java
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,12 @@ public enum IDMetaItem01 {
Field_Generator_UMV(46),
Field_Generator_UXV(47),
Field_Generator_MAX(48),
FluidRegulator_UHV(49),
FluidRegulator_UEV(50),
FluidRegulator_UIV(51),
FluidRegulator_UMV(52),
FluidRegulator_UXV(53),
FluidRegulator_MAX(54),
Component_Minecraft_Wheels_Iron(100),
Component_Minecraft_Wheels_Steel(101),
Compressed_Fireclay(110),
Expand Down
59 changes: 51 additions & 8 deletions src/main/java/gregtech/common/items/MetaGeneratedItem01.java
Original file line number Diff line number Diff line change
Expand Up @@ -251,8 +251,14 @@
import static gregtech.common.items.IDMetaItem01.FluidRegulator_IV;
import static gregtech.common.items.IDMetaItem01.FluidRegulator_LV;
import static gregtech.common.items.IDMetaItem01.FluidRegulator_LuV;
import static gregtech.common.items.IDMetaItem01.FluidRegulator_MAX;
import static gregtech.common.items.IDMetaItem01.FluidRegulator_MV;
import static gregtech.common.items.IDMetaItem01.FluidRegulator_UEV;
import static gregtech.common.items.IDMetaItem01.FluidRegulator_UHV;
import static gregtech.common.items.IDMetaItem01.FluidRegulator_UIV;
import static gregtech.common.items.IDMetaItem01.FluidRegulator_UMV;
import static gregtech.common.items.IDMetaItem01.FluidRegulator_UV;
import static gregtech.common.items.IDMetaItem01.FluidRegulator_UXV;
import static gregtech.common.items.IDMetaItem01.FluidRegulator_ZPM;
import static gregtech.common.items.IDMetaItem01.Fuel_Can_Plastic_Empty;
import static gregtech.common.items.IDMetaItem01.Fuel_Can_Plastic_Filled;
Expand Down Expand Up @@ -2052,30 +2058,59 @@ public MetaGeneratedItem01() {
new TCAspects.TC_AspectStack(TCAspects.AQUA, 16L)));

ItemList.FluidRegulator_LV.set(
addItem(FluidRegulator_LV.ID, "Fluid Regulator (LV)", FRText1 + GTUtility.formatNumbers(640) + FRText2));
addItem(
FluidRegulator_LV.ID,
"Fluid Regulator (LV)",
FRText1 + GTUtility.formatNumbers(32 * 20) + FRText2));
ItemList.FluidRegulator_MV.set(
addItem(FluidRegulator_MV.ID, "Fluid Regulator (MV)", FRText1 + GTUtility.formatNumbers(2560) + FRText2));
addItem(
FluidRegulator_MV.ID,
"Fluid Regulator (MV)",
FRText1 + GTUtility.formatNumbers(128 * 20) + FRText2));
ItemList.FluidRegulator_HV.set(
addItem(FluidRegulator_HV.ID, "Fluid Regulator (HV)", FRText1 + GTUtility.formatNumbers(10240) + FRText2));
addItem(
FluidRegulator_HV.ID,
"Fluid Regulator (HV)",
FRText1 + GTUtility.formatNumbers(512 * 20) + FRText2));
ItemList.FluidRegulator_EV.set(
addItem(FluidRegulator_EV.ID, "Fluid Regulator (EV)", FRText1 + GTUtility.formatNumbers(40960) + FRText2));
addItem(
FluidRegulator_EV.ID,
"Fluid Regulator (EV)",
FRText1 + GTUtility.formatNumbers(2048 * 20) + FRText2));
ItemList.FluidRegulator_IV.set(
addItem(FluidRegulator_IV.ID, "Fluid Regulator (IV)", FRText1 + GTUtility.formatNumbers(163840) + FRText2));
addItem(
FluidRegulator_IV.ID,
"Fluid Regulator (IV)",
FRText1 + GTUtility.formatNumbers(8192 * 20) + FRText2));
ItemList.FluidRegulator_LuV.set(
addItem(
FluidRegulator_LuV.ID,
"Fluid Regulator (LuV)",
FRText1 + GTUtility.formatNumbers(655360) + FRText2));
FRText1 + GTUtility.formatNumbers(32768 * 20) + FRText2));
ItemList.FluidRegulator_ZPM.set(
addItem(
FluidRegulator_ZPM.ID,
"Fluid Regulator (ZPM)",
FRText1 + GTUtility.formatNumbers(2621440) + FRText2));
FRText1 + GTUtility.formatNumbers(131072 * 20) + FRText2));
ItemList.FluidRegulator_UV.set(
addItem(
FluidRegulator_UV.ID,
"Fluid Regulator (UV)",
FRText1 + GTUtility.formatNumbers(10485760) + FRText2));
FRText1 + GTUtility.formatNumbers(524288 * 20) + FRText2));
ItemList.FluidRegulator_UHV.set(
addItem(
FluidRegulator_UHV.ID,
"Fluid Regulator (UHV)",
FRText1 + GTUtility.formatNumbers(1048576 * 20) + FRText2));
ItemList.FluidRegulator_UEV.set(
addItem(
FluidRegulator_UEV.ID,
"Fluid Regulator (UEV)",
FRText1 + GTUtility.formatNumbers(2097152 * 20) + FRText2));
ItemList.FluidRegulator_UIV.set(addItem(FluidRegulator_UIV.ID, "Fluid Regulator (UIV)", PartNotCoverText));
ItemList.FluidRegulator_UMV.set(addItem(FluidRegulator_UMV.ID, "Fluid Regulator (UMV)", PartNotCoverText));
ItemList.FluidRegulator_UXV.set(addItem(FluidRegulator_UXV.ID, "Fluid Regulator (UXV)", PartNotCoverText));
ItemList.Electric_Pump_MAX.set(addItem(FluidRegulator_MAX.ID, "Fluid Regulator (MAX)", PartNotCoverText));

ItemList.FluidFilter.set(
addItem(FluidFilter.ID, "Fluid Filter Cover", "Set with Fluid Container to only accept one Fluid Type"));
Expand Down Expand Up @@ -3696,6 +3731,14 @@ private void registerCovers() {
ItemList.FluidRegulator_UV.get(1L),
TextureFactory.of(MACHINE_CASINGS[8][0], TextureFactory.of(OVERLAY_PUMP)),
new CoverFluidRegulator(524288, TextureFactory.of(OVERLAY_PUMP)));
GregTechAPI.registerCover(
ItemList.FluidRegulator_UHV.get(1L),
TextureFactory.of(MACHINE_CASINGS[9][0], TextureFactory.of(OVERLAY_PUMP)),
new CoverFluidRegulator(1048576, TextureFactory.of(OVERLAY_PUMP)));
GregTechAPI.registerCover(
ItemList.FluidRegulator_UEV.get(1L),
TextureFactory.of(MACHINE_CASINGS[10][0], TextureFactory.of(OVERLAY_PUMP)),
new CoverFluidRegulator(2097152, TextureFactory.of(OVERLAY_PUMP)));

GregTechAPI.registerCover(
ItemList.FluidFilter.get(1L),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -813,6 +813,56 @@ public void run() {
.eut(TierEU.RECIPE_UV)
.addTo(assemblerRecipes);

GTValues.RA.stdBuilder()
.itemInputs(
ItemList.Electric_Pump_UHV.get(1),
GTOreDictUnificator.get(OrePrefixes.circuit.get(Materials.UHV), 2),
GTUtility.getIntegratedCircuit(3))
.itemOutputs(ItemList.FluidRegulator_UHV.get(1))
.duration(1 * SECONDS)
.eut(TierEU.RECIPE_UHV)
.addTo(assemblerRecipes);

GTValues.RA.stdBuilder()
.itemInputs(
ItemList.Electric_Pump_UEV.get(1),
GTOreDictUnificator.get(OrePrefixes.circuit.get(Materials.UEV), 2),
GTUtility.getIntegratedCircuit(3))
.itemOutputs(ItemList.FluidRegulator_UEV.get(1))
.duration(1 * SECONDS)
.eut(TierEU.RECIPE_UEV)
.addTo(assemblerRecipes);

GTValues.RA.stdBuilder()
.itemInputs(
ItemList.Electric_Pump_UIV.get(1),
GTOreDictUnificator.get(OrePrefixes.circuit.get(Materials.UIV), 2),
GTUtility.getIntegratedCircuit(3))
.itemOutputs(ItemList.FluidRegulator_UIV.get(1))
.duration(1 * SECONDS)
.eut(TierEU.RECIPE_UIV)
.addTo(assemblerRecipes);

GTValues.RA.stdBuilder()
.itemInputs(
ItemList.Electric_Pump_UMV.get(1),
GTOreDictUnificator.get(OrePrefixes.circuit.get(Materials.UMV), 2),
GTUtility.getIntegratedCircuit(3))
.itemOutputs(ItemList.FluidRegulator_UMV.get(1))
.duration(1 * SECONDS)
.eut(TierEU.RECIPE_UMV)
.addTo(assemblerRecipes);

GTValues.RA.stdBuilder()
.itemInputs(
ItemList.Electric_Pump_UXV.get(1),
GTOreDictUnificator.get(OrePrefixes.circuit.get(Materials.UXV), 2),
GTUtility.getIntegratedCircuit(3))
.itemOutputs(ItemList.FluidRegulator_UXV.get(1))
.duration(1 * SECONDS)
.eut(TierEU.RECIPE_UXV)
.addTo(assemblerRecipes);

GTValues.RA.stdBuilder()
.itemInputs(
ItemList.Steam_Valve_LV.get(1),
Expand Down
5 changes: 3 additions & 2 deletions src/main/java/gregtech/mixin/Mixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,13 @@ public enum Mixin {
.setApplyIf(() -> ConfigHandler.enabledPatches[3])
.setPhase(Phase.EARLY)
.setSide(Side.BOTH)),
CraftingRecipeAccessorMixin(new Builder("Add accessors to crafting recipe types")
VanillaAccessors(new Builder("Adds various accessors")
.addMixinClasses(
"minecraft.VanillaShapedRecipeMixin",
"minecraft.VanillaShapelessRecipeMixin",
"minecraft.ForgeShapedRecipeMixin",
"minecraft.ForgeShapelessRecipeMixin")
"minecraft.ForgeShapelessRecipeMixin",
"minecraft.PotionMixin")
.addTargetedMod(VANILLA)
.setApplyIf(() -> true)
.setPhase(Phase.EARLY)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package kubatech.api;
package gregtech.mixin.interfaces;

import net.minecraft.block.Block;

Expand Down
7 changes: 7 additions & 0 deletions src/main/java/gregtech/mixin/interfaces/PotionExt.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package gregtech.mixin.interfaces;

public interface PotionExt {

boolean gt5u$isBadEffect();

}
6 changes: 2 additions & 4 deletions src/main/java/gtPlusPlus/core/common/CommonProxy.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,10 @@ public CommonProxy() {

public void preInit(final FMLPreInitializationEvent e) {
Logger.INFO("Doing some house cleaning.");
if (!PreloaderCore.DEBUG_MODE) {
Logger.WARNING("Development mode not enabled.");
} else if (PreloaderCore.DEBUG_MODE) {
if (PreloaderCore.DEBUG_MODE) {
Logger.INFO("Development mode enabled.");
} else {
Logger.WARNING("Development mode not set.");
Logger.WARNING("Development mode not enabled.");
}

AddToCreativeTab.initialiseTabs();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,109 +1,77 @@
package gtPlusPlus.core.handler.events;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.ChatComponentTranslation;
import net.minecraftforge.event.entity.player.PlayerSleepInBedEvent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.player.PlayerWakeUpEvent;

import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.potion.GtPotionEffect;
import gtPlusPlus.core.util.Utils;
import gregtech.mixin.interfaces.PotionExt;
import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.core.util.minecraft.PlayerUtils;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.preloader.PreloaderCore;

public class PlayerSleepEventHandler {

private static Field sEffectDuration = ReflectionUtils
.getField(PotionEffect.class, !PreloaderCore.DEV_ENVIRONMENT ? "field_76460_b" : "duration");
private static ArrayList<Potion> sPositiveEffects = new ArrayList<>();
private static ArrayList<Potion> sNegativeEffects = new ArrayList<>();
private static final ArrayList<Potion> potionBuffs = new ArrayList<>();

public static void init() {
Utils.registerEvent(new PlayerSleepEventHandler());
sPositiveEffects.add(Potion.moveSpeed);
sPositiveEffects.add(Potion.waterBreathing);
sPositiveEffects.add(Potion.resistance);
sPositiveEffects.add(Potion.regeneration);
sPositiveEffects.add(Potion.damageBoost);
sPositiveEffects.add(Potion.digSpeed);
sPositiveEffects.add(Potion.fireResistance);
sPositiveEffects.add(Potion.field_76434_w); // Health Boost
sPositiveEffects.add(Potion.field_76444_x); // Absorption
sNegativeEffects.add(Potion.blindness);
sNegativeEffects.add(Potion.confusion);
sNegativeEffects.add(Potion.digSlowdown);
sNegativeEffects.add(Potion.harm);
sNegativeEffects.add(Potion.hunger);
sNegativeEffects.add(Potion.moveSlowdown);
sNegativeEffects.add(Potion.poison);
sNegativeEffects.add(Potion.weakness);
sNegativeEffects.add(Potion.wither);
MinecraftForge.EVENT_BUS.register(new PlayerSleepEventHandler());
potionBuffs.add(Potion.moveSpeed);
potionBuffs.add(Potion.waterBreathing);
potionBuffs.add(Potion.resistance);
potionBuffs.add(Potion.regeneration);
potionBuffs.add(Potion.damageBoost);
potionBuffs.add(Potion.digSpeed);
potionBuffs.add(Potion.fireResistance);
potionBuffs.add(Potion.field_76434_w); // Health Boost
potionBuffs.add(Potion.field_76444_x); // Absorption
potionBuffs.trimToSize();
}

@SubscribeEvent
public void sleep(PlayerSleepInBedEvent event) {}

@SubscribeEvent
public void wake(PlayerWakeUpEvent event) {
EntityPlayer aPlayer = event.entityPlayer;
if (aPlayer != null && !aPlayer.worldObj.isRemote) {
if (event.entityPlayer.getEntityWorld()
.getWorldTime() % 24000 != 0) {
return;
}
boolean aRemovedBad = false;
try {
Collection<PotionEffect> aActive = aPlayer.getActivePotionEffects();
for (PotionEffect aEffect : aActive) {
for (Potion aBadPotion : sNegativeEffects) {
if (aEffect.getPotionID() == aBadPotion.getId()) {
ReflectionUtils.setField(aEffect, sEffectDuration, 1);
aRemovedBad = true;
Logger.INFO("Set duration of " + aEffect.getEffectName() + " to 1 tick");
}
}
}
} catch (Throwable t) {
t.printStackTrace();
}
if (aRemovedBad) {
messagePlayer(aPlayer, "sleep.event.downsides");
} else {
// Try Heal
float aCurrentHP = aPlayer.getHealth();
float aMaxHP = aPlayer.getMaxHealth();
if (aCurrentHP < aMaxHP) {
float aDamage = aMaxHP - aCurrentHP;
float aToHeal = MathUtils.randFloat(1, aDamage);
if (aToHeal > 0) {
aPlayer.heal(aToHeal);
messagePlayer(aPlayer, (aToHeal >= aDamage / 2 ? "sleep.event.good" : "sleep.event.okay"));
}
}
// Already healed, try give a buff
else {
int aRandomBuff = MathUtils.randInt(0, sPositiveEffects.size() - 1);
Potion aPotionToApply = sPositiveEffects.get(aRandomBuff);
if (aPotionToApply != null) {
aPlayer.addPotionEffect(
new GtPotionEffect(aPotionToApply.id, MathUtils.randInt(60, 180), MathUtils.randInt(0, 2)));
messagePlayer(aPlayer, "sleep.event.wellrested");
}
}
public void onPlayerWakeUp(PlayerWakeUpEvent event) {
EntityPlayer player = event.entityPlayer;
if (player == null || player.worldObj.isRemote) return;
if (player.getEntityWorld()
.getWorldTime() % 24000 != 0) {
return;
}
final List<Integer> potionToRemove = new ArrayList<>();
for (PotionEffect potionEffect : player.getActivePotionEffects()) {
final Potion potion = Potion.potionTypes[potionEffect.getPotionID()];
if (potion instanceof PotionExt && ((PotionExt) potion).gt5u$isBadEffect()) {
potionToRemove.add(potion.id);
}
}
for (Integer i : potionToRemove) {
player.removePotionEffect(i);
}
if (!potionToRemove.isEmpty()) {
messagePlayer(player, "sleep.event.downsides");
return;
}
// Try Heal
float currentHP = player.getHealth();
float maxHP = player.getMaxHealth();
if (currentHP < maxHP) {
float missingHP = maxHP - currentHP;
float heal = MathUtils.randFloat(1, missingHP);
player.heal(heal);
messagePlayer(player, (heal >= missingHP / 2 ? "sleep.event.good" : "sleep.event.okay"));
return;
}
// Try give a buff
Potion aPotionToApply = potionBuffs.get(MathUtils.randInt(0, potionBuffs.size() - 1));
player.addPotionEffect(
new PotionEffect(aPotionToApply.id, MathUtils.randInt(60, 180) * 20, MathUtils.randInt(0, 2)));
messagePlayer(player, "sleep.event.wellrested");
}

private static void messagePlayer(EntityPlayer aPlayer, String aChatKey) {
PlayerUtils.messagePlayer(aPlayer, new ChatComponentTranslation(aChatKey, new Object[0]));
private static void messagePlayer(EntityPlayer player, String aChatKey) {
player.addChatComponentMessage(new ChatComponentTranslation(aChatKey));
}
}
Loading

0 comments on commit fa2dc57

Please sign in to comment.