mirror of
https://github.com/neoStudiosLCE/neoLegacy.git
synced 2026-07-02 15:57:03 +00:00
Add Fish Types
This commit is contained in:
parent
7953241731
commit
451891909a
|
|
@ -474,6 +474,12 @@ void IUIScene_CreativeMenu::staticCtor()
|
|||
ITEM(Item::cookie_Id)
|
||||
ITEM(Item::fish_cooked_Id)
|
||||
ITEM(Item::fish_raw_Id)
|
||||
|
||||
ITEM_AUX(Item::fish_cooked_Id, 1)
|
||||
ITEM_AUX(Item::fish_raw_Id, 1)
|
||||
ITEM_AUX(Item::fish_raw_Id, 2)
|
||||
ITEM_AUX(Item::fish_raw_Id, 3)
|
||||
|
||||
ITEM(Item::porkChop_cooked_Id)
|
||||
ITEM(Item::porkChop_raw_Id)
|
||||
ITEM(Item::beef_cooked_Id)
|
||||
|
|
|
|||
|
|
@ -510,7 +510,7 @@ void PreStitchedTextureMap::loadUVs()
|
|||
ADD_ICON(10, 3, L"name_tag")
|
||||
ADD_ICON(10, 4, L"lead")
|
||||
ADD_ICON(10, 5, L"netherbrick")
|
||||
//ADD_ICON(10, 6, L"unused")
|
||||
ADD_ICON(10, 6, L"clownfish")
|
||||
ADD_ICON(10, 7, L"minecart_furnace")
|
||||
ADD_ICON(10, 8, L"charcoal")
|
||||
ADD_ICON(10, 9, L"monsterPlacer_overlay")
|
||||
|
|
@ -524,7 +524,7 @@ void PreStitchedTextureMap::loadUVs()
|
|||
ADD_ICON(11, 0, L"leggingsCloth_overlay")
|
||||
ADD_ICON(11, 4, L"muttonRaw")
|
||||
ADD_ICON(11, 5, L"rabbitRaw")
|
||||
//ADD_ICON(11, 6, L"unused")
|
||||
ADD_ICON(11, 6, L"pufferfish")
|
||||
ADD_ICON(11, 7, L"minecart_hopper")
|
||||
ADD_ICON(11, 8, L"hopper")
|
||||
ADD_ICON(11, 9, L"nether_star")
|
||||
|
|
@ -541,7 +541,7 @@ void PreStitchedTextureMap::loadUVs()
|
|||
//ADD_ICON(12, 3, L"unused")
|
||||
ADD_ICON(12, 4, L"muttonCooked")
|
||||
ADD_ICON(12, 5, L"rabbitCooked")
|
||||
//ADD_ICON(12, 6, L"unused")
|
||||
ADD_ICON(12, 6, L"salmonRaw")
|
||||
ADD_ICON(12, 7, L"minecart_tnt")
|
||||
ADD_ICON(12, 8, L"armorStand")
|
||||
ADD_ICON(12, 9, L"fireworks")
|
||||
|
|
@ -557,6 +557,7 @@ void PreStitchedTextureMap::loadUVs()
|
|||
ADD_ICON(13, 2, L"doorDark")
|
||||
ADD_ICON(13, 3, L"doorJungle")
|
||||
ADD_ICON(13, 4, L"doorSpruce")
|
||||
ADD_ICON(13, 6, L"salmonCooked")
|
||||
|
||||
|
||||
ADD_ICON(14, 0, L"skull_skeleton")
|
||||
|
|
|
|||
110
Minecraft.World/FishFoodItem.cpp
Normal file
110
Minecraft.World/FishFoodItem.cpp
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
#include "stdafx.h"
|
||||
#include "net.minecraft.world.level.h"
|
||||
#include "net.minecraft.world.entity.player.h"
|
||||
#include "net.minecraft.world.level.tile.h"
|
||||
#include "net.minecraft.world.level.tile.entity.h"
|
||||
#include "net.minecraft.world.effect.h"
|
||||
#include "net.minecraft.h"
|
||||
#include "net.minecraft.world.h"
|
||||
#include "FishFoodItem.h"
|
||||
|
||||
const unsigned int FishFoodItem::NAMES[FISH_COUNT] = { IDS_ITEM_SKULL_SKELETON, IDS_ITEM_SKULL_SKELETON, IDS_ITEM_SKULL_SKELETON, IDS_ITEM_SKULL_SKELETON };
|
||||
const unsigned int FishFoodItem::COOKED_NAMES[FISH_COUNT] = { IDS_ITEM_SKULL_CHARACTER, IDS_ITEM_SKULL_CHARACTER, IDS_ITEM_SKULL_CHARACTER, IDS_ITEM_SKULL_CHARACTER };
|
||||
// making cod temporarily fish
|
||||
const FishType FISH_TYPES[] = {
|
||||
{ 0, L"fish", 2, 0.1f, 5, 0.6f, true },
|
||||
{ 1, L"salmon", 2, 0.1f, 6, 0.8f, true },
|
||||
{ 2, L"clownfish", 1, 0.1f, 0, 0.0f, false },
|
||||
{ 3, L"pufferfish", 1, 0.1f, 0, 0.0f, false },
|
||||
};
|
||||
|
||||
FishFoodItem::FishFoodItem(int id, bool cooked) : FoodItem(id, 0, 0, true)
|
||||
{
|
||||
this->cooked = cooked;
|
||||
auxValue = 0;
|
||||
}
|
||||
|
||||
void FishFoodItem::addEatEffect(shared_ptr<ItemInstance> instance, Level* level, shared_ptr<Player> player)
|
||||
{
|
||||
if (!level->isClientSide)
|
||||
{
|
||||
if (FISH_TYPES[auxValue].name == L"pufferfish") {
|
||||
player->addEffect(new MobEffectInstance(MobEffect::poison->id, 60 * SharedConstants::TICKS_PER_SECOND, 3));
|
||||
player->addEffect(new MobEffectInstance(MobEffect::hunger->id, 15 * SharedConstants::TICKS_PER_SECOND, 2));
|
||||
player->addEffect(new MobEffectInstance(MobEffect::confusion->id, 15 * SharedConstants::TICKS_PER_SECOND, 1));
|
||||
}
|
||||
}
|
||||
FoodItem::addEatEffect(instance, level, player);
|
||||
}
|
||||
|
||||
shared_ptr<ItemInstance> FishFoodItem::use(shared_ptr<ItemInstance> instance, Level* level, shared_ptr<Player> player)
|
||||
{
|
||||
// really really REALLY janky way of doing this
|
||||
auxValue = instance->getAuxValue();
|
||||
return FoodItem::use(instance, level, player);
|
||||
}
|
||||
|
||||
float FishFoodItem::getSaturationModifier()
|
||||
{
|
||||
return this->cooked && FISH_TYPES[auxValue].cookable ? FISH_TYPES[auxValue].cookedSaturationModifier : FISH_TYPES[auxValue].uncookedSaturationModifier;
|
||||
}
|
||||
|
||||
int FishFoodItem::getNutrition()
|
||||
{
|
||||
return this->cooked && FISH_TYPES[auxValue].cookable ? FISH_TYPES[auxValue].cookedHealAmount : FISH_TYPES[auxValue].uncookedHealAmount;
|
||||
}
|
||||
|
||||
Icon* FishFoodItem::getIcon(int itemAuxValue)
|
||||
{
|
||||
if (itemAuxValue < 0 || itemAuxValue >= FISH_COUNT)
|
||||
{
|
||||
itemAuxValue = 0;
|
||||
}
|
||||
|
||||
if (cooked && FISH_TYPES[itemAuxValue].cookable) {
|
||||
return icons_cooked[itemAuxValue];
|
||||
}
|
||||
return icons_raw[itemAuxValue];
|
||||
}
|
||||
|
||||
unsigned int FishFoodItem::getDescriptionId(int iData)
|
||||
{
|
||||
if (iData < 0 || iData >= FISH_COUNT)
|
||||
{
|
||||
iData = 0;
|
||||
}
|
||||
|
||||
if (cooked) {
|
||||
return COOKED_NAMES[iData];
|
||||
}
|
||||
return NAMES[iData];
|
||||
}
|
||||
|
||||
unsigned int FishFoodItem::getDescriptionId(shared_ptr<ItemInstance> instance)
|
||||
{
|
||||
auxValue = instance->getAuxValue();
|
||||
if (auxValue < 0 || auxValue >= FISH_COUNT)
|
||||
{
|
||||
auxValue = 0;
|
||||
}
|
||||
|
||||
if (cooked) {
|
||||
return COOKED_NAMES[auxValue];
|
||||
}
|
||||
|
||||
return NAMES[auxValue];
|
||||
}
|
||||
|
||||
void FishFoodItem::registerIcons(IconRegister* iconRegister)
|
||||
{
|
||||
for (int i = 0; i < FISH_COUNT; i++)
|
||||
{
|
||||
if (FISH_TYPES[i].cookable) {
|
||||
icons_raw[i] = iconRegister->registerIcon(FISH_TYPES[i].name + L"Raw");
|
||||
icons_cooked[i] = iconRegister->registerIcon(FISH_TYPES[i].name + L"Cooked");
|
||||
}
|
||||
else {
|
||||
icons_raw[i] = iconRegister->registerIcon(FISH_TYPES[i].name);
|
||||
}
|
||||
}
|
||||
}
|
||||
44
Minecraft.World/FishFoodItem.h
Normal file
44
Minecraft.World/FishFoodItem.h
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
#pragma once
|
||||
#pragma once
|
||||
|
||||
#include "FoodItem.h"
|
||||
|
||||
struct FishType {
|
||||
int id;
|
||||
std::wstring name;
|
||||
int uncookedHealAmount;
|
||||
float uncookedSaturationModifier;
|
||||
int cookedHealAmount = 0;
|
||||
float cookedSaturationModifier = 0.0f;
|
||||
bool cookable = false;
|
||||
};
|
||||
|
||||
static const int FISH_COUNT = 4;
|
||||
|
||||
extern const FishType FISH_TYPES[FISH_COUNT];
|
||||
|
||||
class FishFoodItem : public FoodItem
|
||||
{
|
||||
public:
|
||||
static const unsigned int NAMES[FISH_COUNT];
|
||||
static const unsigned int COOKED_NAMES[FISH_COUNT];
|
||||
int auxValue;
|
||||
bool cooked;
|
||||
private:
|
||||
Icon* icons_raw[FISH_COUNT];
|
||||
Icon* icons_cooked[FISH_COUNT];
|
||||
protected:
|
||||
virtual void addEatEffect(shared_ptr<ItemInstance> instance, Level* level, shared_ptr<Player> player);
|
||||
public:
|
||||
FishFoodItem(int id, bool cooked);
|
||||
|
||||
virtual shared_ptr<ItemInstance> use(shared_ptr<ItemInstance> instance, Level* level, shared_ptr<Player> player);
|
||||
Icon* getIcon(int itemAuxValue);
|
||||
|
||||
int getNutrition();
|
||||
float getSaturationModifier();
|
||||
|
||||
virtual unsigned int getDescriptionId(int iData = -1);
|
||||
unsigned int getDescriptionId(shared_ptr<ItemInstance> instance);
|
||||
void registerIcons(IconRegister* iconRegister);
|
||||
};
|
||||
|
|
@ -27,6 +27,8 @@ FurnaceRecipes::FurnaceRecipes()
|
|||
addFurnaceRecipy(Item::mutton_raw_Id, new ItemInstance(Item::mutton_cooked), .35f);
|
||||
addFurnaceRecipy(Item::chicken_raw_Id, new ItemInstance(Item::chicken_cooked), .35f);
|
||||
addFurnaceRecipy(Item::fish_raw_Id, new ItemInstance(Item::fish_cooked), .35f);
|
||||
addFurnaceRecipy(new ItemInstance(Item::fish_raw, 1, 1), new ItemInstance(Item::fish_cooked, 1, 1), .35f); // salmon
|
||||
|
||||
addFurnaceRecipy(Tile::cobblestone_Id, new ItemInstance(Tile::stone), .1f);
|
||||
addFurnaceRecipy(Item::clay_Id, new ItemInstance(Item::brick), .3f);
|
||||
addFurnaceRecipy(Tile::clay_Id, new ItemInstance(Tile::clayHardened), .35f);
|
||||
|
|
|
|||
|
|
@ -396,8 +396,8 @@ void Item::staticCtor()
|
|||
Item::egg = ( new EggItem(88) ) ->setIconName(L"egg")->setDescriptionId(IDS_ITEM_EGG)->setUseDescriptionId(IDS_DESC_EGG);
|
||||
Item::fishingRod = static_cast<FishingRodItem *>((new FishingRodItem(90))->setBaseItemTypeAndMaterial(eBaseItemType_rod, eMaterial_wood)->setIconName(L"fishingRod")->setDescriptionId(IDS_ITEM_FISHING_ROD)->setUseDescriptionId(IDS_DESC_FISHINGROD));
|
||||
Item::yellowDust = ( new Item(92) ) ->setIconName(L"yellowDust")->setDescriptionId(IDS_ITEM_YELLOW_DUST)->setUseDescriptionId(IDS_DESC_YELLOW_DUST)->setPotionBrewingFormula(PotionBrewing::MOD_GLOWSTONE);
|
||||
Item::fish_raw = ( new FoodItem(93, 2, FoodConstants::FOOD_SATURATION_LOW, false) ) ->setIconName(L"fishRaw")->setDescriptionId(IDS_ITEM_FISH_RAW)->setUseDescriptionId(IDS_DESC_FISH_RAW);
|
||||
Item::fish_cooked = ( new FoodItem(94, 5, FoodConstants::FOOD_SATURATION_NORMAL, false) ) ->setIconName(L"fishCooked")->setDescriptionId(IDS_ITEM_FISH_COOKED)->setUseDescriptionId(IDS_DESC_FISH_COOKED);
|
||||
Item::fish_raw = ( new FishFoodItem(93, false) ) ->setIconName(L"fishRaw")->setDescriptionId(IDS_ITEM_FISH_RAW)->setUseDescriptionId(IDS_DESC_FISH_RAW);
|
||||
Item::fish_cooked = (new FishFoodItem(94, true)) ->setIconName(L"fishCooked")->setDescriptionId(IDS_ITEM_FISH_COOKED)->setUseDescriptionId(IDS_DESC_FISH_COOKED);
|
||||
|
||||
Item::dye_powder = ( new DyePowderItem(95) ) ->setBaseItemTypeAndMaterial(eBaseItemType_dyepowder, eMaterial_dye)->setIconName(L"dyePowder")->setDescriptionId(IDS_ITEM_DYE_POWDER)->setUseDescriptionId(-1);
|
||||
|
||||
|
|
|
|||
|
|
@ -2479,6 +2479,7 @@
|
|||
<ClInclude Include="FireworksMenu.h" />
|
||||
<ClInclude Include="FireworksRecipe.h" />
|
||||
<ClInclude Include="FireworksRocketEntity.h" />
|
||||
<ClInclude Include="FishFoodItem.h" />
|
||||
<ClInclude Include="FlatGeneratorInfo.h" />
|
||||
<ClInclude Include="FlatLayerInfo.h" />
|
||||
<ClInclude Include="GameRules.h" />
|
||||
|
|
@ -3564,6 +3565,7 @@
|
|||
<ClCompile Include="FireworksMenu.cpp" />
|
||||
<ClCompile Include="FireworksRecipe.cpp" />
|
||||
<ClCompile Include="FireworksRocketEntity.cpp" />
|
||||
<ClCompile Include="FishFoodItem.cpp" />
|
||||
<ClCompile Include="FlatGeneratorInfo.cpp" />
|
||||
<ClCompile Include="FlatLayerInfo.cpp" />
|
||||
<ClCompile Include="GameRules.cpp" />
|
||||
|
|
|
|||
|
|
@ -827,6 +827,7 @@
|
|||
<ClCompile Include="SavannaBiome.cpp" />
|
||||
<ClCompile Include="RoofedForestBiome.cpp" />
|
||||
<ClCompile Include="PrismarineTile.cpp" />
|
||||
<ClCompile Include="FishFoodItem.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="AABB.h" />
|
||||
|
|
@ -1823,6 +1824,7 @@
|
|||
<ClInclude Include="SavannaBiome.h" />
|
||||
<ClInclude Include="RoofedForestBiome.h" />
|
||||
<ClInclude Include="PrismarineTile.h" />
|
||||
<ClInclude Include="FishFoodItem.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\Minecraft.Client\Xbox\res\audio\Minecraft.xgs" />
|
||||
|
|
|
|||
|
|
@ -85,4 +85,6 @@
|
|||
// 4J Added
|
||||
#include "ClockItem.h"
|
||||
#include "CompassItem.h"
|
||||
#include "HtmlString.h"
|
||||
#include "HtmlString.h"
|
||||
|
||||
#include "FishFoodItem.h"
|
||||
Loading…
Reference in a new issue