Completed Fiesta Crafting Calculator
This commit is contained in:
parent
e844a8f5ec
commit
52c76cce08
@ -172,6 +172,7 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
|
|||||||
recipeItems.push_back(IDToName[r.Product].name);
|
recipeItems.push_back(IDToName[r.Product].name);
|
||||||
}
|
}
|
||||||
selectedItem=&PotionProdRecipes[0];
|
selectedItem=&PotionProdRecipes[0];
|
||||||
|
Amount->sText="1";
|
||||||
}
|
}
|
||||||
if(PotionProd->bHovered){
|
if(PotionProd->bHovered){
|
||||||
DisplayProdText="Potion Production";
|
DisplayProdText="Potion Production";
|
||||||
@ -187,6 +188,7 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
|
|||||||
recipeItems.push_back(IDToName[r.Product].name);
|
recipeItems.push_back(IDToName[r.Product].name);
|
||||||
}
|
}
|
||||||
selectedItem=&StoneProdRecipes[0];
|
selectedItem=&StoneProdRecipes[0];
|
||||||
|
Amount->sText="1";
|
||||||
}
|
}
|
||||||
if(StoneProd->bHovered){
|
if(StoneProd->bHovered){
|
||||||
DisplayProdText="Stone Production";
|
DisplayProdText="Stone Production";
|
||||||
@ -202,6 +204,7 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
|
|||||||
recipeItems.push_back(IDToName[r.Product].name);
|
recipeItems.push_back(IDToName[r.Product].name);
|
||||||
}
|
}
|
||||||
selectedItem=&ScrollProdRecipes[0];
|
selectedItem=&ScrollProdRecipes[0];
|
||||||
|
Amount->sText="1";
|
||||||
}
|
}
|
||||||
if(ScrollProd->bHovered){
|
if(ScrollProd->bHovered){
|
||||||
DisplayProdText="Scroll Production";
|
DisplayProdText="Scroll Production";
|
||||||
@ -217,6 +220,7 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
|
|||||||
recipeItems.push_back(IDToName[r.Product].name);
|
recipeItems.push_back(IDToName[r.Product].name);
|
||||||
}
|
}
|
||||||
selectedItem=&CompRecipes[0];
|
selectedItem=&CompRecipes[0];
|
||||||
|
Amount->sText="1";
|
||||||
}
|
}
|
||||||
if(CompProd->bHovered){
|
if(CompProd->bHovered){
|
||||||
DisplayProdText="Material Composition";
|
DisplayProdText="Material Composition";
|
||||||
@ -232,6 +236,7 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
|
|||||||
recipeItems.push_back(IDToName[r.Product].name);
|
recipeItems.push_back(IDToName[r.Product].name);
|
||||||
}
|
}
|
||||||
selectedItem=&DecompRecipes[0];
|
selectedItem=&DecompRecipes[0];
|
||||||
|
Amount->sText="1";
|
||||||
}
|
}
|
||||||
if(DecompProd->bHovered){
|
if(DecompProd->bHovered){
|
||||||
DisplayProdText="Material Decomposition";
|
DisplayProdText="Material Decomposition";
|
||||||
@ -258,6 +263,10 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
|
|||||||
pge->DrawStringPropDecal(displayPos+vf2d{10,10+54},DisplayProdText,WHITE,{2,2});
|
pge->DrawStringPropDecal(displayPos+vf2d{10,10+54},DisplayProdText,WHITE,{2,2});
|
||||||
if(RecipeList->bVisible){
|
if(RecipeList->bVisible){
|
||||||
ItemData data = IDToName[selectedItem->Product];
|
ItemData data = IDToName[selectedItem->Product];
|
||||||
|
int quantityRequested=1;
|
||||||
|
if(Amount->sText.size()>0&&Amount->sText[0]>='0'&&Amount->sText[0]<='9'){
|
||||||
|
quantityRequested=stoi(Amount->sText);
|
||||||
|
}
|
||||||
data.DrawIcon(pge,displayPos+vf2d{320,40});
|
data.DrawIcon(pge,displayPos+vf2d{320,40});
|
||||||
float stringWidth=pge->GetTextSizeProp(data.name).x*2;
|
float stringWidth=pge->GetTextSizeProp(data.name).x*2;
|
||||||
if(stringWidth>PANEL_WIDTH-356){
|
if(stringWidth>PANEL_WIDTH-356){
|
||||||
@ -266,7 +275,8 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
|
|||||||
} else {
|
} else {
|
||||||
pge->DrawStringPropDecal(displayPos+vf2d{356,40},data.name,WHITE,{2,2});
|
pge->DrawStringPropDecal(displayPos+vf2d{356,40},data.name,WHITE,{2,2});
|
||||||
}
|
}
|
||||||
pge->DrawStringPropDecal(displayPos+vf2d{360,58},"x "+std::to_string(selectedItem->amt),WHITE,{1.75,1.75});
|
pge->DrawStringPropDecal(displayPos+vf2d{264,16},"Crafts: ",WHITE,{1.75,1.75});
|
||||||
|
pge->DrawStringPropDecal(displayPos+vf2d{360,58},"x "+std::to_string(selectedItem->amt*quantityRequested),WHITE,{1.75,1.75});
|
||||||
pge->DrawStringDecal(displayPos+vf2d{320,80},"Requires:");
|
pge->DrawStringDecal(displayPos+vf2d{320,80},"Requires:");
|
||||||
float yOffset=0;
|
float yOffset=0;
|
||||||
for(std::pair<std::string,int>&item:selectedItem->requiredItems){
|
for(std::pair<std::string,int>&item:selectedItem->requiredItems){
|
||||||
@ -279,7 +289,7 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
|
|||||||
} else {
|
} else {
|
||||||
pge->DrawStringPropDecal(displayPos+vf2d{356,92+yOffset},data.name,WHITE,{2,2});
|
pge->DrawStringPropDecal(displayPos+vf2d{356,92+yOffset},data.name,WHITE,{2,2});
|
||||||
}
|
}
|
||||||
pge->DrawStringPropDecal(displayPos+vf2d{360,110+yOffset},"x "+std::to_string(item.second),WHITE,{1.75,1.75});
|
pge->DrawStringPropDecal(displayPos+vf2d{360,110+yOffset},"x "+std::to_string(item.second*quantityRequested),WHITE,{1.75,1.75});
|
||||||
yOffset+=36;
|
yOffset+=36;
|
||||||
}
|
}
|
||||||
if(Amount->m_bTextEdit){
|
if(Amount->m_bTextEdit){
|
||||||
@ -313,7 +323,9 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
static std::vector<Calculator*>calculators;
|
static std::vector<Calculator*>calculators;
|
||||||
static Renderable ProdIcon,CloseIcon,CloseBackIcon,ProductionIcons,CollectibleIcons,CollectibleIcons2,GradeIcons;
|
Manager manager;
|
||||||
|
Button*AddButton;
|
||||||
|
static Renderable ProdIcon,CloseIcon,CloseBackIcon,ProductionIcons,CollectibleIcons,CollectibleIcons2,GradeIcons,PlusIcon,PlusBackIcon;
|
||||||
public:
|
public:
|
||||||
std::string slurp(std::ifstream& in) {
|
std::string slurp(std::ifstream& in) {
|
||||||
std::ostringstream sstr;
|
std::ostringstream sstr;
|
||||||
@ -399,17 +411,36 @@ public:
|
|||||||
CollectibleIcons.Load("assets/collectibles.png",nullptr,true);
|
CollectibleIcons.Load("assets/collectibles.png",nullptr,true);
|
||||||
CollectibleIcons2.Load("assets/collectibles2.png",nullptr,true);
|
CollectibleIcons2.Load("assets/collectibles2.png",nullptr,true);
|
||||||
GradeIcons.Load("assets/grade.png",nullptr,true);
|
GradeIcons.Load("assets/grade.png",nullptr,true);
|
||||||
|
PlusIcon.Load("assets/plus_button.png",nullptr,true);
|
||||||
|
PlusBackIcon.Load("assets/button_plus_mask.png",nullptr,true);
|
||||||
calculators.push_back(new Calculator());
|
calculators.push_back(new Calculator());
|
||||||
|
|
||||||
|
AddButton=new Button(manager,"Add Panel",{PROGRAM_WIDTH-256,float(ScreenHeight()-Karen.Sprite()->height-240)},{172,36},{2,2});
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DrawCenteredStringDecal(const vf2d&pos,const std::string&text,Pixel col,const vf2d&scale){
|
||||||
|
DrawStringDecal(pos-GetTextSize(text)*scale/2,text,col,scale);
|
||||||
|
}
|
||||||
|
|
||||||
bool OnUserUpdate(float fElapsedTime) override
|
bool OnUserUpdate(float fElapsedTime) override
|
||||||
{
|
{
|
||||||
if(GetKey(SPACE).bPressed){
|
/*if(GetKey(SPACE).bPressed){
|
||||||
calculators.push_back(new Calculator());
|
calculators.push_back(new Calculator());
|
||||||
}
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
DrawCenteredStringDecal({float(ScreenWidth()-175),64},"Fiesta Online",WHITE,{2,3});
|
||||||
|
DrawCenteredStringDecal({float(ScreenWidth()-175),64+24},"Crafting Calculator",WHITE,{2,3});
|
||||||
|
DrawCenteredStringDecal({float(ScreenWidth()-175),64+24*4},"Made using the",WHITE,{2,3});
|
||||||
|
DrawCenteredStringDecal({float(ScreenWidth()-175),64+24*5},"olcPixelGameEngine",WHITE,{2,3});
|
||||||
|
|
||||||
DrawDecal({float(ScreenWidth()-Karen.Sprite()->width),float(ScreenHeight()-Karen.Sprite()->height)},Karen.Decal());
|
DrawDecal({float(ScreenWidth()-Karen.Sprite()->width),float(ScreenHeight()-Karen.Sprite()->height)},Karen.Decal());
|
||||||
int panelNumber=0;
|
int panelNumber=0;
|
||||||
|
manager.Update(this);
|
||||||
|
if(AddButton->bPressed){
|
||||||
|
calculators.push_back(new Calculator());
|
||||||
|
}
|
||||||
for(auto it=calculators.begin();it!=calculators.end();++it){
|
for(auto it=calculators.begin();it!=calculators.end();++it){
|
||||||
Calculator*c=*it;
|
Calculator*c=*it;
|
||||||
if (!c->Update(this,panelNumber)){
|
if (!c->Update(this,panelNumber)){
|
||||||
@ -420,11 +451,12 @@ public:
|
|||||||
}
|
}
|
||||||
++panelNumber;
|
++panelNumber;
|
||||||
}
|
}
|
||||||
|
manager.DrawDecal(this);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Renderable FiestaCraftingCalculator::ProdIcon,FiestaCraftingCalculator::CloseIcon,FiestaCraftingCalculator::CloseBackIcon,FiestaCraftingCalculator::ProductionIcons,FiestaCraftingCalculator::CollectibleIcons,FiestaCraftingCalculator::CollectibleIcons2,FiestaCraftingCalculator::GradeIcons;
|
Renderable FiestaCraftingCalculator::ProdIcon,FiestaCraftingCalculator::CloseIcon,FiestaCraftingCalculator::CloseBackIcon,FiestaCraftingCalculator::ProductionIcons,FiestaCraftingCalculator::CollectibleIcons,FiestaCraftingCalculator::CollectibleIcons2,FiestaCraftingCalculator::GradeIcons,FiestaCraftingCalculator::PlusIcon,FiestaCraftingCalculator::PlusBackIcon;
|
||||||
std::vector<FiestaCraftingCalculator::Recipe> FiestaCraftingCalculator::PotionProdRecipes;
|
std::vector<FiestaCraftingCalculator::Recipe> FiestaCraftingCalculator::PotionProdRecipes;
|
||||||
std::vector<FiestaCraftingCalculator::Recipe> FiestaCraftingCalculator::StoneProdRecipes;
|
std::vector<FiestaCraftingCalculator::Recipe> FiestaCraftingCalculator::StoneProdRecipes;
|
||||||
std::vector<FiestaCraftingCalculator::Recipe> FiestaCraftingCalculator::ScrollProdRecipes;
|
std::vector<FiestaCraftingCalculator::Recipe> FiestaCraftingCalculator::ScrollProdRecipes;
|
||||||
|
BIN
FiestaCraftingCalculator/FiestaCraftingCalculator.rc
Normal file
BIN
FiestaCraftingCalculator/FiestaCraftingCalculator.rc
Normal file
Binary file not shown.
@ -119,6 +119,7 @@
|
|||||||
<SDLCheck>true</SDLCheck>
|
<SDLCheck>true</SDLCheck>
|
||||||
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<ConformanceMode>true</ConformanceMode>
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
@ -133,6 +134,13 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="olcPGEX_QuickGUI.h" />
|
<ClInclude Include="olcPGEX_QuickGUI.h" />
|
||||||
<ClInclude Include="olcPixelGameEngine.h" />
|
<ClInclude Include="olcPixelGameEngine.h" />
|
||||||
|
<ClInclude Include="resource.h" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ResourceCompile Include="FiestaCraftingCalculator.rc" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Image Include="assets\icon.ico" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
@ -26,5 +26,18 @@
|
|||||||
<ClInclude Include="olcPGEX_QuickGUI.h">
|
<ClInclude Include="olcPGEX_QuickGUI.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="resource.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ResourceCompile Include="FiestaCraftingCalculator.rc">
|
||||||
|
<Filter>Resource Files</Filter>
|
||||||
|
</ResourceCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Image Include="assets\icon.ico">
|
||||||
|
<Filter>Resource Files</Filter>
|
||||||
|
</Image>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
BIN
FiestaCraftingCalculator/assets/button_plus_mask.png
Normal file
BIN
FiestaCraftingCalculator/assets/button_plus_mask.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 723 B |
BIN
FiestaCraftingCalculator/assets/icon.ico
Normal file
BIN
FiestaCraftingCalculator/assets/icon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
BIN
FiestaCraftingCalculator/assets/plus_button.png
Normal file
BIN
FiestaCraftingCalculator/assets/plus_button.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1004 B |
@ -230,7 +230,8 @@ namespace olc::QuickGUI
|
|||||||
Button(olc::QuickGUI::Manager& manager, // Associate with a Manager
|
Button(olc::QuickGUI::Manager& manager, // Associate with a Manager
|
||||||
const std::string& text, // Text to display
|
const std::string& text, // Text to display
|
||||||
const olc::vf2d& pos, // Location of button top-left
|
const olc::vf2d& pos, // Location of button top-left
|
||||||
const olc::vf2d& size); // Size of button
|
const olc::vf2d& size,
|
||||||
|
const olc::vf2d& fontScale={1,1}); // Size of button
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Position of button
|
// Position of button
|
||||||
@ -239,6 +240,7 @@ namespace olc::QuickGUI
|
|||||||
olc::vf2d vSize;
|
olc::vf2d vSize;
|
||||||
// Text displayed on button
|
// Text displayed on button
|
||||||
std::string sText;
|
std::string sText;
|
||||||
|
olc::vf2d fontScale;
|
||||||
|
|
||||||
public: // BaseControl overrides
|
public: // BaseControl overrides
|
||||||
void Update(olc::PixelGameEngine* pge) override;
|
void Update(olc::PixelGameEngine* pge) override;
|
||||||
@ -695,8 +697,8 @@ namespace olc::QuickGUI
|
|||||||
#pragma endregion
|
#pragma endregion
|
||||||
|
|
||||||
#pragma region Button
|
#pragma region Button
|
||||||
Button::Button(olc::QuickGUI::Manager& manager, const std::string& text, const olc::vf2d& pos, const olc::vf2d& size)
|
Button::Button(olc::QuickGUI::Manager& manager, const std::string& text, const olc::vf2d& pos, const olc::vf2d& size, const olc::vf2d& fontScale)
|
||||||
: BaseControl(manager)
|
: BaseControl(manager),fontScale(fontScale)
|
||||||
{
|
{
|
||||||
vPos = pos; vSize = size; sText = text;
|
vPos = pos; vSize = size; sText = text;
|
||||||
}
|
}
|
||||||
@ -791,8 +793,8 @@ namespace olc::QuickGUI
|
|||||||
pge->FillRectDecal(vPos + olc::vf2d(1, 1), vSize - olc::vf2d(2, 2), m_manager.colBorder);
|
pge->FillRectDecal(vPos + olc::vf2d(1, 1), vSize - olc::vf2d(2, 2), m_manager.colBorder);
|
||||||
pge->SetDecalMode(olc::DecalMode::NORMAL);
|
pge->SetDecalMode(olc::DecalMode::NORMAL);
|
||||||
|
|
||||||
olc::vf2d vText = pge->GetTextSizeProp(sText);
|
olc::vf2d vText = pge->GetTextSizeProp(sText)*fontScale;
|
||||||
pge->DrawStringPropDecal(vPos + (vSize - vText) * 0.5f, sText, m_manager.colText);
|
pge->DrawStringPropDecal(vPos + (vSize - vText) * 0.5f, sText, m_manager.colText,fontScale);
|
||||||
}
|
}
|
||||||
#pragma endregion
|
#pragma endregion
|
||||||
|
|
||||||
|
@ -5406,7 +5406,11 @@ namespace olc
|
|||||||
virtual olc::rcode CreateWindowPane(const olc::vi2d& vWindowPos, olc::vi2d& vWindowSize, bool bFullScreen) override
|
virtual olc::rcode CreateWindowPane(const olc::vi2d& vWindowPos, olc::vi2d& vWindowSize, bool bFullScreen) override
|
||||||
{
|
{
|
||||||
WNDCLASS wc;
|
WNDCLASS wc;
|
||||||
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
|
wc.hIcon = static_cast<HICON>(::LoadImage(GetModuleHandle(nullptr),
|
||||||
|
MAKEINTRESOURCE(101),
|
||||||
|
IMAGE_ICON,
|
||||||
|
48, 48,
|
||||||
|
LR_DEFAULTCOLOR));;
|
||||||
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
|
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
|
||||||
wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
|
wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
|
||||||
wc.hInstance = GetModuleHandle(nullptr);
|
wc.hInstance = GetModuleHandle(nullptr);
|
||||||
|
17
FiestaCraftingCalculator/resource.h
Normal file
17
FiestaCraftingCalculator/resource.h
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
//{{NO_DEPENDENCIES}}
|
||||||
|
// Microsoft Visual C++ generated include file.
|
||||||
|
// Used by FiestaCraftingCalculator.rc
|
||||||
|
//
|
||||||
|
#define IDI_ICON1 101
|
||||||
|
#define MAINICON 101
|
||||||
|
|
||||||
|
// Next default values for new objects
|
||||||
|
//
|
||||||
|
#ifdef APSTUDIO_INVOKED
|
||||||
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
|
#define _APS_NEXT_RESOURCE_VALUE 103
|
||||||
|
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||||
|
#define _APS_NEXT_CONTROL_VALUE 1001
|
||||||
|
#define _APS_NEXT_SYMED_VALUE 101
|
||||||
|
#endif
|
||||||
|
#endif
|
Loading…
x
Reference in New Issue
Block a user