Active\Inactive switch moved to RC.
This commit is contained in:
parent
ecb63b5a6b
commit
562d333be9
4 changed files with 46 additions and 122 deletions
|
@ -62,7 +62,6 @@ public class IndustrialChainsawItem extends ChainsawItem {
|
||||||
|
|
||||||
private static final Direction[] SEARCH_ORDER = new Direction[]{Direction.NORTH, Direction.SOUTH, Direction.EAST, Direction.WEST, Direction.UP};
|
private static final Direction[] SEARCH_ORDER = new Direction[]{Direction.NORTH, Direction.SOUTH, Direction.EAST, Direction.WEST, Direction.UP};
|
||||||
|
|
||||||
|
|
||||||
// 4M FE max charge with 1k charge rate
|
// 4M FE max charge with 1k charge rate
|
||||||
public IndustrialChainsawItem() {
|
public IndustrialChainsawItem() {
|
||||||
super(ToolMaterials.DIAMOND, TechRebornConfig.industrialChainsawCharge, 1.0F);
|
super(ToolMaterials.DIAMOND, TechRebornConfig.industrialChainsawCharge, 1.0F);
|
||||||
|
@ -70,27 +69,6 @@ public class IndustrialChainsawItem extends ChainsawItem {
|
||||||
this.transferLimit = 1000;
|
this.transferLimit = 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
|
||||||
@Override
|
|
||||||
public void appendStacks(ItemGroup par2ItemGroup, DefaultedList<ItemStack> itemList) {
|
|
||||||
if (!isIn(par2ItemGroup)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
InitUtils.initPoweredItems(TRContent.INDUSTRIAL_CHAINSAW, itemList);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean postMine(ItemStack stack, World worldIn, BlockState blockIn, BlockPos pos, LivingEntity entityLiving) {
|
|
||||||
List<BlockPos> wood = new ArrayList<>();
|
|
||||||
if (ItemUtils.isActive(stack)) {
|
|
||||||
findWood(worldIn, pos, wood, new ArrayList<>());
|
|
||||||
wood.stream()
|
|
||||||
.filter(p -> Energy.of(stack).use(cost))
|
|
||||||
.forEach(pos1 -> breakBlock(pos1, stack, worldIn, entityLiving, pos));
|
|
||||||
}
|
|
||||||
return super.postMine(stack, worldIn, blockIn, pos, entityLiving);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void findWood(World world, BlockPos pos, List<BlockPos> wood, List<BlockPos> leaves){
|
private void findWood(World world, BlockPos pos, List<BlockPos> wood, List<BlockPos> leaves){
|
||||||
//Limit the amount of wood to be broken to 64 blocks.
|
//Limit the amount of wood to be broken to 64 blocks.
|
||||||
if(wood.size() >= 64){
|
if(wood.size() >= 64){
|
||||||
|
@ -112,38 +90,57 @@ public class IndustrialChainsawItem extends ChainsawItem {
|
||||||
findWood(world, checkPos, wood, leaves);
|
findWood(world, checkPos, wood, leaves);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void breakBlock(BlockPos pos, ItemStack stack, World world, LivingEntity entityLiving, BlockPos oldPos) {
|
||||||
|
if (oldPos == pos) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(Energy.of(stack).use(cost)){
|
||||||
|
BlockState blockState = world.getBlockState(pos);
|
||||||
|
if (blockState.getHardness(world, pos) == -1.0F) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(!(entityLiving instanceof PlayerEntity)){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockState.getBlock().afterBreak(world, (PlayerEntity) entityLiving, pos, blockState, world.getBlockEntity(pos), stack);
|
||||||
|
world.setBlockState(pos, Blocks.AIR.getDefaultState());
|
||||||
|
world.removeBlockEntity(pos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//ChainsawItem
|
||||||
|
@Override
|
||||||
|
public boolean postMine(ItemStack stack, World worldIn, BlockState blockIn, BlockPos pos, LivingEntity entityLiving) {
|
||||||
|
List<BlockPos> wood = new ArrayList<>();
|
||||||
|
if (ItemUtils.isActive(stack)) {
|
||||||
|
findWood(worldIn, pos, wood, new ArrayList<>());
|
||||||
|
wood.stream()
|
||||||
|
.filter(p -> Energy.of(stack).use(cost))
|
||||||
|
.forEach(pos1 -> breakBlock(pos1, stack, worldIn, entityLiving, pos));
|
||||||
|
}
|
||||||
|
return super.postMine(stack, worldIn, blockIn, pos, entityLiving);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Item
|
||||||
|
@Environment(EnvType.CLIENT)
|
||||||
|
@Override
|
||||||
|
public void appendStacks(ItemGroup par2ItemGroup, DefaultedList<ItemStack> itemList) {
|
||||||
|
if (!isIn(par2ItemGroup)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
InitUtils.initPoweredItems(TRContent.INDUSTRIAL_CHAINSAW, itemList);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TypedActionResult<ItemStack> use(final World world, final PlayerEntity player, final Hand hand) {
|
public TypedActionResult<ItemStack> use(final World world, final PlayerEntity player, final Hand hand) {
|
||||||
final ItemStack stack = player.getStackInHand(hand);
|
final ItemStack stack = player.getStackInHand(hand);
|
||||||
if (player.isSneaking()) {
|
if (player.isSneaking()) {
|
||||||
if (Energy.of(stack).getEnergy() < cost) {
|
ItemUtils.switchActive(stack, cost, world.isClient, MessageIDs.poweredToolID);
|
||||||
ChatUtils.sendNoSpamMessages(MessageIDs.poweredToolID, new LiteralText(
|
|
||||||
Formatting.GRAY + StringUtils.t("techreborn.message.nanosaberEnergyErrorTo") + " "
|
|
||||||
+ Formatting.GOLD + StringUtils.t("techreborn.message.nanosaberActivate")));
|
|
||||||
} else {
|
|
||||||
if (!ItemUtils.isActive(stack)) {
|
|
||||||
if (stack.getTag() == null) {
|
|
||||||
stack.setTag(new CompoundTag());
|
|
||||||
}
|
|
||||||
stack.getTag().putBoolean("isActive", true);
|
|
||||||
if (world.isClient) {
|
|
||||||
ChatUtils.sendNoSpamMessages(MessageIDs.poweredToolID, new LiteralText(
|
|
||||||
Formatting.GRAY + StringUtils.t("techreborn.message.setTo") + " "
|
|
||||||
+ Formatting.GOLD + StringUtils.t("techreborn.message.nanosaberActive")));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
stack.getOrCreateTag().putBoolean("isActive", false);
|
|
||||||
if (world.isClient) {
|
|
||||||
ChatUtils.sendNoSpamMessages(MessageIDs.poweredToolID, new LiteralText(
|
|
||||||
Formatting.GRAY + StringUtils.t("techreborn.message.setTo") + " "
|
|
||||||
+ Formatting.GOLD + StringUtils.t("techreborn.message.nanosaberInactive")));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return new TypedActionResult<>(ActionResult.SUCCESS, stack);
|
return new TypedActionResult<>(ActionResult.SUCCESS, stack);
|
||||||
}
|
}
|
||||||
return new TypedActionResult<>(ActionResult.PASS, stack);
|
return new TypedActionResult<>(ActionResult.PASS, stack);
|
||||||
|
@ -164,25 +161,4 @@ public class IndustrialChainsawItem extends ChainsawItem {
|
||||||
public boolean isEffectiveOn(BlockState blockIn) {
|
public boolean isEffectiveOn(BlockState blockIn) {
|
||||||
return Items.DIAMOND_AXE.isEffectiveOn(blockIn);
|
return Items.DIAMOND_AXE.isEffectiveOn(blockIn);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void breakBlock(BlockPos pos, ItemStack stack, World world, LivingEntity entityLiving, BlockPos oldPos) {
|
|
||||||
if (oldPos == pos) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(Energy.of(stack).use(cost)){
|
|
||||||
BlockState blockState = world.getBlockState(pos);
|
|
||||||
if (blockState.getHardness(world, pos) == -1.0F) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if(!(entityLiving instanceof PlayerEntity)){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
blockState.getBlock().afterBreak(world, (PlayerEntity) entityLiving, pos, blockState, world.getBlockEntity(pos), stack);
|
|
||||||
world.setBlockState(pos, Blocks.AIR.getDefaultState());
|
|
||||||
world.removeBlockEntity(pos);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -172,30 +172,7 @@ public class IndustrialDrillItem extends DrillItem {
|
||||||
public TypedActionResult<ItemStack> use(final World world, final PlayerEntity player, final Hand hand) {
|
public TypedActionResult<ItemStack> use(final World world, final PlayerEntity player, final Hand hand) {
|
||||||
final ItemStack stack = player.getStackInHand(hand);
|
final ItemStack stack = player.getStackInHand(hand);
|
||||||
if (player.isSneaking()) {
|
if (player.isSneaking()) {
|
||||||
if (Energy.of(stack).getEnergy() < cost) {
|
ItemUtils.switchActive(stack, cost, world.isClient, MessageIDs.poweredToolID);
|
||||||
ChatUtils.sendNoSpamMessages(MessageIDs.poweredToolID, new LiteralText(
|
|
||||||
Formatting.GRAY + StringUtils.t("techreborn.message.nanosaberEnergyErrorTo") + " "
|
|
||||||
+ Formatting.GOLD + StringUtils.t("techreborn.message.nanosaberActivate")));
|
|
||||||
} else {
|
|
||||||
if (!ItemUtils.isActive(stack)) {
|
|
||||||
if (stack.getTag() == null) {
|
|
||||||
stack.setTag(new CompoundTag());
|
|
||||||
}
|
|
||||||
stack.getOrCreateTag().putBoolean("isActive", true);
|
|
||||||
if (world.isClient) {
|
|
||||||
ChatUtils.sendNoSpamMessages(MessageIDs.poweredToolID, new LiteralText(
|
|
||||||
Formatting.GRAY + StringUtils.t("techreborn.message.setTo") + " "
|
|
||||||
+ Formatting.GOLD + StringUtils.t("techreborn.message.nanosaberActive")));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
stack.getOrCreateTag().putBoolean("isActive", false);
|
|
||||||
if (world.isClient) {
|
|
||||||
ChatUtils.sendNoSpamMessages(MessageIDs.poweredToolID, new LiteralText(
|
|
||||||
Formatting.GRAY + StringUtils.t("techreborn.message.setTo") + " "
|
|
||||||
+ Formatting.GOLD + StringUtils.t("techreborn.message.nanosaberInactive")));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return new TypedActionResult<>(ActionResult.SUCCESS, stack);
|
return new TypedActionResult<>(ActionResult.SUCCESS, stack);
|
||||||
}
|
}
|
||||||
return new TypedActionResult<>(ActionResult.PASS, stack);
|
return new TypedActionResult<>(ActionResult.PASS, stack);
|
||||||
|
|
|
@ -106,30 +106,7 @@ public class NanosaberItem extends SwordItem implements EnergyHolder, ItemDurabi
|
||||||
public TypedActionResult<ItemStack> use(final World world, final PlayerEntity player, final Hand hand) {
|
public TypedActionResult<ItemStack> use(final World world, final PlayerEntity player, final Hand hand) {
|
||||||
final ItemStack stack = player.getStackInHand(hand);
|
final ItemStack stack = player.getStackInHand(hand);
|
||||||
if (player.isSneaking()) {
|
if (player.isSneaking()) {
|
||||||
if (Energy.of(stack).getEnergy() < cost) {
|
ItemUtils.switchActive(stack, cost, world.isClient, MessageIDs.poweredToolID);
|
||||||
ChatUtils.sendNoSpamMessages(MessageIDs.poweredToolID, new LiteralText(
|
|
||||||
Formatting.GRAY + StringUtils.t("techreborn.message.nanosaberEnergyErrorTo") + " "
|
|
||||||
+ Formatting.GOLD + StringUtils.t("techreborn.message.nanosaberActivate")));
|
|
||||||
} else {
|
|
||||||
if (!ItemUtils.isActive(stack)) {
|
|
||||||
if (stack.getTag() == null) {
|
|
||||||
stack.setTag(new CompoundTag());
|
|
||||||
}
|
|
||||||
stack.getTag().putBoolean("isActive", true);
|
|
||||||
if (world.isClient) {
|
|
||||||
ChatUtils.sendNoSpamMessages(MessageIDs.poweredToolID, new LiteralText(
|
|
||||||
Formatting.GRAY + StringUtils.t("techreborn.message.setTo") + " "
|
|
||||||
+ Formatting.GOLD + StringUtils.t("techreborn.message.nanosaberActive")));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
stack.getOrCreateTag().putBoolean("isActive", false);
|
|
||||||
if (world.isClient) {
|
|
||||||
ChatUtils.sendNoSpamMessages(MessageIDs.poweredToolID, new LiteralText(
|
|
||||||
Formatting.GRAY + StringUtils.t("techreborn.message.setTo") + " "
|
|
||||||
+ Formatting.GOLD + StringUtils.t("techreborn.message.nanosaberInactive")));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return new TypedActionResult<>(ActionResult.SUCCESS, stack);
|
return new TypedActionResult<>(ActionResult.SUCCESS, stack);
|
||||||
}
|
}
|
||||||
return new TypedActionResult<>(ActionResult.PASS, stack);
|
return new TypedActionResult<>(ActionResult.PASS, stack);
|
||||||
|
|
|
@ -594,15 +594,10 @@
|
||||||
"techreborn.message.allPlayers": "All Players",
|
"techreborn.message.allPlayers": "All Players",
|
||||||
"techreborn.message.onlyOtherPlayers": "Only Other Players",
|
"techreborn.message.onlyOtherPlayers": "Only Other Players",
|
||||||
"techreborn.message.onlyYou": "Only You",
|
"techreborn.message.onlyYou": "Only You",
|
||||||
"techreborn.message.nanosaberActive": "Active",
|
|
||||||
"techreborn.message.nanosaberActivate": "Activate",
|
|
||||||
"techreborn.message.nanosaberInactive": "Inactive",
|
|
||||||
"techreborn.message.nanosaberEnergyErrorTo": "Not Enough Energy to",
|
|
||||||
"techreborn.message.daygen": "Panel in direct sunlight",
|
"techreborn.message.daygen": "Panel in direct sunlight",
|
||||||
"techreborn.message.nightgen": "Panel in reduced sunlight",
|
"techreborn.message.nightgen": "Panel in reduced sunlight",
|
||||||
"techreborn.message.zerogen": "Panel obstructed from sky",
|
"techreborn.message.zerogen": "Panel obstructed from sky",
|
||||||
|
|
||||||
|
|
||||||
"techreborn.message.info.item.techreborn.overclocker_upgrade": "Increases speed at the cost of more energy",
|
"techreborn.message.info.item.techreborn.overclocker_upgrade": "Increases speed at the cost of more energy",
|
||||||
"techreborn.message.info.item.techreborn.transformer_upgrade": "Increase energy tier",
|
"techreborn.message.info.item.techreborn.transformer_upgrade": "Increase energy tier",
|
||||||
"techreborn.message.info.item.techreborn.energy_storage_upgrade": "Increase energy store",
|
"techreborn.message.info.item.techreborn.energy_storage_upgrade": "Increase energy store",
|
||||||
|
@ -671,7 +666,6 @@
|
||||||
"techreborn.message.info.block.techreborn.charge_o_mat": "Charges up to 6 items simultaneously",
|
"techreborn.message.info.block.techreborn.charge_o_mat": "Charges up to 6 items simultaneously",
|
||||||
"techreborn.message.info.block.techreborn.chunk_loader": "Keeps chunks loaded, allows machines to run when you're not nearby",
|
"techreborn.message.info.block.techreborn.chunk_loader": "Keeps chunks loaded, allows machines to run when you're not nearby",
|
||||||
|
|
||||||
|
|
||||||
"keys.techreborn.category": "TechReborn Category",
|
"keys.techreborn.category": "TechReborn Category",
|
||||||
"keys.techreborn.config": "Config",
|
"keys.techreborn.config": "Config",
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue